<?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>44891</bug_id>
          
          <creation_ts>2010-08-30 13:58:33 -0700</creation_ts>
          <short_desc>[V8] Share bindings logic for location.replace between V8 and JSC</short_desc>
          <delta_ts>2010-09-09 22:10:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45200</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271617</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-08-30 13:58:33 -0700</bug_when>
    <thetext>To eliminate trivial duplication of JSC&apos;s bindings logic by the V8 bindings, we can move the logic into bindings/generic and share SOP, etc. between JSC and V8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271618</commentid>
    <comment_count>1</comment_count>
      <attachid>65951</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-08-30 14:02:07 -0700</bug_when>
    <thetext>Created attachment 65951
Patch. Do not review--just bouncing off trybots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271882</commentid>
    <comment_count>2</comment_count>
      <attachid>66006</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-08-30 20:29:39 -0700</bug_when>
    <thetext>Created attachment 66006
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271886</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-30 20:37:30 -0700</bug_when>
    <thetext>Attachment 66006 did not build on qt:
Build output: http://queues.webkit.org/results/3881169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271887</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-30 20:39:10 -0700</bug_when>
    <thetext>Attachment 66006 did not build on gtk:
Build output: http://queues.webkit.org/results/3825139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272373</commentid>
    <comment_count>5</comment_count>
      <attachid>66106</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-08-31 14:24:57 -0700</bug_when>
    <thetext>Created attachment 66106
Patch, Qt makefiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272548</commentid>
    <comment_count>6</comment_count>
      <attachid>66106</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-31 18:15:25 -0700</bug_when>
    <thetext>Comment on attachment 66106
Patch, Qt makefiles.

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

&gt; WebCore/bindings/generic/BindingLocation.h:47
&gt; +template &lt;class Binding&gt;
&gt; +void BindingLocation&lt;Binding&gt;::replace(State&lt;Binding&gt;* state, Location* location, const String&amp; urlSpec)
Usually we just call String versions of URLs &quot;url&quot;.  Yes, it&apos;s lame.  We need to fix that globally at some point.

&gt; WebCore/bindings/generic/BindingLocation.h:55
&gt; +    KURL url = Binding::Utilities::completeURL(state, urlSpec);
&gt; +    if (url.isNull())
&gt; +        return;
In that case, we&apos;d call these &quot;fullURL&quot;

&gt; WebCore/bindings/generic/BindingLocation.h:60
&gt; +    Binding::Utilities::navigateIfAllowed(state, frame, url, true, true);
true/true is hard to understand.  Not really the fault of this patch.  Just something to notice.

&gt; WebCore/bindings/generic/BindingUtilities.h:45
&gt; +template &lt;class Binding&gt;
&gt; +class BindingUtilities {
&gt; +public:
&gt; +    static KURL completeURL(State&lt;Binding&gt;*, const String&amp; relativeURL);
&gt; +    static void navigateIfAllowed(State&lt;Binding&gt;*, Frame*, const KURL&amp;, bool lockHistory, bool lockBackForwardList);
&gt; +};
I&apos;m not super cheesed about a general &quot;utilities&quot; class.  navigateIfAllowed seems like a method of Frame somehow...  I&apos;m not sure what advice to give you here.  Maybe completeURL should be a method of the state since we&apos;re completing the URL w.r.t. the state?

&gt; WebCore/bindings/generic/BindingUtilities.h:65
&gt; +    if (!protocolIsJavaScript(url) || state-&gt;isSafeScript(frame))
I don&apos;t really like the name &quot;isSafeScript&quot;.  Sorry to nitpick the names.  Something like state-&gt;canAccess(frame) would be clearer to me.

&gt; WebCore/bindings/js/JSDOMBinding.cpp:645
&gt; +    JSBindingState state = JSBindingState::create(exec);
Why not just have a regular constructor instead of a create method?

&gt; WebCore/bindings/js/specialization/JSBindingState.cpp:61
&gt; +bool State&lt;JSBinding&gt;::isSafeScript(Frame* frame)
&gt; +{
&gt; +    return allowsAccessFromFrame(m_exec, frame);
&gt; +}
Ah, see.  allowsAccessFromFrame would be a since name for isSafeScript.  That also explains what direction the access is being tested in.

&gt; WebCore/bindings/js/specialization/JSBindingState.h:53
&gt; +    static State create(JSC::ExecState* exec)
&gt; +    {
&gt; +        return State(exec);
&gt; +    }
Yeah, I&apos;d just make this a constructor.

&gt; WebCore/bindings/js/specialization/JSBindingState.h:68
&gt; +    explicit State(JSC::ExecState* exec) : m_exec(exec) {}
Should be split onto multiple lines.

&gt; WebCore/bindings/v8/specialization/V8BindingState.cpp:89
&gt; +    return ScriptController::isSafeScript(frame);
Yeah, this method should be renamed to match the JSC method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272549</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-31 18:15:51 -0700</bug_when>
    <thetext>Adding sam to make sure he&apos;s ok with this direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272550</commentid>
    <comment_count>8</comment_count>
      <attachid>66106</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-31 18:16:32 -0700</bug_when>
    <thetext>Comment on attachment 66106
Patch, Qt makefiles.

I&apos;d like to see one more iteration of this patch with the comments above addressed (even if they&apos;re minor).  This also gives Sam more time to express an opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272667</commentid>
    <comment_count>9</comment_count>
      <attachid>66172</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-01 00:11:00 -0700</bug_when>
    <thetext>Created attachment 66172
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272670</commentid>
    <comment_count>10</comment_count>
      <attachid>66172</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-01 00:24:25 -0700</bug_when>
    <thetext>Comment on attachment 66172
Patch.

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

Looks great.  Give Sam a day or two to comment before landing the patch though.

&gt; WebCore/bindings/generic/GenericBinding.h:35
&gt; +#include &quot;Frame.h&quot;
&gt; +#include &quot;FrameLoader.h&quot;
These don&apos;t seem needed anymore.

&gt; WebCore/bindings/generic/GenericBinding.h:46
&gt; -class State {};
&gt; +class State {
&gt; +};
This change is correct, but probably not needed.

&gt; WebCore/bindings/js/JSLocationCustom.cpp:192
&gt; +    JSBindingState state(exec);
&gt; +    JSBinding::Frame::navigateIfAllowed(&amp;state, frame, url, lockHistory ? JSBinding::Frame::LockedHistory : JSBinding::Frame::UnlockedHistory, lockBackForwardList ? JSBinding::Frame::LockedBackForwardList : JSBinding::Frame::UnlockedBackForwardList);
What do you think?  Is this better?

&gt; WebCore/bindings/js/specialization/JSBindingState.h:51
&gt; +    explicit State(JSC::ExecState* exec)
&gt; +        : m_exec(exec) {}
Usually we&apos;ll put these braces on their own lines.

&gt; WebCore/bindings/v8/V8Utilities.cpp:119
&gt; +    return V8Binding::Frame::navigateIfAllowed(V8BindingState::Only(), frame, url, lockHistory ? V8Binding::Frame::LockedHistory : V8Binding::Frame::UnlockedHistory, lockBackForwardList ? V8Binding::Frame::LockedBackForwardList : V8Binding::Frame::UnlockedBackForwardList);
I think to make this work, we&apos;d have to put these enums in WebCore, probably in FrameLoader and push them through the loading system.  It&apos;s probably worth doing, but maybe not in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272677</commentid>
    <comment_count>11</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-01 00:40:39 -0700</bug_when>
    <thetext>I would like to move BindingFrame::completeURL onto State, but that needs to call getFirstFrame in the specialization (State&lt;JSBinding&gt;, etc.) which is blocked by State&lt;GenericBinding&gt;. Should State&lt;GenericBinding&gt; use CRTP and shared functions downcast to the specialization? Or should I nix State&lt;GenericBinding&gt; and make completeURL templatized on State&lt;T&gt;?

&gt; &gt; WebCore/bindings/js/JSLocationCustom.cpp:192
&gt; &gt; +    JSBindingState state(exec);
&gt; &gt; +    JSBinding::Frame::navigateIfAllowed(&amp;state, frame, url, lockHistory ? JSBinding::Frame::LockedHistory : JSBinding::Frame::UnlockedHistory, lockBackForwardList ? JSBinding::Frame::LockedBackForwardList : JSBinding::Frame::UnlockedBackForwardList);
&gt; What do you think?  Is this better?

It is ugly. What would you prescribe? FIXME to move the enums into WebCore? Or explain at the call site with variables:

bool lockHistory = true;
bool lockBackForwardList = true;
JSBinding::Frame::NavigateIfAllowed(&amp;state, frame, url, lockHistory, lockBackForwardList);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272679</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-01 00:46:18 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I would like to move BindingFrame::completeURL onto State, but that needs to call getFirstFrame in the specialization (State&lt;JSBinding&gt;, etc.) which is blocked by State&lt;GenericBinding&gt;. Should State&lt;GenericBinding&gt; use CRTP and shared functions downcast to the specialization? Or should I nix State&lt;GenericBinding&gt; and make completeURL templatized on State&lt;T&gt;?

Can&apos;t we just make completeURL a free function like it currently is?  It can be templated on T without having a class to back it up.

&gt; &gt; &gt; WebCore/bindings/js/JSLocationCustom.cpp:192
&gt; &gt; &gt; +    JSBindingState state(exec);
&gt; &gt; &gt; +    JSBinding::Frame::navigateIfAllowed(&amp;state, frame, url, lockHistory ? JSBinding::Frame::LockedHistory : JSBinding::Frame::UnlockedHistory, lockBackForwardList ? JSBinding::Frame::LockedBackForwardList : JSBinding::Frame::UnlockedBackForwardList);
&gt; &gt; What do you think?  Is this better?
&gt; 
&gt; It is ugly. What would you prescribe? FIXME to move the enums into WebCore? Or explain at the call site with variables:
&gt; 
&gt; bool lockHistory = true;
&gt; bool lockBackForwardList = true;
&gt; JSBinding::Frame::NavigateIfAllowed(&amp;state, frame, url, lockHistory, lockBackForwardList);

I think we should go back to what you had before and just pass the literal values and remember that we should do this global cleanup another day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272971</commentid>
    <comment_count>13</comment_count>
      <attachid>66253</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-01 13:24:25 -0700</bug_when>
    <thetext>Created attachment 66253
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273005</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-01 14:11:30 -0700</bug_when>
    <thetext>Attachment 66253 did not build on gtk:
Build output: http://queues.webkit.org/results/3955026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273069</commentid>
    <comment_count>15</comment_count>
      <attachid>66253</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-01 15:42:49 -0700</bug_when>
    <thetext>Comment on attachment 66253
Patch.

Will update ChangeLog and fix GTK build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273080</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-01 16:01:47 -0700</bug_when>
    <thetext>Attachment 66253 did not build on chromium:
Build output: http://queues.webkit.org/results/3916026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273489</commentid>
    <comment_count>17</comment_count>
      <attachid>66393</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-02 12:09:26 -0700</bug_when>
    <thetext>Created attachment 66393
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274079</commentid>
    <comment_count>18</comment_count>
      <attachid>66525</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-03 11:50:45 -0700</bug_when>
    <thetext>Created attachment 66525
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274157</commentid>
    <comment_count>19</comment_count>
      <attachid>66525</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-03 13:46:23 -0700</bug_when>
    <thetext>Comment on attachment 66525
Patch.

Okiedokes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274166</commentid>
    <comment_count>20</comment_count>
      <attachid>66525</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-03 14:12:15 -0700</bug_when>
    <thetext>Comment on attachment 66525
Patch.

Clearing flags on attachment: 66525

Committed r66770: &lt;http://trac.webkit.org/changeset/66770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274167</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-03 14:12:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276375</commentid>
    <comment_count>22</comment_count>
      <attachid>67010</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-09 02:19:58 -0700</bug_when>
    <thetext>Created attachment 67010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276888</commentid>
    <comment_count>23</comment_count>
      <attachid>67127</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-09 17:53:23 -0700</bug_when>
    <thetext>Created attachment 67127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276895</commentid>
    <comment_count>24</comment_count>
      <attachid>67127</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-09 18:01:42 -0700</bug_when>
    <thetext>Comment on attachment 67127
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277014</commentid>
    <comment_count>25</comment_count>
      <attachid>67127</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-09 22:00:48 -0700</bug_when>
    <thetext>Comment on attachment 67127
Patch

I&apos;ll commit this manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277019</commentid>
    <comment_count>26</comment_count>
      <attachid>67152</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2010-09-09 22:07:48 -0700</bug_when>
    <thetext>Created attachment 67152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277020</commentid>
    <comment_count>27</comment_count>
      <attachid>67152</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-09 22:10:33 -0700</bug_when>
    <thetext>Comment on attachment 67152
Patch

Clearing flags on attachment: 67152

Committed r67167: &lt;http://trac.webkit.org/changeset/67167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277021</commentid>
    <comment_count>28</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-09 22:10:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65951</attachid>
            <date>2010-08-30 14:02:07 -0700</date>
            <delta_ts>2010-08-30 20:29:33 -0700</delta_ts>
            <desc>Patch. Do not review--just bouncing off trybots.</desc>
            <filename>bug-44891-20100831060205.patch</filename>
            <type>text/plain</type>
            <size>40900</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzlhYjIzNTQ1MGFmNDEwNDI2MWRhNzY5NDJlNjExOTMwYzg5N2Q5YS4uMTE5MmI3MTdmZjMyNzUz
Y2E4ZWJhOWNiNWNkM2M2ZGJjMjgzYjBkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOC0zMCAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OnJlcGxhY2UpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6OjpuYXZpZ2F0ZUlmQWxsb3dl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0R5bmFtaWNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJ
ZkFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6OjpnZXRGaXJzdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNTYWZlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTIzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDVkODY1NTIyOGNiYmFiNjllMjcxNGE4MjEw
YzAxZDQzZjMwMWEyZDMuLjlhN2Y3NzhmMjdiYjlkMjhjZTEyNjljNTlmOGM4NTIwMGJhNTJmMDAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC01MTAsOSArNTEwLDExIEBACiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9B
Y3RpdmVET01DYWxsYmFjay5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQWN0
aXZlRE9NQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5n
RE9NV2luZG93LmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0
aW9uLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5Lmgn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywK
KyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCcsCkBAIC01Mjks
NiArNTMxLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvanMvSlNCaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwJywKQEAgLTcwOCw2ICs3MTEsOCBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L0NoaWxkVGhyZWFkRE9NRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMDBjMGZjYzg1NWNiYmU3OGFjZjk0NDAzYzBkMDBlODI2NmNmYmFmNS4uNzlj
MDg3MDA1MjJiMTBhMjYxMjlhZmQwOTJiMjgxNjg0OGU4OTRhMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MTgwNyw2ICs0MTgwNywzMCBAQAogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQWN0aXZlRE9NQ2FsbGJhY2suaCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xnZW5lcmljXEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1Nl
Y3VyaXR5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCINCisJ
CQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9G
aWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmlj
XEJpbmRpbmdVdGlsaXRpZXMuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJ
CU5hbWU9ImdlbmVyaWMiDQpAQCAtNDIxNjQsNiArNDIxODgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8
L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
QmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+
DQogCQkJCTwvRmlsZT4NCkBAIC00OTQ1OSw2ICs0OTQ4Nyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXFdvcmtlclNjcmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdT
dGF0ZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRl
cj4NCiAJCTxGaWx0ZXINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGJlMjYxOTc3NTY3YmI2MjRhZDM5NTY3Y2JkYmI4YjhiNDk1MmFjNjkuLjU4MjU4NTQx
NjQ1NzgzZTUzNTFjZmRjZjNlZDNjNmQzODEwOTNkYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzk5LDYgKzI3OTksMTUgQEAKIAkJQTU5RTNDMUYx
MTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtl
eUV2ZW50SVBob25lLm1tICovOyB9OwogCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3Rl
cFJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE1QUZCMzREMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFG
QjM1MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3Rl
cFJhbmdlLmggKi87IH07CisJCUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVE
MTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0
NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRp
bmdTdGF0ZS5jcHAgKi87IH07CisJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRp
bmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2
MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLzsgfTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIz
IC8qIEJpbmRpbmdTZWN1cml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTYyMkE4RjUxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5o
ICovOyB9OworCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIy
QThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJ
CUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRp
bmdVdGlsaXRpZXMuaCAqLzsgfTsKKwkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVy
aWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJ
QTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0Ug
LyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4
RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUy
QzE5MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAg
LyogUmVuZGVyU1ZHQmxvY2suY3BwICovOyB9OwpAQCAtODY3Miw2ICs4NjgxLDE1IEBACiAJCUE1
QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RlcFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE1Qzk3NENGMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEtleUV2ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2
ZW50Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZG
MTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBLZXlFdmVudENvY29hLm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2Nv
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4
NUIzIC8qIEpTQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jp
bmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAw
QTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTQmluZGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7
IHBhdGggPSBnZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNjIyQThGNTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0g
Z2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7
IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlC
YXNlLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGls
aXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGll
cy5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRo
ID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4
OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
TWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MzgxLDYg
KzE0Mzk5LDE1IEBACiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQlBNjIyQThFRjEyMkM0NDQ1MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIy
QzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJD
NDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNw
ZWNpYWxpemF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThC
N0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtMTYwMjgsNiArMTYwNTUsMTIgQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUI1RDMxREY4MTFDRjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAg
Ki8sCiAJCQkJQjVEMzFERjkxMUNGNjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmgg
Ki8sCisJCQkJQTYyMkE4RjQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICov
LAorCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywK
KwkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAg
Ki8sCisJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCAqLywKKwkJCQlBNjIyQThGODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5o
ICovLAorCQkJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICov
LAogCQkJKTsKIAkJCW5hbWUgPSBnZW5lcmljOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTE2MDY3LDYgKzE2MTAwLDcgQEAKIAkJCQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyog
Q2FsbGJhY2sgT2JqZWN0cyAqLywKIAkJCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29u
c3RydWN0b3JzICovLAogCQkJCUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8s
CisJCQkJQTYyMkE4RUYxMjJDNDQ0NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJ
CTE0REZCMzNGMEE3REY3NjMwMDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNE
NTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8s
CiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywK
QEAgLTE2MDgwLDYgKzE2MTE0LDcgQEAKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyog
SURCQmluZGluZ1V0aWxpdGllcy5oICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAv
KiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZF
MDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3
ODVCMyAvKiBKU0JpbmRpbmcuaCAqLywKIAkJCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyog
SlNEZWJ1Z1dyYXBwZXJTZXQuY3BwICovLAogCQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAv
KiBKU0RlYnVnV3JhcHBlclNldC5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAv
KiBKU0RPTUJpbmRpbmcuY3BwICovLApAQCAtMjAzNzYsNiArMjA0MTEsMTMgQEAKIAkJCQk4OTQ3
QTgzQzEyMjIzNEY0MDBEOTVGMkQgLyogTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5
NDdBODNEMTIyMjM0RjkwMEQ5NUYyRCAvKiBNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5RjNCOTQ3RTEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNuYXBzaG90Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThFRTEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5n
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGMzEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5k
aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAv
KiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZCMTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZE
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyODMzLDYgKzIyODc1LDggQEAKIAkJCQk4OTY4NkM5RjEy
MjI0NEEwMDA3NkVBQTQgLyogRE9NRmlsZVBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk0
N0E4MjkxMjIyMkM0NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODk0N0E4MkIxMjIyMkM0NzAwRDk1RjJEIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3Rh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8qIEJp
bmRpbmdTZWN1cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaAppbmRleCAwYzQ1MGE1ZDdhZjU4NWJhNTU3YWI3OTZh
OGU2MDEyZTkzYjQ2Nzg2Li5mYmFlYzQ0OGVkYTkwODRhM2I2M2ExZjllYTI4YWM0MWExZWU2ODJi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKQEAgLTY1
LDkgKzY1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXaW5kb3dGZWF0dXJlcyYgcmF3RmVhdHVyZXMpOwogCi0gICAgLy8gRklYTUU6
IFRoZXJlIHNob3VsZCBiZSBhIHBsYWNlIGZvciBnZW5lcmljIGJpbmRpbmcgdXRpbGl0aWVzLgot
ICAgIHN0YXRpYyBLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCk7Ci0KIHByaXZhdGU6CiAgICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGlj
YWwgb2Zmc2V0LCBmcm9tIHRoZSBwYXJlbnQgY29udGVudCBhcmVhLAogICAgIC8vIGFyb3VuZCBu
ZXdseSBvcGVuZWQgcG9wdXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLgpAQCAtMTIx
LDcgKzExOCw3IEBAIEZyYW1lKiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpjcmVhdGVXaW5k
b3coU3RhdGU8QmluZGluZz4qIHN0YXRlLAogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlw
dCh1cmwpIHx8IEJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6Y2FuQWNjZXNzRnJhbWUoc3RhdGUs
IG5ld0ZyYW1lLCB0cnVlKSkgewogICAgICAgICBLVVJMIGNvbXBsZXRlZFVybCA9Ci0gICAgICAg
ICAgICB1cmwuaXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxTdHJpbmcsICIiKSA6IGNvbXBsZXRl
VVJMKHN0YXRlLCB1cmwpOworICAgICAgICAgICAgdXJsLmlzRW1wdHkoKSA/IEtVUkwoUGFyc2Vk
VVJMU3RyaW5nLCAiIikgOiBCaW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1
cmwpOwogICAgICAgICBib29sIHVzZXJHZXN0dXJlID0gc3RhdGUtPnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpOwogCiAgICAgICAgIGlmIChjcmVhdGVkKQpAQCAtMTg1LDcgKzE4Miw3IEBAIFdlYkNv
cmU6OkRPTVdpbmRvdyogQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5k
aW5nPiogc3RhdGUsCiAKICAgICAgICAgU3RyaW5nIGNvbXBsZXRlZFVybDsKICAgICAgICAgaWYg
KCF1cmxTdHJpbmcuaXNFbXB0eSgpKQotICAgICAgICAgICAgY29tcGxldGVkVXJsID0gY29tcGxl
dGVVUkwoc3RhdGUsIHVybFN0cmluZyk7CisgICAgICAgICAgICBjb21wbGV0ZWRVcmwgPSBCaW5k
aW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1cmxTdHJpbmcpOwogCiAgICAgICAg
IGlmICghY29tcGxldGVkVXJsLmlzRW1wdHkoKQogICAgICAgICAgICAgJiYgKCFwcm90b2NvbElz
SmF2YVNjcmlwdChjb21wbGV0ZWRVcmwpCkBAIC0yNjgsMTggKzI2NSw2IEBAIFdlYkNvcmU6OkRP
TVdpbmRvdyogQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5nPiog
c3RhdGUsCiAgICAgcmV0dXJuIGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAotdGVtcGxhdGUgPGNs
YXNzIEJpbmRpbmc+Ci1LVVJMIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNvbXBsZXRlVVJM
KFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCi0g
ICAgLy8gZHluYW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RG
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAgcmV0
dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2luZG93X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBiL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWI0MjE3
OTYyMzI4NThlODEwZmI5M2FlZTBjNDVmZmEwYzBiNTA3Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oCkBAIC0wLDAgKzEsNjUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEJpbmRpbmdMb2NhdGlvbl9oCisjZGVmaW5lIEJpbmRpbmdMb2NhdGlvbl9oCisKKyNp
bmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgor
I2luY2x1ZGUgIkxvY2F0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUg
PGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nTG9jYXRpb24geworcHVibGljOgorICAgIHN0
YXRpYyB2b2lkIHJlcGxhY2UoU3RhdGU8QmluZGluZz4qLCBMb2NhdGlvbiosIGNvbnN0IFN0cmlu
ZyYgdXJsU3BlYyk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGlu
Z0xvY2F0aW9uPEJpbmRpbmc+OjpyZXBsYWNlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgTG9jYXRp
b24qIGxvY2F0aW9uLCBjb25zdCBTdHJpbmcmIHVybFNwZWMpCit7CisgICAgRnJhbWUqIGZyYW1l
ID0gbG9jYXRpb24tPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgS1VSTCB1cmwgPSBCaW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1
cmxTcGVjKTsKKyAgICBpZiAodXJsLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
ZiAoIUJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKHN0YXRl
LCBmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEJpbmRpbmc6OlV0aWxpdGllczo6bmF2
aWdhdGVJZkFsbG93ZWQoc3RhdGUsIGZyYW1lLCB1cmwsIHRydWUsIHRydWUpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBCaW5kaW5nTG9jYXRpb25faApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaCBiL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzliZWIw
NjQzZjE0YWE4ZDU1YWQ3NWJlMTc5Mjg5OGNmY2I1ZjY2YwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQmluZGluZ1V0aWxpdGllc19oCisjZGVmaW5lIEJpbmRpbmdVdGlsaXRpZXNfaAor
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUg
IkdlbmVyaWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNs
YXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nVXRpbGl0aWVzIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgS1VSTCBjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiosIGNvbnN0IFN0cmluZyYgcmVsYXRp
dmVVUkwpOworICAgIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+
KiwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0Zv
cndhcmRMaXN0KTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorS1VSTCBCaW5kaW5n
VXRpbGl0aWVzPEJpbmRpbmc+Ojpjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYg
cmVsYXRpdmVVUkwpCit7CisgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0
byBjb21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRoZQorICAgIC8vIGR5bmFtaWMgZnJhbWUuCisgICAg
RnJhbWUqIGZyYW1lID0gc3RhdGUtPmdldEZpcnN0RnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm4gS1VSTCgpOworICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNvbXBs
ZXRlVVJMKHJlbGF0aXZlVVJMKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lk
IEJpbmRpbmdVdGlsaXRpZXM8QmluZGluZz46Om5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRp
bmc+KiBzdGF0ZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hpc3Rv
cnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKK3sKKyAgICBGcmFtZSogYWN0aXZlRnJhbWUg
PSBzdGF0ZS0+Z2V0QWN0aXZlRnJhbWUoKTsKKyAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IHN0YXRlLT5p
c1NhZmVTY3JpcHQoZnJhbWUpKQorICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+
c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwg
c3RhdGUtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gQmluZGluZ1V0aWxpdGllc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NDgyMGFjNzU5NmZjYWVhOTkwZjNiYzZjZjExMGE1NmMyYjI4YTdhCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdfaAorI2RlZmluZSBKU0JpbmRpbmdfaAorCisjaW5j
bHVkZSAiQmluZGluZ0xvY2F0aW9uLmgiCisjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCisj
aW5jbHVkZSAiQmluZGluZ1V0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8v
IEluc3RhbnRpYXRlIGJpbmRpbmcgdGVtcGxhdGUgY2xhc3NlcyBmb3IgSlNDLgorY2xhc3MgSlNC
aW5kaW5nIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxKU0JpbmRpbmc+
IExvY2F0aW9uOworICAgIHR5cGVkZWYgQmluZGluZ1V0aWxpdGllczxKU0JpbmRpbmc+IFV0aWxp
dGllczsKK307CisKK3R5cGVkZWYgQmluZGluZ1NlY3VyaXR5PEpTQmluZGluZz4gSlNCaW5kaW5n
U2VjdXJpdHk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGlu
Z19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIy
ZTQ0OTcxOGMxNzQzYjYzY2MyN2UwM2VjNTI5YzM1ODFjOGI3MS4uNmUxY2MxZTIzYmExYWY4MzRj
ZjM3OWUzM2JhNWJjZmViOTNhYmZlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5j
cHAiCiAjaW5jbHVkZSAiSlNBdHRyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvQ29uc3Ry
dWN0b3IuY3BwIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmNwcCIKICNpbmNsdWRlICJKU0NE
QVRBU2VjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcAppbmRleCA5NjM5NGViNzViZGJiMTJmZTQwN2YwMzIwMjJkYmQ1N2NjODY3YWEzLi5h
YTBjYzA2OTEzNmU3ODg1ZWVlNzgyYWYzZmExNWE4MDlkZTgwM2Y1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0zOCwxMSArMzgsMTQgQEAKICNpbmNsdWRlICJIVE1MSW1h
Z2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlw
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmdT
dGF0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29yZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNEZWJ1Z1dyYXBwZXJTZXQuaCIKICNpbmNsdWRl
ICJKU0V2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgiCisjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5j
bHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb24uaCIKQEAgLTYzOSw4ICs2NDIsOCBAQCBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShF
eGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSwgU3RyaW5nJiBtZXNzYWdlKQogCiBib29sIHNo
b3VsZEFsbG93TmF2aWdhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSkKIHsKLSAg
ICBGcmFtZSogbGV4aWNhbEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgcmV0dXJu
IGxleGljYWxGcmFtZSAmJiBsZXhpY2FsRnJhbWUtPmxvYWRlcigpLT5zaG91bGRBbGxvd05hdmln
YXRpb24oZnJhbWUpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlID0gSlNCaW5kaW5nU3RhdGU6
OmNyZWF0ZShleGVjKTsKKyAgICByZXR1cm4gSlNCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
TmF2aWdhdGlvbigmc3RhdGUsIGZyYW1lKTsKIH0KIAogYm9vbCBhbGxvd1NldHRpbmdTcmNUb0ph
dmFzY3JpcHRVUkwoRXhlY1N0YXRlKiBleGVjLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC02NzEsMjYgKzY3NCwyMyBAQCB2b2lk
IHByaW50RXJyb3JNZXNzYWdlRm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAKIEZyYW1lKiB0b0xleGljYWxGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
cmV0dXJuIGFzSlNET01XaW5kb3coZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgp
LT5mcmFtZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKGV4ZWMpLmdldEFj
dGl2ZUZyYW1lKCk7CiB9CiAKIEZyYW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4ZWMp
CiB7Ci0gICAgcmV0dXJuIGFzSlNET01XaW5kb3coZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgp
KS0+aW1wbCgpLT5mcmFtZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKGV4
ZWMpLmdldEZpcnN0RnJhbWUoKTsKIH0KIAogYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQog
ewotICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsK
KyAgICByZXR1cm4gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShKU01haW5UaHJlYWRFeGVjU3RhdGU6
OmN1cnJlbnRTdGF0ZSgpKS5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAogS1VSTCBjb21w
bGV0ZVVSTChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCiB7Ci0g
ICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJM
IHVzaW5nIHRoZSBkeW5hbWljIGZyYW1lLgotICAgIEZyYW1lKiBmcmFtZSA9IHRvRHluYW1pY0Zy
YW1lKGV4ZWMpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAg
cmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOworICAgIEpT
QmluZGluZ1N0YXRlIHN0YXRlID0gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShleGVjKTsKKyAgICBy
ZXR1cm4gSlNCaW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKCZzdGF0ZSwgcmVsYXRpdmVV
UkwpOwogfQogCiBKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA5OTE2NmNkOTE1N2NiMDlkODA2
NWExMmRkN2M2NDc3Zjc0Njc3NDMzLi5kOTgwYWIzM2Q2ZWUwM2M4OWRjZThiYjU4NzQyODY1NWY3
NGUzZjM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20u
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI3
LDYgKzI3LDggQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2lu
Y2x1ZGUgIkpTQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC0xODYsMTIg
KzE4OCw4IEBAIHZvaWQgSlNMb2NhdGlvbjo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKCiAKIHN0YXRpYyB2b2lkIG5hdmlnYXRl
SWZBbGxvd2VkKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmws
IGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFt
ZSogbGV4aWNhbEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFsZXhpY2Fs
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
dXJsKSB8fCBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgZnJhbWUpKQotICAgICAgICBmcmFt
ZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5n
KCksIGxleGljYWxGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3Rv
cnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICBK
U0JpbmRpbmdTdGF0ZSBzdGF0ZSA9IEpTQmluZGluZ1N0YXRlOjpjcmVhdGUoZXhlYyk7CisgICAg
SlNCaW5kaW5nOjpVdGlsaXRpZXM6Om5hdmlnYXRlSWZBbGxvd2VkKCZzdGF0ZSwgZnJhbWUsIHVy
bCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiB2b2lkIEpTTG9jYXRp
b246OnNldEhyZWYoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMzAzLDE4ICsz
MDEsOCBAQCB2b2lkIEpTTG9jYXRpb246OnNldEhhc2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQogCiBKU1ZhbHVlIEpTTG9jYXRpb246OnJlcGxhY2UoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVV
UkwoZXhlYywgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMp
KSk7Ci0gICAgaWYgKHVybC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0KLSAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihleGVjLCBmcmFtZSkpCi0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZXhlYywgZnJh
bWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUgPSBKU0JpbmRp
bmdTdGF0ZTo6Y3JlYXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6TG9jYXRpb246OnJlcGxhY2Uo
JnN0YXRlLCBpbXBsKCksIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKSkpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc3NTg1MjdjNTI5MDQ1Mzk3MTNmMjBlYmJiNjNhMzMyZjVhMTZhMmQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0
YXRlLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpT
QmluZGluZ1N0YXRlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOwor
CitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0QWN0aXZlRnJhbWUoKQoreworICAgIHJldHVy
biBhc0pTRE9NV2luZG93KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5m
cmFtZSgpOworfQorCitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0Rmlyc3RGcmFtZSgpCit7
CisgICAgcmV0dXJuIGFzSlNET01XaW5kb3cobV9leGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkp
LT5pbXBsKCktPmZyYW1lKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6aXNTYWZlU2NyaXB0
KEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gYWxsb3dzQWNjZXNzRnJvbUZyYW1lKG1fZXhl
YywgZnJhbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzQyM2Y3N2NmZjUxZjEzZTZjNmY3ODdhNDhmN2FmOGI5M2ZkMDMzNgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdTdGF0ZV9oCisjZGVmaW5lIEpTQmluZGlu
Z1N0YXRlX2gKKworI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNCaW5k
aW5nLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CisKK30gLy8gbmFt
ZXNwYWNlIEpTQworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCit0ZW1w
bGF0ZSA8PgorY2xhc3MgU3RhdGU8SlNCaW5kaW5nPiA6IHB1YmxpYyBTdGF0ZTxHZW5lcmljQmlu
ZGluZz4geworcHVibGljOgorICAgIHN0YXRpYyBTdGF0ZSBjcmVhdGUoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMpCisgICAgeworICAgICAgICByZXR1cm4gU3RhdGUoZXhlYyk7CisgICAgfQorCisgICAg
dmlydHVhbCB+U3RhdGUoKSB7fQorCisgICAgRnJhbWUqIGdldEFjdGl2ZUZyYW1lKCk7CisgICAg
RnJhbWUqIGdldEZpcnN0RnJhbWUoKTsKKworICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIGluIEJpbmRpbmdTZWN1
cml0eQorICAgIGJvb2wgaXNTYWZlU2NyaXB0KEZyYW1lKik7CisKK3ByaXZhdGU6CisgICAgSlND
OjpFeGVjU3RhdGUqIG1fZXhlYzsKKworICAgIGV4cGxpY2l0IFN0YXRlKEpTQzo6RXhlY1N0YXRl
KiBleGVjKSA6IG1fZXhlYyhleGVjKSB7fQorfTsKKwordHlwZWRlZiBTdGF0ZTxKU0JpbmRpbmc+
IEpTQmluZGluZ1N0YXRlOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBK
U0JpbmRpbmdTdGF0ZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCAwODdjMTI4M2NjNzQ5
YjY4ODg3MTMzMWZiMjhjYTk4NjlkNGMxMzE5Li4xNGJjYjI5N2NlYTRhYTBjZTE1Yjg5MzBmMzc0
ZTY5NTJjZWMwOTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTMxLDcgKzMxLDkgQEAK
ICNpZm5kZWYgVjhCaW5kaW5nX2gKICNkZWZpbmUgVjhCaW5kaW5nX2gKIAorI2luY2x1ZGUgIkJp
bmRpbmdMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorI2luY2x1ZGUg
IkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKQEAgLTUwLDE2ICs1
MiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVm
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdE
T01XaW5kb3cgRE9NV2luZG93OworICAgICAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxWOEJp
bmRpbmc+IExvY2F0aW9uOworICAgICAgICB0eXBlZGVmIEJpbmRpbmdVdGlsaXRpZXM8VjhCaW5k
aW5nPiBVdGlsaXRpZXM7CiAKICAgICAgICAgc3RhdGljIFZhbHVlIGVtcHR5U2NyaXB0VmFsdWUo
KSB7IHJldHVybiB2ODo6TG9jYWw8djg6OlZhbHVlPigpOyB9CiAgICAgfTsKICAgICB0eXBlZGVm
IEJpbmRpbmdTZWN1cml0eTxWOEJpbmRpbmc+IFY4QmluZGluZ1NlY3VyaXR5OwotICAgIAorCiAg
ICAgZW51bSBFeHRlcm5hbE1vZGUgewogICAgICAgICBFeHRlcm5hbGl6ZSwKICAgICAgICAgRG9O
b3RFeHRlcm5hbGl6ZQogICAgIH07Ci0gICAgCisKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3Ry
aW5nVHlwZT4KICAgICBTdHJpbmdUeXBlIHY4U3RyaW5nVG9XZWJDb3JlU3RyaW5nKHY4OjpIYW5k
bGU8djg6OlN0cmluZz4gdjhTdHJpbmcsIEV4dGVybmFsTW9kZSBleHRlcm5hbCk7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFV0aWxpdGllcy5jcHAKaW5kZXggMmU1Y2Y4YjBmNTI3NmY3NzYzZmYzNjljNGU0
MDU3MjM5ZmRhMGRiMC4uZjc0YTZlY2Q5MjM3ZjliYzdiNWJiMjhkNjUzMjIwY2JlZmMxMmVmZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIK
ICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdET01XaW5kb3cuaCIg
Ly8gRklYTUU6IHJlbW92ZSB3aGVuIGNvbXBsZXRlVVJMIG1vdmVzCiAjaW5jbHVkZSAiVjhCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgpAQCAtMTEyLDE2ICsxMTEsMTIgQEAgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb24oRnJh
bWUqIGZyYW1lKQogCiBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwp
CiB7Ci0gICAgcmV0dXJuIFY4QmluZGluZ0RPTVdpbmRvdzo6Y29tcGxldGVVUkwoVjhCaW5kaW5n
U3RhdGU6Ok9ubHkoKSwgcmVsYXRpdmVVUkwpOworICAgIHJldHVybiBWOEJpbmRpbmc6OlV0aWxp
dGllczo6Y29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgcmVsYXRpdmVVUkwpOwog
fQogCiB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJs
LCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0gICAgRnJh
bWUqIGNhbGxpbmdPckVudGVyZWQgPSBjYWxsaW5nT3JFbnRlcmVkRnJhbWUoKTsKLSAgICBpZiAo
IWNhbGxpbmdPckVudGVyZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIXByb3RvY29sSXNK
YXZhU2NyaXB0KHVybCkgfHwgU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKSkK
LSAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFu
Z2UodXJsLnN0cmluZygpLCBjYWxsaW5nT3JFbnRlcmVkLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZl
cnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCkpOworICAgIHJldHVybiBWOEJpbmRpbmc6OlV0aWxpdGllczo6bmF2aWdhdGVJZkFs
bG93ZWQoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwgbG9ja0hpc3RvcnksIGxv
Y2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhM
b2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYWMzMDVjOTdmMDA5YmMwZGFiZjFiNGE3ZGIwZWFhMmVi
YzI5ODZiNS4uNjA2OGFhMjFhMjYxZWY5NGJjYzFmMmRhMGFmM2VlMDQ3NDRiOGVjZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI5
MiwxOSArMjkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246OnJlcGxhY2VD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUygiRE9NLkxv
Y2F0aW9uLnJlcGxhY2UiKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFy
Z3MuSG9sZGVyKCk7CiAgICAgTG9jYXRpb24qIGltcCA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGhv
bGRlcik7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFt
ZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29t
cGxldGVVUkwodG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKLSAgICBpZiAodXJsLmlzTnVsbCgp
KQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxv
d05hdmlnYXRpb24oZnJhbWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0g
ICAgbmF2aWdhdGVJZkFsbG93ZWQoZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgVjhCaW5k
aW5nOjpMb2NhdGlvbjo6cmVwbGFjZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAsIHRvV2Vi
Q29yZVN0cmluZyhhcmdzWzBdKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIApA
QCAtMzc4LDQgKzM2NiwzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KExvY2F0aW9uKiBp
bXBsKQogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCmluZGV4IGNjZGQ3
YzhjZTcyNTZhNjRlMWE1N2ExNTVmYjZlNzA1MjA2MzgxODYuLmI4NzY0MDU4YzgxMDFlOTE1MjZl
ODI1YjA5OTc2OTFjYmQxMDY0YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3Bl
Y2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
c3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCkBAIC04NCw0ICs4NCw5IEBAIGJvb2wg
U3RhdGU8VjhCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKICAgICByZXR1cm4gU2Ny
aXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKK2Jvb2wgU3RhdGU8
VjhCaW5kaW5nPjo6aXNTYWZlU2NyaXB0KEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gU2Ny
aXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9W
OEJpbmRpbmdTdGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJp
bmRpbmdTdGF0ZS5oCmluZGV4IGJhYmEwYzYzYzA4OGZmNzE0ODU4ZDRkMDZiOWRmZmNiYzA0MWE3
MmMuLmNhNTFiMTA0OTZiNDdiM2M3ZTU3N2FhOTAxMjRhMzg4MzA0NjkyMmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgKQEAg
LTYwLDYgKzYwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUo
KTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzaGFyZWQgaW4gQmluZGluZ1NlY3Vy
aXR5CisgICAgYm9vbCBpc1NhZmVTY3JpcHQoRnJhbWUqKTsKKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBTdGF0ZSgpIHt9CiAgICAgflN0YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66006</attachid>
            <date>2010-08-30 20:29:39 -0700</date>
            <delta_ts>2010-08-31 14:24:52 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-44891-20100831122937.patch</filename>
            <type>text/plain</type>
            <size>40891</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjRhYWFhMGViYTZhNjk2ZDNhN2Q4YWNmNjM0YTI2MzM0ODlhYjNmZi4uN2M0MjRmZWIzYTdlMDRi
ZDA4OTM5YTc2Mjc3YmNmMGI2MmFiMDA5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOC0zMCAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OnJlcGxhY2UpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6OjpuYXZpZ2F0ZUlmQWxsb3dl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0R5bmFtaWNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJ
ZkFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6OjpnZXRGaXJzdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNTYWZlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTMwICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IGU1YjU3YmEwOGUzYTAwZDhkNTk4Y2QyYmU0MDczZDcwYTlhMGJkZjcuLmMz
ZWJmM2EyYTczYTNkZmRmNTkzZjc2MDIxMDk5MWUwNjE0YTExNDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTAsOSArNTEw
LDExIEBACiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suaCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgnLAorICAg
ICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywKKyAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9HZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCcsCkBAIC01MjksNiArNTMxLDcgQEAKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNCaW5k
aW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDREFUQVNl
Y3Rpb25DdXN0b20uY3BwJywKQEAgLTcwOCw2ICs3MTEsOCBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3BlY2lh
bGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9z
cGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9T
Y3JpcHRDb250cm9sbGVyQmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL1NjcmlwdENv
bnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0NoaWxkVGhyZWFkRE9N
RGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTgzNThk
ZWEzMGQyMGE5MTgyYmY3NWY4YTM5NTViM2M4NTFhODVjNS4uNzkxZWY3MDUyODFlZDBhYmE0OWU0
ZjVmZmZhZWUzZTEyNTYwZmIxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC00MTg0Nyw2ICs0MTg0NywzMCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGdlbmVyaWNcQWN0aXZlRE9NQ2FsbGJhY2suaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdM
b2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1NlY3VyaXR5LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxl
Pg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJp
bmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdVdGlsaXRpZXMu
aCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVyaWMiDQpA
QCAtNDIyMDQsNiArNDIyMjgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZy5oIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTQmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBA
IC00OTQ5OSw2ICs0OTUyNyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XFdvcmtlclNjcmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxK
U0JpbmRpbmdTdGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiIN
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wN
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
CT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
CS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5oIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxYmY0NGU2Mjcw
NGJkM2UyOGE3OTRjNzhhY2YwM2Y2MWU5YWIxYzUuLjZhNTc2MzYzMDVlZmY2ZWZkZWEwNmJiOTE0
NjIwNDAzYjhmZWYwMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yODMyLDYgKzI4MzIsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5MjhFIC8q
IEtleUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tICov
OyB9OwogCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1MTUxQTcw
MEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1
Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87IH07CisJ
CUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAv
KiBKU0JpbmRpbmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmlu
ZGluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi87IH07
CisJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJDNDQ0NTAw
QTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRp
b24uaCAqLzsgfTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4
RjUxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlBNjIyQThG
QzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLzsg
fTsKKwkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEyMkM0NEE2
MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAw
QTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5
MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0Ug
LyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZE
MCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2su
Y3BwICovOyB9OwpAQCAtODcxMCw2ICs4NzE5LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUxQTcwMEIw
NDVDQiAvKiBTdGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rl
cFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0ODVGRjEw
MDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEtleUV2ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2
ZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlF
dmVudENvY29hLm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGlu
Z1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmluZGlu
Z1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjExMjJDNDQ0
NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNTEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2Vj
dXJpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5l
cmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0gZ2VuZXJp
Yy9CaW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJB
OEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9HZW5lcmlj
QmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAx
MDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDEzLDYgKzE0NDMxLDE1IEBACiAJCQlu
YW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlBNjIyQThF
RjEyMkM0NDQ1MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBK
U0JpbmRpbmdTdGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpT
QmluZGluZ1N0YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9uOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgx
IC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtMTYwNzAsNiArMTYwOTcsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMxREY4MTFD
RjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVEMzFERjkx
MUNGNjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYyMkE4RjQx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJBOEY1MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThGNjEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYyMkE4Rjcx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNjIyQThG
ODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2MjJBOEY5
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBnZW5lcmljOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTA5LDYgKzE2MTQy
LDcgQEAKIAkJCQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2JqZWN0cyAq
LywKIAkJCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICovLAogCQkJ
CUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4RUYxMjJD
NDQ0NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3REY3NjMw
MDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3
NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMw
MEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTIyLDYgKzE2MTU2
LDcgQEAKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGll
cy5oICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENh
bGxGcmFtZS5oICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcu
aCAqLywKIAkJCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQu
Y3BwICovLAogCQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNl
dC5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3Bw
ICovLApAQCAtMjA0MzIsNiArMjA0NjcsMTMgQEAKIAkJCQk5NzZENkM5MTEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDOTMxMjJCOEEzRDAw
MUZEMUY3IC8qIEZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2Qzk1
MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNjIyQThFRTEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBNjIyQThGMzEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9j
YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZCMTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThG
RTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTIyODkzLDYgKzIyOTM1LDggQEAKIAkJCQk5NzZENkM4RDEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzZENkM5MDEyMkI4QTNE
MDAxRkQxRjcgLyogRmlsZVdyaXRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzZENkM5NDEy
MkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1
cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdET01XaW5kb3cuaAppbmRleCAwYzQ1MGE1ZDdhZjU4NWJhNTU3YWI3OTZhOGU2MDEyZTkz
YjQ2Nzg2Li5mYmFlYzQ0OGVkYTkwODRhM2I2M2ExZjllYTI4YWM0MWExZWU2ODJiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKQEAgLTY1LDkgKzY1LDYg
QEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBXaW5kb3dGZWF0dXJlcyYgcmF3RmVhdHVyZXMpOwogCi0gICAgLy8gRklYTUU6IFRoZXJlIHNo
b3VsZCBiZSBhIHBsYWNlIGZvciBnZW5lcmljIGJpbmRpbmcgdXRpbGl0aWVzLgotICAgIHN0YXRp
YyBLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5nJiByZWxhdGl2
ZVVSTCk7Ci0KIHByaXZhdGU6CiAgICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb2Zmc2V0
LCBmcm9tIHRoZSBwYXJlbnQgY29udGVudCBhcmVhLAogICAgIC8vIGFyb3VuZCBuZXdseSBvcGVu
ZWQgcG9wdXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLgpAQCAtMTIxLDcgKzExOCw3
IEBAIEZyYW1lKiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpjcmVhdGVXaW5kb3coU3RhdGU8
QmluZGluZz4qIHN0YXRlLAogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8
IEJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6Y2FuQWNjZXNzRnJhbWUoc3RhdGUsIG5ld0ZyYW1l
LCB0cnVlKSkgewogICAgICAgICBLVVJMIGNvbXBsZXRlZFVybCA9Ci0gICAgICAgICAgICB1cmwu
aXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxTdHJpbmcsICIiKSA6IGNvbXBsZXRlVVJMKHN0YXRl
LCB1cmwpOworICAgICAgICAgICAgdXJsLmlzRW1wdHkoKSA/IEtVUkwoUGFyc2VkVVJMU3RyaW5n
LCAiIikgOiBCaW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1cmwpOwogICAg
ICAgICBib29sIHVzZXJHZXN0dXJlID0gc3RhdGUtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwog
CiAgICAgICAgIGlmIChjcmVhdGVkKQpAQCAtMTg1LDcgKzE4Miw3IEBAIFdlYkNvcmU6OkRPTVdp
bmRvdyogQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5nPiogc3Rh
dGUsCiAKICAgICAgICAgU3RyaW5nIGNvbXBsZXRlZFVybDsKICAgICAgICAgaWYgKCF1cmxTdHJp
bmcuaXNFbXB0eSgpKQotICAgICAgICAgICAgY29tcGxldGVkVXJsID0gY29tcGxldGVVUkwoc3Rh
dGUsIHVybFN0cmluZyk7CisgICAgICAgICAgICBjb21wbGV0ZWRVcmwgPSBCaW5kaW5nOjpVdGls
aXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1cmxTdHJpbmcpOwogCiAgICAgICAgIGlmICghY29t
cGxldGVkVXJsLmlzRW1wdHkoKQogICAgICAgICAgICAgJiYgKCFwcm90b2NvbElzSmF2YVNjcmlw
dChjb21wbGV0ZWRVcmwpCkBAIC0yNjgsMTggKzI2NSw2IEBAIFdlYkNvcmU6OkRPTVdpbmRvdyog
QmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCiAg
ICAgcmV0dXJuIGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAotdGVtcGxhdGUgPGNsYXNzIEJpbmRp
bmc+Ci1LVVJMIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNvbXBsZXRlVVJMKFN0YXRlPEJp
bmRpbmc+KiBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAgICAvLyBGb3IgaGlzdG9yaWNhbCBy
ZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCi0gICAgLy8gZHlu
YW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOwot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAgcmV0dXJuIGZyYW1l
LT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2luZG93X2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBiL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWI0MjE3OTYyMzI4NThl
ODEwZmI5M2FlZTBjNDVmZmEwYzBiNTA3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJp
bmRpbmdMb2NhdGlvbl9oCisjZGVmaW5lIEJpbmRpbmdMb2NhdGlvbl9oCisKKyNpbmNsdWRlICJC
aW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorI2luY2x1ZGUg
IkxvY2F0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJp
bmRpbmc+CitjbGFzcyBCaW5kaW5nTG9jYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyB2b2lk
IHJlcGxhY2UoU3RhdGU8QmluZGluZz4qLCBMb2NhdGlvbiosIGNvbnN0IFN0cmluZyYgdXJsU3Bl
Yyk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0xvY2F0aW9u
PEJpbmRpbmc+OjpyZXBsYWNlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgTG9jYXRpb24qIGxvY2F0
aW9uLCBjb25zdCBTdHJpbmcmIHVybFNwZWMpCit7CisgICAgRnJhbWUqIGZyYW1lID0gbG9jYXRp
b24tPmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgS1VS
TCB1cmwgPSBCaW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKHN0YXRlLCB1cmxTcGVjKTsK
KyAgICBpZiAodXJsLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUJpbmRp
bmdTZWN1cml0eTxCaW5kaW5nPjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKHN0YXRlLCBmcmFtZSkp
CisgICAgICAgIHJldHVybjsKKworICAgIEJpbmRpbmc6OlV0aWxpdGllczo6bmF2aWdhdGVJZkFs
bG93ZWQoc3RhdGUsIGZyYW1lLCB1cmwsIHRydWUsIHRydWUpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBCaW5kaW5nTG9jYXRpb25faApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaCBiL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzliZWIwNjQzZjE0YWE4
ZDU1YWQ3NWJlMTc5Mjg5OGNmY2I1ZjY2YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
QmluZGluZ1V0aWxpdGllc19oCisjZGVmaW5lIEJpbmRpbmdVdGlsaXRpZXNfaAorCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkdlbmVyaWNC
aW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRp
bmc+CitjbGFzcyBCaW5kaW5nVXRpbGl0aWVzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgS1VSTCBj
b21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiosIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpOwor
ICAgIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiwgRnJhbWUq
LCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0
KTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorS1VSTCBCaW5kaW5nVXRpbGl0aWVz
PEJpbmRpbmc+Ojpjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVV
UkwpCit7CisgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBjb21wbGV0
ZSB0aGUgVVJMIHVzaW5nIHRoZQorICAgIC8vIGR5bmFtaWMgZnJhbWUuCisgICAgRnJhbWUqIGZy
YW1lID0gc3RhdGUtPmdldEZpcnN0RnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm4gS1VSTCgpOworICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJl
bGF0aXZlVVJMKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Cit2b2lkIEJpbmRpbmdV
dGlsaXRpZXM8QmluZGluZz46Om5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiBzdGF0
ZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wg
bG9ja0JhY2tGb3J3YXJkTGlzdCkKK3sKKyAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0ZS0+
Z2V0QWN0aXZlRnJhbWUoKTsKKyAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IHN0YXRlLT5pc1NhZmVTY3Jp
cHQoZnJhbWUpKQorICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVM
b2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgc3RhdGUtPnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQmluZGluZ1V0aWxpdGllc19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NDgyMGFjNzU5NmZjYWVhOTkwZjNiYzZjZjExMGE1NmMyYjI4YTdhCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApAQCAtMCwwICsxLDUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBKU0JpbmRpbmdfaAorI2RlZmluZSBKU0JpbmRpbmdfaAorCisjaW5jbHVkZSAiQmlu
ZGluZ0xvY2F0aW9uLmgiCisjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCisjaW5jbHVkZSAi
QmluZGluZ1V0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEluc3RhbnRp
YXRlIGJpbmRpbmcgdGVtcGxhdGUgY2xhc3NlcyBmb3IgSlNDLgorY2xhc3MgSlNCaW5kaW5nIHsK
K3B1YmxpYzoKKyAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxKU0JpbmRpbmc+IExvY2F0aW9u
OworICAgIHR5cGVkZWYgQmluZGluZ1V0aWxpdGllczxKU0JpbmRpbmc+IFV0aWxpdGllczsKK307
CisKK3R5cGVkZWYgQmluZGluZ1NlY3VyaXR5PEpTQmluZGluZz4gSlNCaW5kaW5nU2VjdXJpdHk7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGluZ19oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIyZTQ0OTcxOGMx
NzQzYjYzY2MyN2UwM2VjNTI5YzM1ODFjOGI3MS4uNmUxY2MxZTIzYmExYWY4MzRjZjM3OWUzM2Jh
NWJjZmViOTNhYmZlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5jcHAiCiAjaW5j
bHVkZSAiSlNBdHRyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvQ29uc3RydWN0b3IuY3Bw
IgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmNwcCIKICNpbmNsdWRlICJKU0NEQVRBU2VjdGlv
bkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApp
bmRleCA5NjM5NGViNzViZGJiMTJmZTQwN2YwMzIwMjJkYmQ1N2NjODY3YWEzLi5hYTBjYzA2OTEz
NmU3ODg1ZWVlNzgyYWYzZmExNWE4MDlkZTgwM2Y1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuY3BwCkBAIC0zOCwxMSArMzgsMTQgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmdTdGF0ZS5oIgog
I2luY2x1ZGUgIkpTRE9NQ29yZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3Vz
dG9tLmgiCiAjaW5jbHVkZSAiSlNEZWJ1Z1dyYXBwZXJTZXQuaCIKICNpbmNsdWRlICJKU0V2ZW50
RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgiCisjaW5jbHVkZSAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNS
YW5nZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIK
QEAgLTYzOSw4ICs2NDIsOCBAQCBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShFeGVjU3RhdGUq
IGV4ZWMsIEZyYW1lKiBmcmFtZSwgU3RyaW5nJiBtZXNzYWdlKQogCiBib29sIHNob3VsZEFsbG93
TmF2aWdhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBGcmFtZSog
bGV4aWNhbEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgcmV0dXJuIGxleGljYWxG
cmFtZSAmJiBsZXhpY2FsRnJhbWUtPmxvYWRlcigpLT5zaG91bGRBbGxvd05hdmlnYXRpb24oZnJh
bWUpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlID0gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShl
eGVjKTsKKyAgICByZXR1cm4gSlNCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93TmF2aWdhdGlv
bigmc3RhdGUsIGZyYW1lKTsKIH0KIAogYm9vbCBhbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRV
UkwoRXhlY1N0YXRlKiBleGVjLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC02NzEsMjYgKzY3NCwyMyBAQCB2b2lkIHByaW50RXJy
b3JNZXNzYWdlRm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAK
IEZyYW1lKiB0b0xleGljYWxGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIGFz
SlNET01XaW5kb3coZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgp
OworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKGV4ZWMpLmdldEFjdGl2ZUZyYW1l
KCk7CiB9CiAKIEZyYW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAg
cmV0dXJuIGFzSlNET01XaW5kb3coZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKS0+aW1wbCgp
LT5mcmFtZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKGV4ZWMpLmdldEZp
cnN0RnJhbWUoKTsKIH0KIAogYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogewotICAgIHJl
dHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKKyAgICByZXR1
cm4gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRT
dGF0ZSgpKS5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAogS1VSTCBjb21wbGV0ZVVSTChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCiB7Ci0gICAgLy8gRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRo
ZSBkeW5hbWljIGZyYW1lLgotICAgIEZyYW1lKiBmcmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMp
OwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAgcmV0dXJuIGZy
YW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOworICAgIEpTQmluZGluZ1N0
YXRlIHN0YXRlID0gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShleGVjKTsKKyAgICByZXR1cm4gSlNC
aW5kaW5nOjpVdGlsaXRpZXM6OmNvbXBsZXRlVVJMKCZzdGF0ZSwgcmVsYXRpdmVVUkwpOwogfQog
CiBKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBK
U1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA5OTE2NmNkOTE1N2NiMDlkODA2NWExMmRkN2M2
NDc3Zjc0Njc3NDMzLi5kOTgwYWIzM2Q2ZWUwM2M4OWRjZThiYjU4NzQyODY1NWY3NGUzZjM1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI3LDYgKzI3LDgg
QEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpT
QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC0xODYsMTIgKzE4OCw4IEBA
IHZvaWQgSlNMb2NhdGlvbjo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKCiAKIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2Vk
KEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9j
a0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFtZSogbGV4aWNh
bEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFsZXhpY2FsRnJhbWUpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCBh
bGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgZnJhbWUpKQotICAgICAgICBmcmFtZS0+cmVkaXJl
Y3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGxleGlj
YWxGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tC
YWNrRm9yd2FyZExpc3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICBKU0JpbmRpbmdT
dGF0ZSBzdGF0ZSA9IEpTQmluZGluZ1N0YXRlOjpjcmVhdGUoZXhlYyk7CisgICAgSlNCaW5kaW5n
OjpVdGlsaXRpZXM6Om5hdmlnYXRlSWZBbGxvd2VkKCZzdGF0ZSwgZnJhbWUsIHVybCwgbG9ja0hp
c3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiB2b2lkIEpTTG9jYXRpb246OnNldEhy
ZWYoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMzAzLDE4ICszMDEsOCBAQCB2
b2lkIEpTTG9jYXRpb246OnNldEhhc2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQog
CiBKU1ZhbHVlIEpTTG9jYXRpb246OnJlcGxhY2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEZy
YW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVVUkwoZXhlYywg
dXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7Ci0gICAg
aWYgKHVybC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBp
ZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihleGVjLCBmcmFtZSkpCi0gICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZXhlYywgZnJhbWUsIHVybCwg
dHJ1ZSwgdHJ1ZSk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUgPSBKU0JpbmRpbmdTdGF0ZTo6
Y3JlYXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6TG9jYXRpb246OnJlcGxhY2UoJnN0YXRlLCBp
bXBsKCksIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkp
OwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3
NTg1MjdjNTI5MDQ1Mzk3MTNmMjBlYmJiNjNhMzMyZjVhMTZhMmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcApA
QCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0
YXRlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCitGcmFtZSog
U3RhdGU8SlNCaW5kaW5nPjo6Z2V0QWN0aXZlRnJhbWUoKQoreworICAgIHJldHVybiBhc0pTRE9N
V2luZG93KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOwor
fQorCitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0Rmlyc3RGcmFtZSgpCit7CisgICAgcmV0
dXJuIGFzSlNET01XaW5kb3cobV9leGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCkt
PmZyYW1lKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6aXNTYWZlU2NyaXB0KEZyYW1lKiBm
cmFtZSkKK3sKKyAgICByZXR1cm4gYWxsb3dzQWNjZXNzRnJvbUZyYW1lKG1fZXhlYywgZnJhbWUp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQyM2Y3N2Nm
ZjUxZjEzZTZjNmY3ODdhNDhmN2FmOGI5M2ZkMDMzNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApAQCAtMCwwICsx
LDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBKU0JpbmRpbmdTdGF0ZV9oCisjZGVmaW5lIEpTQmluZGluZ1N0YXRlX2gK
KworI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCit0ZW1wbGF0ZSA8Pgor
Y2xhc3MgU3RhdGU8SlNCaW5kaW5nPiA6IHB1YmxpYyBTdGF0ZTxHZW5lcmljQmluZGluZz4gewor
cHVibGljOgorICAgIHN0YXRpYyBTdGF0ZSBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCisg
ICAgeworICAgICAgICByZXR1cm4gU3RhdGUoZXhlYyk7CisgICAgfQorCisgICAgdmlydHVhbCB+
U3RhdGUoKSB7fQorCisgICAgRnJhbWUqIGdldEFjdGl2ZUZyYW1lKCk7CisgICAgRnJhbWUqIGdl
dEZpcnN0RnJhbWUoKTsKKworICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisKKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIGluIEJpbmRpbmdTZWN1cml0eQorICAg
IGJvb2wgaXNTYWZlU2NyaXB0KEZyYW1lKik7CisKK3ByaXZhdGU6CisgICAgSlNDOjpFeGVjU3Rh
dGUqIG1fZXhlYzsKKworICAgIGV4cGxpY2l0IFN0YXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjKSA6
IG1fZXhlYyhleGVjKSB7fQorfTsKKwordHlwZWRlZiBTdGF0ZTxKU0JpbmRpbmc+IEpTQmluZGlu
Z1N0YXRlOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU0JpbmRpbmdT
dGF0ZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCAwODdjMTI4M2NjNzQ5YjY4ODg3MTMz
MWZiMjhjYTk4NjlkNGMxMzE5Li4xNGJjYjI5N2NlYTRhYTBjZTE1Yjg5MzBmMzc0ZTY5NTJjZWMw
OTI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTMxLDcgKzMxLDkgQEAKICNpZm5kZWYg
VjhCaW5kaW5nX2gKICNkZWZpbmUgVjhCaW5kaW5nX2gKIAorI2luY2x1ZGUgIkJpbmRpbmdMb2Nh
dGlvbi5oIgogI2luY2x1ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorI2luY2x1ZGUgIkJpbmRpbmdV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKQEAgLTUwLDE2ICs1MiwxOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01XaW5kb3cg
RE9NV2luZG93OworICAgICAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxWOEJpbmRpbmc+IExv
Y2F0aW9uOworICAgICAgICB0eXBlZGVmIEJpbmRpbmdVdGlsaXRpZXM8VjhCaW5kaW5nPiBVdGls
aXRpZXM7CiAKICAgICAgICAgc3RhdGljIFZhbHVlIGVtcHR5U2NyaXB0VmFsdWUoKSB7IHJldHVy
biB2ODo6TG9jYWw8djg6OlZhbHVlPigpOyB9CiAgICAgfTsKICAgICB0eXBlZGVmIEJpbmRpbmdT
ZWN1cml0eTxWOEJpbmRpbmc+IFY4QmluZGluZ1NlY3VyaXR5OwotICAgIAorCiAgICAgZW51bSBF
eHRlcm5hbE1vZGUgewogICAgICAgICBFeHRlcm5hbGl6ZSwKICAgICAgICAgRG9Ob3RFeHRlcm5h
bGl6ZQogICAgIH07Ci0gICAgCisKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU3RyaW5nVHlwZT4K
ICAgICBTdHJpbmdUeXBlIHY4U3RyaW5nVG9XZWJDb3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlN0
cmluZz4gdjhTdHJpbmcsIEV4dGVybmFsTW9kZSBleHRlcm5hbCk7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5jcHAKaW5kZXggMmU1Y2Y4YjBmNTI3NmY3NzYzZmYzNjljNGU0MDU3MjM5ZmRh
MGRiMC4uZjc0YTZlY2Q5MjM3ZjliYzdiNWJiMjhkNjUzMjIwY2JlZmMxMmVmZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFV0aWxpdGllcy5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRl
ICJWOEJpbmRpbmcuaCIKLSNpbmNsdWRlICJWOEJpbmRpbmdET01XaW5kb3cuaCIgLy8gRklYTUU6
IHJlbW92ZSB3aGVuIGNvbXBsZXRlVVJMIG1vdmVzCiAjaW5jbHVkZSAiVjhCaW5kaW5nU3RhdGUu
aCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgpAQCAt
MTEyLDE2ICsxMTEsMTIgQEAgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb24oRnJhbWUqIGZyYW1l
KQogCiBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCiB7Ci0gICAg
cmV0dXJuIFY4QmluZGluZ0RPTVdpbmRvdzo6Y29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9u
bHkoKSwgcmVsYXRpdmVVUkwpOworICAgIHJldHVybiBWOEJpbmRpbmc6OlV0aWxpdGllczo6Y29t
cGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgcmVsYXRpdmVVUkwpOwogfQogCiB2b2lk
IG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxv
Y2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0gICAgRnJhbWUqIGNhbGxp
bmdPckVudGVyZWQgPSBjYWxsaW5nT3JFbnRlcmVkRnJhbWUoKTsKLSAgICBpZiAoIWNhbGxpbmdP
ckVudGVyZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0
KHVybCkgfHwgU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKSkKLSAgICAgICAg
ZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0
cmluZygpLCBjYWxsaW5nT3JFbnRlcmVkLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBs
b2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
OworICAgIHJldHVybiBWOEJpbmRpbmc6OlV0aWxpdGllczo6bmF2aWdhdGVJZkFsbG93ZWQoVjhC
aW5kaW5nU3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9y
d2FyZExpc3QpOwogfQogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9j
YXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1
c3RvbS5jcHAKaW5kZXggYWMzMDVjOTdmMDA5YmMwZGFiZjFiNGE3ZGIwZWFhMmViYzI5ODZiNS4u
NjA2OGFhMjFhMjYxZWY5NGJjYzFmMmRhMGFmM2VlMDQ3NDRiOGVjZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI5MiwxOSArMjky
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUygiRE9NLkxvY2F0aW9uLnJl
cGxhY2UiKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVy
KCk7CiAgICAgTG9jYXRpb24qIGltcCA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGhvbGRlcik7Ci0K
LSAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVVUkwo
dG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKLSAgICBpZiAodXJsLmlzTnVsbCgpKQotICAgICAg
ICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRp
b24oZnJhbWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdh
dGVJZkFsbG93ZWQoZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgVjhCaW5kaW5nOjpMb2Nh
dGlvbjo6cmVwbGFjZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAsIHRvV2ViQ29yZVN0cmlu
ZyhhcmdzWzBdKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIApAQCAtMzc4LDQg
KzM2NiwzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KExvY2F0aW9uKiBpbXBsKQogfQog
CiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCmluZGV4IGNjZGQ3YzhjZTcyNTZh
NjRlMWE1N2ExNTVmYjZlNzA1MjA2MzgxODYuLmI4NzY0MDU4YzgxMDFlOTE1MjZlODI1YjA5OTc2
OTFjYmQxMDY0YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRp
b24vVjhCaW5kaW5nU3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6
YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCkBAIC04NCw0ICs4NCw5IEBAIGJvb2wgU3RhdGU8VjhC
aW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKICAgICByZXR1cm4gU2NyaXB0Q29udHJv
bGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKK2Jvb2wgU3RhdGU8VjhCaW5kaW5n
Pjo6aXNTYWZlU2NyaXB0KEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJv
bGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdT
dGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0
ZS5oCmluZGV4IGJhYmEwYzYzYzA4OGZmNzE0ODU4ZDRkMDZiOWRmZmNiYzA0MWE3MmMuLmNhNTFi
MTA0OTZiNDdiM2M3ZTU3N2FhOTAxMjRhMzg4MzA0NjkyMmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgKQEAgLTYwLDYgKzYw
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIAorICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzaGFyZWQgaW4gQmluZGluZ1NlY3VyaXR5CisgICAg
Ym9vbCBpc1NhZmVTY3JpcHQoRnJhbWUqKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdGF0
ZSgpIHt9CiAgICAgflN0YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66106</attachid>
            <date>2010-08-31 14:24:57 -0700</date>
            <delta_ts>2010-09-01 00:10:54 -0700</delta_ts>
            <desc>Patch, Qt makefiles.</desc>
            <filename>bug-44891-20100901062454.patch</filename>
            <type>text/plain</type>
            <size>41637</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmQ2YmMzMzExOGY2YjQxZWQ2ZjJlYzUwZDY5MzIzZGYzZmVmZjkwYy4uNTM3ZGMyNzMxYzI5OTg4
MmVhMGJlMWJlZmIzNjQyY2FiZWZkZmI3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOC0zMCAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OnJlcGxhY2UpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6OjpuYXZpZ2F0ZUlmQWxsb3dl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0R5bmFtaWNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJ
ZkFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6OjpnZXRGaXJzdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNTYWZlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTMxICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGNo
cm9taXVtIGNvbXBpbGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDEzMTczNTdlMzcyZmJiNzdhNGQ5NTI0Y2JlOTgyYjg5MTE3
Nzc3NGEuLjUxNjQ1ODk2Nzc2Y2Q2ZTIzMzRiODMwM2NhNWI4MmQxOWU2N2Q3MDQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01
MTIsOSArNTEyLDExIEBACiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01D
YWxsYmFjay5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2Fs
bGJhY2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93
LmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCcsCkBAIC01MzEsNiArNTMzLDcg
QEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNCaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNDREFUQVNlY3Rpb25DdXN0b20uY3BwJywKQEAgLTcxMCw2ICs3MTMsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERhdGEuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCcsCisgICAgICAgICAgICAnYmluZGluZ3Mv
anMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwJywKKyAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0NoaWxk
VGhyZWFkRE9NRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZTdkYjM4ZWIyMzUyODc3MWZlZGE4MzdjOThiNWI4MTE2
MGY5NDBiOS4uZjdmMmQ2OTg3NjIzZTNhY2IwYWQ1NDVmZWZkMjA3OWMzMWM0NGQ4ZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
ODQsNiArMTg0LDcgQEAgV0VCQ09SRV9JTkNMVURFUEFUSCA9IFwKICAgICAkJFBXRC9iaW5kaW5n
cyBcCiAgICAgJCRQV0QvYmluZGluZ3MvZ2VuZXJpYyBcCiAgICAgJCRQV0QvYmluZGluZ3MvanMg
XAorICAgICQkUFdEL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uIFwKICAgICAkJFBXRC9icmlk
Z2UgXAogICAgICQkUFdEL2JyaWRnZS9jIFwKICAgICAkJFBXRC9icmlkZ2UvanNjIFwKQEAgLTM5
Miw2ICszOTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5j
cHAgXAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAgXAogICAgIGJpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgXAorICAgIGJpbmRpbmdzL2pzL3NwZWNpYWxp
emF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBcCiAgICAgYmluZGluZ3MvU2NyaXB0Q29udHJvbGxl
ckJhc2UuY3BwIFwKICAgICBicmlkZ2UvSWRlbnRpZmllclJlcC5jcHAgXAogICAgIGJyaWRnZS9O
UF9qc29iamVjdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MWNhNzcyZGQ2YzY5MDZkYTk4OGQwYTJmN2VjOWE0YTViZDI5ZTdlMS4uOTE3NTYzMzU4ZTIwMTdk
ZTQxYWZmMGNlOTcwOTdiM2Y1Y2MwMDk5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC00MTg2Nyw2ICs0MTg2NywzMCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGdlbmVyaWNcQWN0aXZlRE9NQ2FsbGJhY2suaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxl
Pg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJp
bmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1NlY3VyaXR5LmgiDQor
CQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5l
cmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdVdGls
aXRpZXMuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVy
aWMiDQpAQCAtNDIyMjQsNiArNDIyNDgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZy5oIg0K
KwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTQmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmls
ZT4NCkBAIC00OTUxOSw2ICs0OTU0Nyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXFdvcmtlclNjcmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
KwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXph
dGlvblxKU0JpbmRpbmdTdGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIN
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wN
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5oIg0KKwkJ
CQkJPg0KKwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0
ZXINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc2OTFm
ZmY1ODIwNzNiOGZmODdkNjM5NzhlYmQ0OGE2NjZlY2UxYTAuLjBhOWU2MmU3NjZiYjg3OTUwMTVm
MGEwNzliYTg1ZmRiY2Y5ODNlZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yODM3LDYgKzI4MzcsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5
MjhFIC8qIEtleUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25l
Lm1tICovOyB9OwogCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1
MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3
MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87
IH07CisJCUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3
ODVCMyAvKiBKU0JpbmRpbmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8q
IEpTQmluZGluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAg
Ki87IH07CisJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJD
NDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5n
TG9jYXRpb24uaCAqLzsgfTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdT
ZWN1cml0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTYyMkE4RjUxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlB
NjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyog
QmluZGluZ1NlY3VyaXR5QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMg
LyogQmluZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMu
aCAqLzsgfTsKKwkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEy
MkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJB
MTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlv
bnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
NzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQw
MEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZH
QmxvY2suY3BwICovOyB9OwpAQCAtODcyMCw2ICs4NzI5LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUx
QTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RlcFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0
ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEtleUV2ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8q
IEtleUV2ZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBLZXlFdmVudENvY29hLm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmlu
ZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpT
QmluZGluZ1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
QmluZGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjEx
MjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5l
cmljL0JpbmRpbmdMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIy
QThGNTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5k
aW5nU2VjdXJpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5l
cmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGgg
PSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0g
Z2VuZXJpYy9CaW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9H
ZW5lcmljQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBC
MkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcx
ODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1M
TWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDI2LDYgKzE0NDQ0LDE1IEBA
CiAJCQluYW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlB
NjIyQThFRjEyMkM0NDQ1MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVC
MyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIz
IC8qIEpTQmluZGluZ1N0YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9u
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAw
N0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMTYwODcsNiArMTYxMTQsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMx
REY4MTFDRjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVE
MzFERjkxMUNGNjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYy
MkE4RjQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJB
OEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThG
NjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYy
MkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlB
NjIyQThGODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2
MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBnZW5lcmljOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTI2LDYg
KzE2MTU5LDcgQEAKIAkJCQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2Jq
ZWN0cyAqLywKIAkJCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICov
LAogCQkJCUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4
RUYxMjJDNDQ0NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3
REY3NjMwMDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4
OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIz
MDYwQTMwMEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTM5LDYg
KzE2MTczLDcgQEAKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0
aWxpdGllcy5oICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0
Q2FsbEZyYW1lLmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNj
cmlwdENhbGxGcmFtZS5oICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0Jp
bmRpbmcuaCAqLywKIAkJCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBw
ZXJTZXQuY3BwICovLAogCQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3Jh
cHBlclNldC5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRp
bmcuY3BwICovLApAQCAtMjA0NTAsNiArMjA0ODUsMTMgQEAKIAkJCQkyRURGMzY5RjEyMkM5NEM4
MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVERjM3QzQx
MjJDOTVDQTAwMkY3RDRFIC8qIEpTRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkVERjM3Q0ExMjJDOTVGMjAwMkY3RDRFIC8qIEpTRmlsZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkExMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdM
b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkQxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJB
OEZFMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjI5MTMsNiArMjI5NTUsOCBAQAogCQkJCTJFREYzNjlDMTIyQzk0QjQwMDJG
N0Q0RSAvKiBGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRURGMzdDNjEy
MkM5NURGMDAyRjdENEUgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJFREYzN0M5MTIyQzk1RjIwMDJGN0Q0RSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE2MjJBOEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQmluZGluZ0RPTVdpbmRvdy5oCmluZGV4IDBjNDUwYTVkN2FmNTg1YmE1NTdhYjc5NmE4ZTYw
MTJlOTNiNDY3ODYuLmZiYWVjNDQ4ZWRhOTA4NGEzYjYzYTFmOWVhMjhhYzQxYTFlZTY4MmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtNjUsOSAr
NjUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiByYXdGZWF0dXJlcyk7CiAKLSAgICAvLyBGSVhNRTogVGhl
cmUgc2hvdWxkIGJlIGEgcGxhY2UgZm9yIGdlbmVyaWMgYmluZGluZyB1dGlsaXRpZXMuCi0gICAg
c3RhdGljIEtVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qLCBjb25zdCBTdHJpbmcmIHJl
bGF0aXZlVVJMKTsKLQogcHJpdmF0ZToKICAgICAvLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBv
ZmZzZXQsIGZyb20gdGhlIHBhcmVudCBjb250ZW50IGFyZWEsCiAgICAgLy8gYXJvdW5kIG5ld2x5
IG9wZW5lZCBwb3B1cHMgdGhhdCBkb24ndCBzcGVjaWZ5IGEgbG9jYXRpb24uCkBAIC0xMjEsNyAr
MTE4LDcgQEAgRnJhbWUqIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNyZWF0ZVdpbmRvdyhT
dGF0ZTxCaW5kaW5nPiogc3RhdGUsCiAKICAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVy
bCkgfHwgQmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjpjYW5BY2Nlc3NGcmFtZShzdGF0ZSwgbmV3
RnJhbWUsIHRydWUpKSB7CiAgICAgICAgIEtVUkwgY29tcGxldGVkVXJsID0KLSAgICAgICAgICAg
IHVybC5pc0VtcHR5KCkgPyBLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpIDogY29tcGxldGVVUkwo
c3RhdGUsIHVybCk7CisgICAgICAgICAgICB1cmwuaXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxT
dHJpbmcsICIiKSA6IEJpbmRpbmc6OlV0aWxpdGllczo6Y29tcGxldGVVUkwoc3RhdGUsIHVybCk7
CiAgICAgICAgIGJvb2wgdXNlckdlc3R1cmUgPSBzdGF0ZS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCk7CiAKICAgICAgICAgaWYgKGNyZWF0ZWQpCkBAIC0xODUsNyArMTgyLDcgQEAgV2ViQ29yZTo6
RE9NV2luZG93KiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpvcGVuKFN0YXRlPEJpbmRpbmc+
KiBzdGF0ZSwKIAogICAgICAgICBTdHJpbmcgY29tcGxldGVkVXJsOwogICAgICAgICBpZiAoIXVy
bFN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb21wbGV0ZWRVcmwgPSBjb21wbGV0ZVVS
TChzdGF0ZSwgdXJsU3RyaW5nKTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVybCA9IEJpbmRpbmc6
OlV0aWxpdGllczo6Y29tcGxldGVVUkwoc3RhdGUsIHVybFN0cmluZyk7CiAKICAgICAgICAgaWYg
KCFjb21wbGV0ZWRVcmwuaXNFbXB0eSgpCiAgICAgICAgICAgICAmJiAoIXByb3RvY29sSXNKYXZh
U2NyaXB0KGNvbXBsZXRlZFVybCkKQEAgLTI2OCwxOCArMjY1LDYgQEAgV2ViQ29yZTo6RE9NV2lu
ZG93KiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpvcGVuKFN0YXRlPEJpbmRpbmc+KiBzdGF0
ZSwKICAgICByZXR1cm4gZnJhbWUtPmRvbVdpbmRvdygpOwogfQogCi10ZW1wbGF0ZSA8Y2xhc3Mg
QmluZGluZz4KLUtVUkwgQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6Y29tcGxldGVVUkwoU3Rh
dGU8QmluZGluZz4qIHN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQotewotICAgIC8vIEZvciBoaXN0b3Jp
Y2FsIHJlYXNvbnMsIHdlIG5lZWQgdG8gY29tcGxldGUgdGhlIFVSTCB1c2luZyB0aGUKLSAgICAv
LyBkeW5hbWljIGZyYW1lLgotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRlLT5nZXRGaXJzdEZyYW1l
KCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKLSAgICByZXR1cm4g
ZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEJpbmRpbmdET01XaW5kb3dfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5YjQyMTc5NjIz
Mjg1OGU4MTBmYjkzYWVlMGM0NWZmYTBjMGI1MDcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmgKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQmluZGluZ0xvY2F0aW9uX2gKKyNkZWZpbmUgQmluZGluZ0xvY2F0aW9uX2gKKworI2luY2x1
ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisjaW5j
bHVkZSAiTG9jYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8Y2xh
c3MgQmluZGluZz4KK2NsYXNzIEJpbmRpbmdMb2NhdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IHZvaWQgcmVwbGFjZShTdGF0ZTxCaW5kaW5nPiosIExvY2F0aW9uKiwgY29uc3QgU3RyaW5nJiB1
cmxTcGVjKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5nTG9j
YXRpb248QmluZGluZz46OnJlcGxhY2UoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBMb2NhdGlvbiog
bG9jYXRpb24sIGNvbnN0IFN0cmluZyYgdXJsU3BlYykKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBs
b2NhdGlvbi0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAg
ICBLVVJMIHVybCA9IEJpbmRpbmc6OlV0aWxpdGllczo6Y29tcGxldGVVUkwoc3RhdGUsIHVybFNw
ZWMpOworICAgIGlmICh1cmwuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
QmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjpzaG91bGRBbGxvd05hdmlnYXRpb24oc3RhdGUsIGZy
YW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQmluZGluZzo6VXRpbGl0aWVzOjpuYXZpZ2F0
ZUlmQWxsb3dlZChzdGF0ZSwgZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJpbmRpbmdMb2NhdGlvbl9oCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWJlYjA2NDNm
MTRhYThkNTVhZDc1YmUxNzkyODk4Y2ZjYjVmNjZjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdVdGlsaXRpZXMuaApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBCaW5kaW5nVXRpbGl0aWVzX2gKKyNkZWZpbmUgQmluZGluZ1V0aWxpdGllc19oCisKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiR2Vu
ZXJpY0JpbmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZSA8Y2xhc3Mg
QmluZGluZz4KK2NsYXNzIEJpbmRpbmdVdGlsaXRpZXMgeworcHVibGljOgorICAgIHN0YXRpYyBL
VVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVS
TCk7CisgICAgc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoU3RhdGU8QmluZGluZz4qLCBG
cmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2Fy
ZExpc3QpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitLVVJMIEJpbmRpbmdVdGls
aXRpZXM8QmluZGluZz46OmNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWxh
dGl2ZVVSTCkKK3sKKyAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNv
bXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCisgICAgLy8gZHluYW1pYyBmcmFtZS4KKyAgICBGcmFt
ZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAg
ICAgIHJldHVybiBLVVJMKCk7CisgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVV
UkwocmVsYXRpdmVVUkwpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmlu
ZGluZ1V0aWxpdGllczxCaW5kaW5nPjo6bmF2aWdhdGVJZkFsbG93ZWQoU3RhdGU8QmluZGluZz4q
IHN0YXRlLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwg
Ym9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQoreworICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IHN0
YXRlLT5nZXRBY3RpdmVGcmFtZSgpOworICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwgc3RhdGUtPmlzU2Fm
ZVNjcmlwdChmcmFtZSkpCisgICAgICAgIGZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hl
ZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgYWN0aXZlRnJhbWUtPmxvYWRlcigpLT5v
dXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBzdGF0
ZS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBCaW5kaW5nVXRpbGl0aWVzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0ODIwYWM3NTk2ZmNhZWE5OTBmM2JjNmNmMTEwYTU2YzJiMjhhN2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCkBAIC0wLDAgKzEs
NTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIEpTQmluZGluZ19oCisjZGVmaW5lIEpTQmluZGluZ19oCisKKyNpbmNsdWRl
ICJCaW5kaW5nTG9jYXRpb24uaCIKKyNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNs
dWRlICJCaW5kaW5nVXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gSW5z
dGFudGlhdGUgYmluZGluZyB0ZW1wbGF0ZSBjbGFzc2VzIGZvciBKU0MuCitjbGFzcyBKU0JpbmRp
bmcgeworcHVibGljOgorICAgIHR5cGVkZWYgQmluZGluZ0xvY2F0aW9uPEpTQmluZGluZz4gTG9j
YXRpb247CisgICAgdHlwZWRlZiBCaW5kaW5nVXRpbGl0aWVzPEpTQmluZGluZz4gVXRpbGl0aWVz
OworfTsKKwordHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8SlNCaW5kaW5nPiBKU0JpbmRpbmdTZWN1
cml0eTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNCaW5kaW5nX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5
NzE4YzE3NDNiNjNjYzI3ZTAzZWM1MjljMzU4MWM4YjcxLi42ZTFjYzFlMjNiYTFhZjgzNGNmMzc5
ZTMzYmE1YmNmZWI5M2FiZmU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmNwcCIK
ICNpbmNsdWRlICJKU0F0dHJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9Db25zdHJ1Y3Rv
ci5jcHAiCisjaW5jbHVkZSAiSlNCaW5kaW5nU3RhdGUuY3BwIgogI2luY2x1ZGUgIkpTQ0RBVEFT
ZWN0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwCmluZGV4IDk2Mzk0ZWI3NWJkYmIxMmZlNDA3ZjAzMjAyMmRiZDU3Y2M4NjdhYTMuLmFhMGNj
MDY5MTM2ZTc4ODVlZWU3ODJhZjNmYTE1YTgwOWRlODAzZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAKQEAgLTM4LDExICszOCwxNCBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRl
LmgiCiAjaW5jbHVkZSAiSlNET01Db3JlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XaW5k
b3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0RlYnVnV3JhcHBlclNldC5oIgogI2luY2x1ZGUgIkpT
RXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU0V4Y2VwdGlvbkJhc2UuaCIKKyNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRl
ICJKU1JhbmdlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
bi5oIgpAQCAtNjM5LDggKzY0Miw4IEBAIGJvb2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEV4ZWNT
dGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBTdHJpbmcmIG1lc3NhZ2UpCiAKIGJvb2wgc2hvdWxk
QWxsb3dOYXZpZ2F0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lKQogewotICAgIEZy
YW1lKiBsZXhpY2FsRnJhbWUgPSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICByZXR1cm4gbGV4
aWNhbEZyYW1lICYmIGxleGljYWxGcmFtZS0+bG9hZGVyKCktPnNob3VsZEFsbG93TmF2aWdhdGlv
bihmcmFtZSk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUgPSBKU0JpbmRpbmdTdGF0ZTo6Y3Jl
YXRlKGV4ZWMpOworICAgIHJldHVybiBKU0JpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dOYXZp
Z2F0aW9uKCZzdGF0ZSwgZnJhbWUpOwogfQogCiBib29sIGFsbG93U2V0dGluZ1NyY1RvSmF2YXNj
cmlwdFVSTChFeGVjU3RhdGUqIGV4ZWMsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSwyNiArNjc0LDIzIEBAIHZvaWQgcHJp
bnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIAogRnJhbWUqIHRvTGV4aWNhbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1
cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZy
YW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlOjpjcmVhdGUoZXhlYykuZ2V0QWN0aXZl
RnJhbWUoKTsKIH0KIAogRnJhbWUqIHRvRHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsK
LSAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5p
bXBsKCktPmZyYW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlOjpjcmVhdGUoZXhlYyku
Z2V0Rmlyc3RGcmFtZSgpOwogfQogCiBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiB7Ci0g
ICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworICAg
IHJldHVybiBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3Vy
cmVudFN0YXRlKCkpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogfQogCiBLVVJMIGNvbXBsZXRl
VVJMKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICAv
LyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNp
bmcgdGhlIGR5bmFtaWMgZnJhbWUuCi0gICAgRnJhbWUqIGZyYW1lID0gdG9EeW5hbWljRnJhbWUo
ZXhlYyk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKLSAgICByZXR1
cm4gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7CisgICAgSlNCaW5k
aW5nU3RhdGUgc3RhdGUgPSBKU0JpbmRpbmdTdGF0ZTo6Y3JlYXRlKGV4ZWMpOworICAgIHJldHVy
biBKU0JpbmRpbmc6OlV0aWxpdGllczo6Y29tcGxldGVVUkwoJnN0YXRlLCByZWxhdGl2ZVVSTCk7
CiB9CiAKIEpTVmFsdWUgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk5MTY2Y2Q5MTU3Y2IwOWQ4MDY1YTEy
ZGQ3YzY0NzdmNzQ2Nzc0MzMuLmQ5ODBhYjMzZDZlZTAzYzg5ZGNlOGJiNTg3NDI4NjU1Zjc0ZTNm
MzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjcsNiAr
MjcsOCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTE4NiwxMiArMTg4
LDggQEAgdm9pZCBKU0xvY2F0aW9uOjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEoKIAogc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFs
bG93ZWQoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9v
bCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIEZyYW1lKiBs
ZXhpY2FsRnJhbWUgPSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICBpZiAoIWxleGljYWxGcmFt
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwp
IHx8IGFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5y
ZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwg
bGV4aWNhbEZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIEpTQmlu
ZGluZ1N0YXRlIHN0YXRlID0gSlNCaW5kaW5nU3RhdGU6OmNyZWF0ZShleGVjKTsKKyAgICBKU0Jp
bmRpbmc6OlV0aWxpdGllczo6bmF2aWdhdGVJZkFsbG93ZWQoJnN0YXRlLCBmcmFtZSwgdXJsLCBs
b2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCk7CiB9CiAKIHZvaWQgSlNMb2NhdGlvbjo6
c2V0SHJlZihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCkBAIC0zMDMsMTggKzMwMSw4
IEBAIHZvaWQgSlNMb2NhdGlvbjo6c2V0SGFzaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFs
dWUpCiAKIEpTVmFsdWUgSlNMb2NhdGlvbjo6cmVwbGFjZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgS1VSTCB1cmwgPSBjb21wbGV0ZVVSTChl
eGVjLCB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsK
LSAgICBpZiAodXJsLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQot
ICAgIGlmICghc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKGV4ZWMsIGZyYW1lKSkKLSAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBuYXZpZ2F0ZUlmQWxsb3dlZChleGVjLCBmcmFtZSwg
dXJsLCB0cnVlLCB0cnVlKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZSA9IEpTQmluZGluZ1N0
YXRlOjpjcmVhdGUoZXhlYyk7CisgICAgSlNCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZSgmc3Rh
dGUsIGltcGwoKSwgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpKSk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzc1ODUyN2M1MjkwNDUzOTcxM2YyMGViYmI2M2EzMzJmNWExNmEyZAotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUu
Y3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNCaW5k
aW5nU3RhdGUuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK0Zy
YW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRBY3RpdmVGcmFtZSgpCit7CisgICAgcmV0dXJuIGFz
SlNET01XaW5kb3cobV9leGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1l
KCk7Cit9CisKK0ZyYW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRGaXJzdEZyYW1lKCkKK3sKKyAg
ICByZXR1cm4gYXNKU0RPTVdpbmRvdyhtX2V4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSktPmlt
cGwoKS0+ZnJhbWUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+Ojpwcm9jZXNzaW5nVXNl
ckdlc3R1cmUoKQoreworICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+Ojppc1NhZmVTY3JpcHQoRnJh
bWUqIGZyYW1lKQoreworICAgIHJldHVybiBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUobV9leGVjLCBm
cmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDIz
Zjc3Y2ZmNTFmMTNlNmM2Zjc4N2E0OGY3YWY4YjkzZmQwMzM2Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oCkBAIC0w
LDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEpTQmluZGluZ1N0YXRlX2gKKyNkZWZpbmUgSlNCaW5kaW5nU3Rh
dGVfaAorCisjaW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmcu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKKworfSAvLyBuYW1lc3Bh
Y2UgSlNDCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK3RlbXBsYXRl
IDw+CitjbGFzcyBTdGF0ZTxKU0JpbmRpbmc+IDogcHVibGljIFN0YXRlPEdlbmVyaWNCaW5kaW5n
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0YXRlIGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKKyAgICB7CisgICAgICAgIHJldHVybiBTdGF0ZShleGVjKTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIH5TdGF0ZSgpIHt9CisKKyAgICBGcmFtZSogZ2V0QWN0aXZlRnJhbWUoKTsKKyAgICBGcmFt
ZSogZ2V0Rmlyc3RGcmFtZSgpOworCisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsK
KworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzaGFyZWQgaW4gQmluZGluZ1NlY3VyaXR5
CisgICAgYm9vbCBpc1NhZmVTY3JpcHQoRnJhbWUqKTsKKworcHJpdmF0ZToKKyAgICBKU0M6OkV4
ZWNTdGF0ZSogbV9leGVjOworCisgICAgZXhwbGljaXQgU3RhdGUoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMpIDogbV9leGVjKGV4ZWMpIHt9Cit9OworCit0eXBlZGVmIFN0YXRlPEpTQmluZGluZz4gSlNC
aW5kaW5nU3RhdGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmlu
ZGluZ1N0YXRlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IDU4OTg5ZWQ4Y2Q1NDM4MDk1
NGE5NzQ1ZGUxZjcwODI1ZDk4ODlmYjQuLmUxZDJjNGQ1NGIyZjJlZDkzNGQxZTUzZTM4MDk2ZmE3
ZjA3ZDIwM2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMzEsNyArMzEsOSBAQAogI2lm
bmRlZiBWOEJpbmRpbmdfaAogI2RlZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQmluZGlu
Z0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCisjaW5jbHVkZSAiQmlu
ZGluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgpAQCAtNTAsMTYgKzUyLDE4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFZhbHVlOwogICAgICAgICB0eXBlZGVmIFY4QmluZGluZ0RPTVdp
bmRvdyBET01XaW5kb3c7CisgICAgICAgIHR5cGVkZWYgQmluZGluZ0xvY2F0aW9uPFY4QmluZGlu
Zz4gTG9jYXRpb247CisgICAgICAgIHR5cGVkZWYgQmluZGluZ1V0aWxpdGllczxWOEJpbmRpbmc+
IFV0aWxpdGllczsKIAogICAgICAgICBzdGF0aWMgVmFsdWUgZW1wdHlTY3JpcHRWYWx1ZSgpIHsg
cmV0dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7IH0KICAgICB9OwogICAgIHR5cGVkZWYgQmlu
ZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5kaW5nU2VjdXJpdHk7Ci0gICAgCisKICAgICBl
bnVtIEV4dGVybmFsTW9kZSB7CiAgICAgICAgIEV4dGVybmFsaXplLAogICAgICAgICBEb05vdEV4
dGVybmFsaXplCiAgICAgfTsKLSAgICAKKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdU
eXBlPgogICAgIFN0cmluZ1R5cGUgdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2
ODo6U3RyaW5nPiB2OFN0cmluZywgRXh0ZXJuYWxNb2RlIGV4dGVybmFsKTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4VXRpbGl0aWVzLmNwcAppbmRleCAyZTVjZjhiMGY1Mjc2Zjc3NjNmZjM2OWM0ZTQwNTcy
MzlmZGEwZGIwLi5mNzRhNmVjZDkyMzdmOWJjN2I1YmIyOGQ2NTMyMjBjYmVmYzEyZWZkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ0RPTVdpbmRvdy5oIiAvLyBG
SVhNRTogcmVtb3ZlIHdoZW4gY29tcGxldGVVUkwgbW92ZXMKICNpbmNsdWRlICJWOEJpbmRpbmdT
dGF0ZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0Lmgi
CkBAIC0xMTIsMTYgKzExMSwxMiBAQCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihGcmFtZSog
ZnJhbWUpCiAKIEtVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsK
LSAgICByZXR1cm4gVjhCaW5kaW5nRE9NV2luZG93Ojpjb21wbGV0ZVVSTChWOEJpbmRpbmdTdGF0
ZTo6T25seSgpLCByZWxhdGl2ZVVSTCk7CisgICAgcmV0dXJuIFY4QmluZGluZzo6VXRpbGl0aWVz
Ojpjb21wbGV0ZVVSTChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCByZWxhdGl2ZVVSTCk7CiB9CiAK
IHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJv
b2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFtZSog
Y2FsbGluZ09yRW50ZXJlZCA9IGNhbGxpbmdPckVudGVyZWRGcmFtZSgpOwotICAgIGlmICghY2Fs
bGluZ09yRW50ZXJlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghcHJvdG9jb2xJc0phdmFT
Y3JpcHQodXJsKSB8fCBTY3JpcHRDb250cm9sbGVyOjppc1NhZmVTY3JpcHQoZnJhbWUpKQotICAg
ICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1
cmwuc3RyaW5nKCksIGNhbGxpbmdPckVudGVyZWQtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVy
KCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKSk7CisgICAgcmV0dXJuIFY4QmluZGluZzo6VXRpbGl0aWVzOjpuYXZpZ2F0ZUlmQWxsb3dl
ZChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBmcmFtZSwgdXJsLCBsb2NrSGlzdG9yeSwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0
aW9uQ3VzdG9tLmNwcAppbmRleCBhYzMwNWM5N2YwMDliYzBkYWJmMWI0YTdkYjBlYWEyZWJjMjk4
NmI1Li42MDY4YWEyMWEyNjFlZjk0YmNjMWYyZGEwYWYzZWUwNDc0NGI4ZWNkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjkyLDE5
ICsyOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6cmVwbGFjZUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJET00uTG9jYXRp
b24ucmVwbGFjZSIpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gYXJncy5I
b2xkZXIoKTsKICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUoaG9sZGVy
KTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IGltcC0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgS1VSTCB1cmwgPSBjb21wbGV0
ZVVSTCh0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSkpOwotICAgIGlmICh1cmwuaXNOdWxsKCkpCi0g
ICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBpZiAoIXNob3VsZEFsbG93TmF2
aWdhdGlvbihmcmFtZSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBu
YXZpZ2F0ZUlmQWxsb3dlZChmcmFtZSwgdXJsLCB0cnVlLCB0cnVlKTsKKyAgICBWOEJpbmRpbmc6
OkxvY2F0aW9uOjpyZXBsYWNlKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcCwgdG9XZWJDb3Jl
U3RyaW5nKGFyZ3NbMF0pKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0z
NzgsNCArMzY2LDMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTG9jYXRpb24qIGltcGwp
CiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKaW5kZXggY2NkZDdjOGNl
NzI1NmE2NGUxYTU3YTE1NWZiNmU3MDUyMDYzODE4Ni4uYjg3NjQwNThjODEwMWU5MTUyNmU4MjVi
MDk5NzY5MWNiZDEwNjRiMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFs
aXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVj
aWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKQEAgLTg0LDQgKzg0LDkgQEAgYm9vbCBTdGF0
ZTxWOEJpbmRpbmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogICAgIHJldHVybiBTY3JpcHRD
b250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAorYm9vbCBTdGF0ZTxWOEJp
bmRpbmc+Ojppc1NhZmVTY3JpcHQoRnJhbWUqIGZyYW1lKQoreworICAgIHJldHVybiBTY3JpcHRD
b250cm9sbGVyOjppc1NhZmVTY3JpcHQoZnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4Qmlu
ZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGlu
Z1N0YXRlLmgKaW5kZXggYmFiYTBjNjNjMDg4ZmY3MTQ4NThkNGQwNmI5ZGZmY2JjMDQxYTcyYy4u
Y2E1MWIxMDQ5NmI0N2IzYzdlNTc3YWE5MDEyNGEzODgzMDQ2OTIyYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaApAQCAtNjAs
NiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwog
CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNoYXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkK
KyAgICBib29sIGlzU2FmZVNjcmlwdChGcmFtZSopOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IFN0YXRlKCkge30KICAgICB+U3RhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66172</attachid>
            <date>2010-09-01 00:11:00 -0700</date>
            <delta_ts>2010-09-01 13:24:20 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-44891-20100901161058.patch</filename>
            <type>text/plain</type>
            <size>42484</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmQ2YmMzMzExOGY2YjQxZWQ2ZjJlYzUwZDY5MzIzZGYzZmVmZjkwYy4uNTM3ZGMyNzMxYzI5OTg4
MmVhMGJlMWJlZmIzNjQyY2FiZWZkZmI3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOC0zMCAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OnJlcGxhY2UpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6OjpuYXZpZ2F0ZUlmQWxsb3dl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0R5bmFtaWNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJ
ZkFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6OjpnZXRGaXJzdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNTYWZlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA4LTMxICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGNo
cm9taXVtIGNvbXBpbGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDEzMTczNTdlMzcyZmJiNzdhNGQ5NTI0Y2JlOTgyYjg5MTE3
Nzc3NGEuLjdiZWYwNzYxNWIyYmM4NzA2OWU3M2E3NTgyYjIzNjE0MDkxZWYzYWQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01
MTIsNiArNTEyLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNh
bGxiYWNrLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxs
YmFjay5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cu
aCcsCisgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLApAQCAtNTMxLDYgKzUzMyw3IEBA
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyREN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
Q0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCcsCkBAIC03MTAsNiArNzEzLDggQEAKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9T
Y3JpcHRDb250cm9sbGVyQmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9DaGlsZFRo
cmVhZERPTURhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IGU3ZGIzOGViMjM1Mjg3NzFmZWRhODM3Yzk4YjViODExNjBm
OTQwYjkuLmY3ZjJkNjk4NzYyM2UzYWNiMGFkNTQ1ZmVmZDIwNzljMzFjNDRkOGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTg0
LDYgKzE4NCw3IEBAIFdFQkNPUkVfSU5DTFVERVBBVEggPSBcCiAgICAgJCRQV0QvYmluZGluZ3Mg
XAogICAgICQkUFdEL2JpbmRpbmdzL2dlbmVyaWMgXAogICAgICQkUFdEL2JpbmRpbmdzL2pzIFwK
KyAgICAkJFBXRC9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbiBcCiAgICAgJCRQV0QvYnJpZGdl
IFwKICAgICAkJFBXRC9icmlkZ2UvYyBcCiAgICAgJCRQV0QvYnJpZGdlL2pzYyBcCkBAIC0zOTIs
NiArMzkzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3Bw
IFwKICAgICBiaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKICAgICBiaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9zcGVjaWFsaXph
dGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAgXAogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJC
YXNlLmNwcCBcCiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwIFwKICAgICBicmlkZ2UvTlBf
anNvYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDFj
YTc3MmRkNmM2OTA2ZGE5ODhkMGEyZjdlYzlhNGE1YmQyOWU3ZTEuLjExYmJiNzE2MjVjOWY0NTQ4
M2UzODVkMGI0YTQ0NDRhZDgzOGQ5NWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtNDE4NjcsNiArNDE4NjcsMzAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xnZW5lcmljXEFjdGl2ZURPTUNhbGxiYWNrLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5k
aW5nRnJhbWUuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGdlbmVyaWNcQmluZGluZ1NlY3VyaXR5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5n
U2VjdXJpdHlCYXNlLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVyaWMiDQpA
QCAtNDIyMjQsNiArNDIyNDgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZy5oIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTQmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBA
IC00OTUxOSw2ICs0OTU0Nyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XFdvcmtlclNjcmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxK
U0JpbmRpbmdTdGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiIN
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wN
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
CT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
CS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5oIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc2OTFmZmY1ODIw
NzNiOGZmODdkNjM5NzhlYmQ0OGE2NjZlY2UxYTAuLjBhOWU2MmU3NjZiYjg3OTUwMTVmMGEwNzli
YTg1ZmRiY2Y5ODNlZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yODM3LDYgKzI4MzcsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5MjhFIC8q
IEtleUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tICov
OyB9OwogCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1MTUxQTcw
MEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1
Q0IgLyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87IH07CisJ
CUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAv
KiBKU0JpbmRpbmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmlu
ZGluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi87IH07
CisJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJDNDQ0NTAw
QTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRp
b24uaCAqLzsgfTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4
RjUxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlBNjIyQThG
QzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLzsg
fTsKKwkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEyMkM0NEE2
MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAw
QTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5
MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0Ug
LyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZE
MCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2su
Y3BwICovOyB9OwpAQCAtODcyMCw2ICs4NzI5LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUxQTcwMEIw
NDVDQiAvKiBTdGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rl
cFJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0ODVGRjEw
MDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEtleUV2ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2
ZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlF
dmVudENvY29hLm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGlu
Z1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmluZGlu
Z1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjExMjJDNDQ0
NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNTEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2Vj
dXJpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIy
QThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5l
cmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0gZ2VuZXJp
Yy9CaW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJB
OEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9HZW5lcmlj
QmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAx
MDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDI2LDYgKzE0NDQ0LDE1IEBACiAJCQlu
YW1lID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlBNjIyQThF
RjEyMkM0NDQ1MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBK
U0JpbmRpbmdTdGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpT
QmluZGluZ1N0YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9uOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgx
IC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtMTYwODcsNiArMTYxMTQsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMxREY4MTFD
RjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVEMzFERjkx
MUNGNjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYyMkE4RjQx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJBOEY1MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThGNjEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYyMkE4Rjcx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNjIyQThG
ODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2MjJBOEY5
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBnZW5lcmljOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTI2LDYgKzE2MTU5
LDcgQEAKIAkJCQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2JqZWN0cyAq
LywKIAkJCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICovLAogCQkJ
CUJDNEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4RUYxMjJD
NDQ0NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3REY3NjMw
MDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3
NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMw
MEZFQTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTM5LDYgKzE2MTcz
LDcgQEAKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGll
cy5oICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZy
YW1lLmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENh
bGxGcmFtZS5oICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcu
aCAqLywKIAkJCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQu
Y3BwICovLAogCQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNl
dC5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3Bw
ICovLApAQCAtMjA0NTAsNiArMjA0ODUsMTMgQEAKIAkJCQkyRURGMzY5RjEyMkM5NEM4MDAyRjdE
NEUgLyogRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVERjM3QzQxMjJDOTVD
QTAwMkY3RDRFIC8qIEpTRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVERjM3
Q0ExMjJDOTVGMjAwMkY3RDRFIC8qIEpTRmlsZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTYyMkE4RkExMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRp
bmdTZWN1cml0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIz
IC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZFMTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjI5MTMsNiArMjI5NTUsOCBAQAogCQkJCTJFREYzNjlDMTIyQzk0QjQwMDJGN0Q0RSAv
KiBGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRURGMzdDNjEyMkM5NURG
MDAyRjdENEUgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFREYz
N0M5MTIyQzk1RjIwMDJGN0Q0RSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE2MjJBOEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0RPTVdpbmRvdy5oCmluZGV4IDBjNDUwYTVkN2FmNTg1YmE1NTdhYjc5NmE4ZTYwMTJlOTNi
NDY3ODYuLmFmNjU4MzQzMzc4ZjQwNjRmNzVkYjBmNTg0ZDBhNzFmNTdhM2Q4ODMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtNjUsOSArNjUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiByYXdGZWF0dXJlcyk7CiAKLSAgICAvLyBGSVhNRTogVGhlcmUgc2hv
dWxkIGJlIGEgcGxhY2UgZm9yIGdlbmVyaWMgYmluZGluZyB1dGlsaXRpZXMuCi0gICAgc3RhdGlj
IEtVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZl
VVJMKTsKLQogcHJpdmF0ZToKICAgICAvLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBvZmZzZXQs
IGZyb20gdGhlIHBhcmVudCBjb250ZW50IGFyZWEsCiAgICAgLy8gYXJvdW5kIG5ld2x5IG9wZW5l
ZCBwb3B1cHMgdGhhdCBkb24ndCBzcGVjaWZ5IGEgbG9jYXRpb24uCkBAIC0xMjEsNyArMTE4LDcg
QEAgRnJhbWUqIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNyZWF0ZVdpbmRvdyhTdGF0ZTxC
aW5kaW5nPiogc3RhdGUsCiAKICAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwg
QmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjpjYW5BY2Nlc3NGcmFtZShzdGF0ZSwgbmV3RnJhbWUs
IHRydWUpKSB7CiAgICAgICAgIEtVUkwgY29tcGxldGVkVXJsID0KLSAgICAgICAgICAgIHVybC5p
c0VtcHR5KCkgPyBLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpIDogY29tcGxldGVVUkwoc3RhdGUs
IHVybCk7CisgICAgICAgICAgICB1cmwuaXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxTdHJpbmcs
ICIiKSA6IEJpbmRpbmc6OkZyYW1lOjpjb21wbGV0ZVVSTChzdGF0ZSwgdXJsKTsKICAgICAgICAg
Ym9vbCB1c2VyR2VzdHVyZSA9IHN0YXRlLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIAogICAg
ICAgICBpZiAoY3JlYXRlZCkKQEAgLTE4NSw3ICsxODIsNyBAQCBXZWJDb3JlOjpET01XaW5kb3cq
IEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46Om9wZW4oU3RhdGU8QmluZGluZz4qIHN0YXRlLAog
CiAgICAgICAgIFN0cmluZyBjb21wbGV0ZWRVcmw7CiAgICAgICAgIGlmICghdXJsU3RyaW5nLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIGNvbXBsZXRlZFVybCA9IGNvbXBsZXRlVVJMKHN0YXRlLCB1
cmxTdHJpbmcpOworICAgICAgICAgICAgY29tcGxldGVkVXJsID0gQmluZGluZzo6RnJhbWU6OmNv
bXBsZXRlVVJMKHN0YXRlLCB1cmxTdHJpbmcpOwogCiAgICAgICAgIGlmICghY29tcGxldGVkVXJs
LmlzRW1wdHkoKQogICAgICAgICAgICAgJiYgKCFwcm90b2NvbElzSmF2YVNjcmlwdChjb21wbGV0
ZWRVcmwpCkBAIC0yNjgsMTggKzI2NSw2IEBAIFdlYkNvcmU6OkRPTVdpbmRvdyogQmluZGluZ0RP
TVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCiAgICAgcmV0dXJu
IGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAotdGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Ci1LVVJM
IEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBz
dGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3
ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCi0gICAgLy8gZHluYW1pYyBmcmFt
ZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIo
KS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2luZG93X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9C
aW5kaW5nRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDc2ODFiMmVkZGQ5YmNmOTNjNGU3NjIzN2VlOWM0
MDBhYTJmNzdhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdGcmFtZS5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJpbmRpbmdGcmFtZV9oCisjZGVm
aW5lIEJpbmRpbmdGcmFtZV9oCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdlbmVy
aWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJp
bmRpbmc+CitjbGFzcyBCaW5kaW5nRnJhbWUgeworcHVibGljOgorICAgIGVudW0gTG9ja0hpc3Rv
cnkgeworICAgICAgICBVbmxvY2tlZEhpc3RvcnksCisgICAgICAgIExvY2tlZEhpc3RvcnkKKyAg
ICB9OworCisgICAgZW51bSBMb2NrQmFja0ZvcndhcmRMaXN0IHsKKyAgICAgICAgVW5sb2NrZWRC
YWNrRm9yd2FyZExpc3QsCisgICAgICAgIExvY2tlZEJhY2tGb3J3YXJkTGlzdAorICAgIH07CisK
KyAgICBzdGF0aWMgS1VSTCBjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiosIGNvbnN0IFN0cmlu
ZyYgcmVsYXRpdmVVUkwpOworCisgICAgc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoU3Rh
dGU8QmluZGluZz4qLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBMb2NrSGlzdG9yeSwgTG9ja0JhY2tG
b3J3YXJkTGlzdCk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK0tVUkwgQmluZGlu
Z0ZyYW1lPEJpbmRpbmc+Ojpjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsIGNvbnN0
IFN0cmluZyYgcmVsYXRpdmVVUkwpCit7CisgICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywg
d2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRoZQorICAgIC8vIGR5bmFtaWMgZnJh
bWUuCisgICAgRnJhbWUqIGZyYW1lID0gc3RhdGUtPmdldEZpcnN0RnJhbWUoKTsKKyAgICBpZiAo
IWZyYW1lKQorICAgICAgICByZXR1cm4gS1VSTCgpOworICAgIHJldHVybiBmcmFtZS0+bG9hZGVy
KCktPmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEJpbmRp
bmc+Cit2b2lkIEJpbmRpbmdGcmFtZTxCaW5kaW5nPjo6bmF2aWdhdGVJZkFsbG93ZWQoU3RhdGU8
QmluZGluZz4qIHN0YXRlLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgTG9ja0hpc3Rv
cnkgbG9ja0hpc3RvcnksIExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkK
K3sKKyAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0ZS0+Z2V0QWN0aXZlRnJhbWUoKTsKKyAg
ICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFwcm90b2NvbElz
SmF2YVNjcmlwdCh1cmwpIHx8IHN0YXRlLT5hbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZnJhbWUpKQor
ICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZSh1cmwuc3RyaW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigp
LCBsb2NrSGlzdG9yeSA9PSBMb2NrZWRIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0ID09IExv
Y2tlZEJhY2tGb3J3YXJkTGlzdCwgc3RhdGUtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0ZyYW1lX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBiL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTNk
ZGZmMjY5NGM2YTQ1ZWVmNWM1YWVlODYwOTE1NzY5NGFhOTFjCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEJpbmRpbmdMb2NhdGlvbl9oCisjZGVmaW5lIEJpbmRpbmdMb2NhdGlvbl9oCisK
KyNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5o
IgorI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxh
dGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nTG9jYXRpb24geworcHVibGljOgorICAg
IHN0YXRpYyB2b2lkIHJlcGxhY2UoU3RhdGU8QmluZGluZz4qLCBMb2NhdGlvbiosIGNvbnN0IFN0
cmluZyYgdXJsKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5n
TG9jYXRpb248QmluZGluZz46OnJlcGxhY2UoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBMb2NhdGlv
biogbG9jYXRpb24sIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIEZyYW1lKiBmcmFtZSA9IGxv
Y2F0aW9uLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAg
IEtVUkwgZnVsbFVSTCA9IEJpbmRpbmc6OkZyYW1lOjpjb21wbGV0ZVVSTChzdGF0ZSwgdXJsKTsK
KyAgICBpZiAoZnVsbFVSTC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFC
aW5kaW5nU2VjdXJpdHk8QmluZGluZz46OnNob3VsZEFsbG93TmF2aWdhdGlvbihzdGF0ZSwgZnJh
bWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBCaW5kaW5nOjpGcmFtZTo6bmF2aWdhdGVJZkFs
bG93ZWQoc3RhdGUsIGZyYW1lLCBmdWxsVVJMLCBCaW5kaW5nOjpGcmFtZTo6TG9ja2VkSGlzdG9y
eSwgQmluZGluZzo6RnJhbWU6OkxvY2tlZEJhY2tGb3J3YXJkTGlzdCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJpbmRpbmdMb2NhdGlvbl9oCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oCmluZGV4IGQwMzBiNDU4NDE3MGYwMDFmMjY2
NDNiYmQ4Y2RhZWRjYzVjMzUyOTQuLmE5MzM0MzI5MmRiNTUzNGJhYmJlNWQ4NWYxNzc5NjZjNmZk
ODU5NTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGlu
Zy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oCkBAIC0z
MSw2ICszMSw5IEBACiAjaWZuZGVmIEdlbmVyaWNCaW5kaW5nX2gKICNkZWZpbmUgR2VuZXJpY0Jp
bmRpbmdfaAogCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFVzZWQgdG8gaW5zdGFudGlhdGUgYmluZGluZyB0
ZW1wbGF0ZXMgZm9yIGFueSBtZXRob2RzIHNoYXJlZCBhbW9uZyBhbGwKQEAgLTM5LDcgKzQyLDgg
QEAgY2xhc3MgR2VuZXJpY0JpbmRpbmcge307CiAKIC8vIENsYXNzIHRvIHJlcHJlc2VudCBleGVj
dXRpb24gc3RhdGUgZm9yIGVhY2ggbGFuZ3VhZ2UgYmluZGluZy4KIHRlbXBsYXRlIDxjbGFzcyBU
PgotY2xhc3MgU3RhdGUge307CitjbGFzcyBTdGF0ZSB7Cit9OwogCiAvLyBDb21tb24gbm90aW9u
IG9mIGV4ZWN1dGlvbiBzdGF0ZSBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MuCiB0ZW1wbGF0ZSA8Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQyYzliZWFkZDZhNWU3NzFkMTg4Njk0
MjZmNWZlYjJiMjUwMWIwZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNCaW5kaW5nLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNCaW5kaW5nX2gKKyNkZWZpbmUg
SlNCaW5kaW5nX2gKKworI2luY2x1ZGUgIkJpbmRpbmdGcmFtZS5oIgorI2luY2x1ZGUgIkJpbmRp
bmdMb2NhdGlvbi5oIgorI2luY2x1ZGUgIkJpbmRpbmdTZWN1cml0eS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIEluc3RhbnRpYXRlIGJpbmRpbmcgdGVtcGxhdGUgY2xhc3NlcyBmb3Ig
SlNDLgorY2xhc3MgSlNCaW5kaW5nIHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIEJpbmRpbmdGcmFt
ZTxKU0JpbmRpbmc+IEZyYW1lOworICAgIHR5cGVkZWYgQmluZGluZ0xvY2F0aW9uPEpTQmluZGlu
Zz4gTG9jYXRpb247Cit9OworCit0eXBlZGVmIEJpbmRpbmdTZWN1cml0eTxKU0JpbmRpbmc+IEpT
QmluZGluZ1NlY3VyaXR5OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBK
U0JpbmRpbmdfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmlu
ZGV4IDkyMmU0NDk3MThjMTc0M2I2M2NjMjdlMDNlYzUyOWMzNTgxYzhiNzEuLjZlMWNjMWUyM2Jh
MWFmODM0Y2YzNzllMzNiYTViY2ZlYjkzYWJmZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHQ0NvbnRy
b2xsZXIuY3BwIgogI2luY2x1ZGUgIkpTQXR0ckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNBdWRp
b0NvbnN0cnVjdG9yLmNwcCIKKyNpbmNsdWRlICJKU0JpbmRpbmdTdGF0ZS5jcHAiCiAjaW5jbHVk
ZSAiSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlTGlzdEN1c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAKaW5kZXggOTYzOTRlYjc1YmRiYjEyZmU0MDdmMDMyMDIyZGJkNTdjYzg2
N2FhMy4uMmJlNWJhNDVkMzQ4NmFhOWM4YjFkYmEzMjU0ZDJiZDQxYTBkMjAwNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcApAQCAtMzgsMTEgKzM4LDE0IEBACiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhU
TUxTY3JpcHRFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNC
aW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJKU0RPTUNvcmVFeGNlcHRpb24uaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTRGVidWdXcmFwcGVyU2V0LmgiCiAj
aW5jbHVkZSAiSlNFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRXhjZXB0aW9uQmFzZS5o
IgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTTm9kZS5o
IgogI2luY2x1ZGUgIkpTUmFuZ2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uLmgiCkBAIC02MzksOCArNjQyLDggQEAgYm9vbCBhbGxvd3NBY2Nlc3NGcm9t
RnJhbWUoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogZnJhbWUsIFN0cmluZyYgbWVzc2FnZSkKIAog
Ym9vbCBzaG91bGRBbGxvd05hdmlnYXRpb24oRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogZnJhbWUp
CiB7Ci0gICAgRnJhbWUqIGxleGljYWxGcmFtZSA9IHRvTGV4aWNhbEZyYW1lKGV4ZWMpOwotICAg
IHJldHVybiBsZXhpY2FsRnJhbWUgJiYgbGV4aWNhbEZyYW1lLT5sb2FkZXIoKS0+c2hvdWxkQWxs
b3dOYXZpZ2F0aW9uKGZyYW1lKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZShleGVjKTsKKyAg
ICByZXR1cm4gSlNCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93TmF2aWdhdGlvbigmc3RhdGUs
IGZyYW1lKTsKIH0KIAogYm9vbCBhbGxvd1NldHRpbmdTcmNUb0phdmFzY3JpcHRVUkwoRXhlY1N0
YXRlKiBleGVjLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpCkBAIC02NzEsMjYgKzY3NCwyMyBAQCB2b2lkIHByaW50RXJyb3JNZXNzYWdl
Rm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAKIEZyYW1lKiB0
b0xleGljYWxGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIGFzSlNET01XaW5k
b3coZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOworICAgIHJl
dHVybiBKU0JpbmRpbmdTdGF0ZShleGVjKS5nZXRBY3RpdmVGcmFtZSgpOwogfQogCiBGcmFtZSog
dG9EeW5hbWljRnJhbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIHJldHVybiBhc0pTRE9NV2lu
ZG93KGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSktPmltcGwoKS0+ZnJhbWUoKTsKKyAgICBy
ZXR1cm4gSlNCaW5kaW5nU3RhdGUoZXhlYykuZ2V0Rmlyc3RGcmFtZSgpOwogfQogCiBib29sIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpCiB7Ci0gICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZShKU01haW5U
aHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpKS5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsK
IH0KIAogS1VSTCBjb21wbGV0ZVVSTChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgcmVs
YXRpdmVVUkwpCiB7Ci0gICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBj
b21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRoZSBkeW5hbWljIGZyYW1lLgotICAgIEZyYW1lKiBmcmFt
ZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVy
biBLVVJMKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRp
dmVVUkwpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOworICAgIHJldHVybiBKU0Jp
bmRpbmc6OkZyYW1lOjpjb21wbGV0ZVVSTCgmc3RhdGUsIHJlbGF0aXZlVVJMKTsKIH0KIAogSlNW
YWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNM
b2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggOTkxNjZjZDkxNTdjYjA5ZDgwNjVhMTJkZDdjNjQ3N2Y3
NDY3NzQzMy4uNTVjM2U4MDdkZGI5OGZlZmJkNWZmODZkYzQ3MmIyOTFhZTI5MzkyNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRp
bmdTdGF0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NV2lu
ZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAtMTg2LDEyICsxODgsOCBAQCB2b2lk
IEpTTG9jYXRpb246OmRlZmluZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSgogCiBzdGF0aWMgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChFeGVj
U3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0
b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0gICAgRnJhbWUqIGxleGljYWxGcmFt
ZSA9IHRvTGV4aWNhbEZyYW1lKGV4ZWMpOwotICAgIGlmICghbGV4aWNhbEZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwgYWxsb3dz
QWNjZXNzRnJvbUZyYW1lKGV4ZWMsIGZyYW1lKSkKLSAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2No
ZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBsZXhpY2FsRnJh
bWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7CisgICAgSlNCaW5kaW5nU3RhdGUg
c3RhdGUoZXhlYyk7CisgICAgSlNCaW5kaW5nOjpGcmFtZTo6bmF2aWdhdGVJZkFsbG93ZWQoJnN0
YXRlLCBmcmFtZSwgdXJsLCBsb2NrSGlzdG9yeSA/IEpTQmluZGluZzo6RnJhbWU6OkxvY2tlZEhp
c3RvcnkgOiBKU0JpbmRpbmc6OkZyYW1lOjpVbmxvY2tlZEhpc3RvcnksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QgPyBKU0JpbmRpbmc6OkZyYW1lOjpMb2NrZWRCYWNrRm9yd2FyZExpc3QgOiBKU0JpbmRp
bmc6OkZyYW1lOjpVbmxvY2tlZEJhY2tGb3J3YXJkTGlzdCk7CiB9CiAKIHZvaWQgSlNMb2NhdGlv
bjo6c2V0SHJlZihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUpCkBAIC0zMDMsMTggKzMw
MSw4IEBAIHZvaWQgSlNMb2NhdGlvbjo6c2V0SGFzaChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
dmFsdWUpCiAKIEpTVmFsdWUgSlNMb2NhdGlvbjo6cmVwbGFjZShFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0g
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgS1VSTCB1cmwgPSBjb21wbGV0ZVVS
TChleGVjLCB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykp
KTsKLSAgICBpZiAodXJsLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LQotICAgIGlmICghc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKGV4ZWMsIGZyYW1lKSkKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBuYXZpZ2F0ZUlmQWxsb3dlZChleGVjLCBmcmFt
ZSwgdXJsLCB0cnVlLCB0cnVlKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZShleGVjKTsKKyAg
ICBKU0JpbmRpbmc6OkxvY2F0aW9uOjpyZXBsYWNlKCZzdGF0ZSwgaW1wbCgpLCB1c3RyaW5nVG9T
dHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpKTsKICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFs
aXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxp
emF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTBiODEzMThmNTc3YzJlM2Fl
MmFhNWIzNDA3MDczMzNmMzFjZDhhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmdTdGF0ZS5oIgorCisjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RP
TVdpbmRvd0N1c3RvbS5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKKworRnJhbWUqIFN0YXRlPEpTQmluZGluZz46
OmdldEFjdGl2ZUZyYW1lKCkKK3sKKyAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhtX2V4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSktPmltcGwoKS0+ZnJhbWUoKTsKK30KKworRnJhbWUqIFN0YXRl
PEpTQmluZGluZz46OmdldEZpcnN0RnJhbWUoKQoreworICAgIHJldHVybiBhc0pTRE9NV2luZG93
KG1fZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOworfQorCiti
b29sIFN0YXRlPEpTQmluZGluZz46OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCit7CisgICAgcmV0
dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworfQorCitib29s
IFN0YXRlPEpTQmluZGluZz46OmFsbG93c0FjY2Vzc0Zyb21GcmFtZShGcmFtZSogZnJhbWUpCit7
CisgICAgcmV0dXJuIFdlYkNvcmU6OmFsbG93c0FjY2Vzc0Zyb21GcmFtZShtX2V4ZWMsIGZyYW1l
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YWFhYmRl
YzQ3YmI0Y2M4NGVjNTA4MzE1OTc0ODljNjZkNzU5NjQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgSlNCaW5kaW5nU3RhdGVfaAorI2RlZmluZSBKU0JpbmRpbmdTdGF0ZV9o
CisKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgRXhlY1N0YXRlOworCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGcmFtZTsKKwordGVtcGxhdGUgPD4K
K2NsYXNzIFN0YXRlPEpTQmluZGluZz4gOiBwdWJsaWMgU3RhdGU8R2VuZXJpY0JpbmRpbmc+IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBTdGF0ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYykKKyAgICAg
ICAgOiBtX2V4ZWMoZXhlYykge30KKworICAgIHZpcnR1YWwgflN0YXRlKCkge30KKworICAgIEZy
YW1lKiBnZXRBY3RpdmVGcmFtZSgpOworICAgIEZyYW1lKiBnZXRGaXJzdEZyYW1lKCk7CisKKyAg
ICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworCisgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIHNoYXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkKKyAgICBib29sIGFsbG93c0FjY2Vzc0Zy
b21GcmFtZShGcmFtZSopOworCitwcml2YXRlOgorICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7
Cit9OworCit0eXBlZGVmIFN0YXRlPEpTQmluZGluZz4gSlNCaW5kaW5nU3RhdGU7CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGluZ1N0YXRlX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5oCmluZGV4IDU4OTg5ZWQ4Y2Q1NDM4MDk1NGE5NzQ1ZGUxZjcwODI1ZDk4ODlm
YjQuLjU2NmU4YWM5YWM1MmU5OGZjNWU5MjFjZGQ1NGJkMDIyNDAwN2MzYjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaApAQCAtMzEsNiArMzEsOCBAQAogI2lmbmRlZiBWOEJpbmRpbmdfaAogI2Rl
ZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQmluZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAi
QmluZGluZ0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCiAjaW5jbHVk
ZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC01MCwxNiAr
NTIsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRl
ZiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVmFsdWU7CiAgICAgICAgIHR5cGVkZWYgVjhCaW5kaW5n
RE9NV2luZG93IERPTVdpbmRvdzsKKyAgICAgICAgdHlwZWRlZiBCaW5kaW5nRnJhbWU8VjhCaW5k
aW5nPiBGcmFtZTsKKyAgICAgICAgdHlwZWRlZiBCaW5kaW5nTG9jYXRpb248VjhCaW5kaW5nPiBM
b2NhdGlvbjsKIAogICAgICAgICBzdGF0aWMgVmFsdWUgZW1wdHlTY3JpcHRWYWx1ZSgpIHsgcmV0
dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7IH0KICAgICB9OwogICAgIHR5cGVkZWYgQmluZGlu
Z1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5kaW5nU2VjdXJpdHk7Ci0gICAgCisKICAgICBlbnVt
IEV4dGVybmFsTW9kZSB7CiAgICAgICAgIEV4dGVybmFsaXplLAogICAgICAgICBEb05vdEV4dGVy
bmFsaXplCiAgICAgfTsKLSAgICAKKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBl
PgogICAgIFN0cmluZ1R5cGUgdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6
U3RyaW5nPiB2OFN0cmluZywgRXh0ZXJuYWxNb2RlIGV4dGVybmFsKTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcAppbmRleCAyZTVjZjhiMGY1Mjc2Zjc3NjNmZjM2OWM0ZTQwNTcyMzlm
ZGEwZGIwLi40NjQ1MzVlOGU5ODgxNTAyMTg2ODAwMTNlMGUyYTBlNWYzMDM1Zjk5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ0RPTVdpbmRvdy5oIiAvLyBGSVhN
RTogcmVtb3ZlIHdoZW4gY29tcGxldGVVUkwgbW92ZXMKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0
ZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBA
IC0xMTIsMTYgKzExMSwxMiBAQCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihGcmFtZSogZnJh
bWUpCiAKIEtVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAg
ICByZXR1cm4gVjhCaW5kaW5nRE9NV2luZG93Ojpjb21wbGV0ZVVSTChWOEJpbmRpbmdTdGF0ZTo6
T25seSgpLCByZWxhdGl2ZVVSTCk7CisgICAgcmV0dXJuIFY4QmluZGluZzo6RnJhbWU6OmNvbXBs
ZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJlbGF0aXZlVVJMKTsKIH0KIAogdm9pZCBu
YXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBsb2Nr
SGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIEZyYW1lKiBjYWxsaW5n
T3JFbnRlcmVkID0gY2FsbGluZ09yRW50ZXJlZEZyYW1lKCk7Ci0gICAgaWYgKCFjYWxsaW5nT3JF
bnRlcmVkKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1
cmwpIHx8IFNjcmlwdENvbnRyb2xsZXI6OmlzU2FmZVNjcmlwdChmcmFtZSkpCi0gICAgICAgIGZy
YW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJp
bmcoKSwgY2FsbGluZ09yRW50ZXJlZC0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9j
a0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsK
KyAgICByZXR1cm4gVjhCaW5kaW5nOjpGcmFtZTo6bmF2aWdhdGVJZkFsbG93ZWQoVjhCaW5kaW5n
U3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwgbG9ja0hpc3RvcnkgPyBWOEJpbmRpbmc6OkZyYW1l
OjpMb2NrZWRIaXN0b3J5IDogVjhCaW5kaW5nOjpGcmFtZTo6VW5sb2NrZWRIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0ID8gVjhCaW5kaW5nOjpGcmFtZTo6TG9ja2VkQmFja0ZvcndhcmRMaXN0
IDogVjhCaW5kaW5nOjpGcmFtZTo6VW5sb2NrZWRCYWNrRm9yd2FyZExpc3QpOwogfQogCiBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYWMzMDVj
OTdmMDA5YmMwZGFiZjFiNGE3ZGIwZWFhMmViYzI5ODZiNS4uNjA2OGFhMjFhMjYxZWY5NGJjYzFm
MmRhMGFmM2VlMDQ3NDRiOGVjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI5MiwxOSArMjkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogICAgIElOQ19TVEFUUygiRE9NLkxvY2F0aW9uLnJlcGxhY2UiKTsKICAgICB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgTG9jYXRpb24qIGlt
cCA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGhvbGRlcik7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBp
bXAtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVVUkwodG9XZWJDb3JlU3RyaW5nKGFyZ3Nb
MF0pKTsKLSAgICBpZiAodXJsLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpKQotICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZnJhbWUsIHVy
bCwgdHJ1ZSwgdHJ1ZSk7CisgICAgVjhCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZShWOEJpbmRp
bmdTdGF0ZTo6T25seSgpLCBpbXAsIHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKSk7CiAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIApAQCAtMzc4LDQgKzM2NiwzIEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB0b1Y4KExvY2F0aW9uKiBpbXBsKQogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhC
aW5kaW5nU3RhdGUuY3BwCmluZGV4IGNjZGQ3YzhjZTcyNTZhNjRlMWE1N2ExNTVmYjZlNzA1MjA2
MzgxODYuLjIxOTNjOWYzMjgyYjEwMTdjMzE5NzUxMDNlNzE0OTlhMGE0OWFmMmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUu
Y3BwCkBAIC04NCw0ICs4NCw5IEBAIGJvb2wgU3RhdGU8VjhCaW5kaW5nPjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkKICAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCk7CiB9CiAKK2Jvb2wgU3RhdGU8VjhCaW5kaW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZy
YW1lKEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZl
U2NyaXB0KGZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCmluZGV4IGJh
YmEwYzYzYzA4OGZmNzE0ODU4ZDRkMDZiOWRmZmNiYzA0MWE3MmMuLjE0MzA1Yjg4MjVmMzBhMjZl
MjZiODVkZGYzMjFmNjQxOWZmNDA3ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
c3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIAorICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBzaGFyZWQgaW4gQmluZGluZ1NlY3VyaXR5CisgICAgYm9vbCBhbGxvd3NB
Y2Nlc3NGcm9tRnJhbWUoRnJhbWUqKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdGF0ZSgp
IHt9CiAgICAgflN0YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66253</attachid>
            <date>2010-09-01 13:24:25 -0700</date>
            <delta_ts>2010-09-01 15:42:49 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-44891-20100902052423.patch</filename>
            <type>text/plain</type>
            <size>41824</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzc5ZGU3NWNiY2Y0ZDM5OWI0NzQzMjVkZjY5NDM0ZDVhYTFkODExZi4uMDVkOTEzZGRmOTViNmRm
ZGY2N2JmZmZjNjVjOGU1YjIwNjFhNzdjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOC0zMCAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdl
YkNvcmU6Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRp
b24uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OnJlcGxhY2UpOgorICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1V0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6OjpuYXZpZ2F0ZUlmQWxsb3dl
ZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjp0b0R5bmFtaWNGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJ
ZkFsbG93ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6CisgICAg
ICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6OjpnZXRGaXJzdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNTYWZlU2NyaXB0KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29t
cGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Ojppc1NhZmVTY3JpcHQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4
QmluZGluZ1N0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTA5LTAxICBBbnRv
biBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlt
aXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA4OWY0MjAyYTYwZjk4ZjI2ZTA3NWNlODA5MWY2ZDJkMjdlMDNm
NjAxLi5mMWUzYjM5OGJjMmM3MDUwOWE5MDE3NTMwOGU3MzlmZGYyOGQ1Mjg5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTEy
LDYgKzUxMiw4IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxs
YmFjay5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJh
Y2suaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93Lmgn
LAorICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmgnLAorICAgICAg
ICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmgnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywKQEAgLTUzMSw2ICs1MzMsNyBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NE
QVRBU2VjdGlvbkN1c3RvbS5jcHAnLApAQCAtNzEwLDYgKzcxMyw4IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9z
cGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvU2Ny
aXB0Q29udHJvbGxlckJhc2UuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvQ2hpbGRUaHJl
YWRET01EYXRhLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCAzZjIzY2RkZGEwODg1YWZlNTAzNWE5MjI5OWY3Y2Q3Mjc5YTRm
YTVjLi44MzUwODkyOTc0YWE2YjYyOGVkYzNkMTRkNGI0YmNmYjZiNTk1OTBkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE4NCw2
ICsxODQsNyBAQCBXRUJDT1JFX0lOQ0xVREVQQVRIID0gXAogICAgICQkUFdEL2JpbmRpbmdzIFwK
ICAgICAkJFBXRC9iaW5kaW5ncy9nZW5lcmljIFwKICAgICAkJFBXRC9iaW5kaW5ncy9qcyBcCisg
ICAgJCRQV0QvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24gXAogICAgICQkUFdEL2JyaWRnZSBc
CiAgICAgJCRQV0QvYnJpZGdlL2MgXAogICAgICQkUFdEL2JyaWRnZS9qc2MgXApAQCAtMzkyLDYg
KzM5Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRpbmdzL2pzL1NjcmlwdFZhbHVlLmNwcCBc
CiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcCBcCiAgICAgYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBcCisgICAgYmluZGluZ3MvanMvc3BlY2lhbGl6YXRp
b24vSlNCaW5kaW5nU3RhdGUuY3BwIFwKICAgICBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFz
ZS5jcHAgXAogICAgIGJyaWRnZS9JZGVudGlmaWVyUmVwLmNwcCBcCiAgICAgYnJpZGdlL05QX2pz
b2JqZWN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiN2U1
MzM0NDAxYTQ4NGFhMzg0MWM5M2UzM2JjOTM4ODNkY2E2ZGU2Li5hYTY2ZTQ0ZTkzMGViZGZkNjVh
NDVkYWVkMTU5NWIwYjgyZTlkMzdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQxOTY3LDYgKzQxOTY3LDMwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcZ2VuZXJpY1xBY3RpdmVET01DYWxsYmFjay5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQor
CQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGlu
Z0ZyYW1lLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nTG9jYXRpb24uaCINCisJCQkJCT4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1Nl
Y3VyaXR5QmFzZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmgi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcZ2VuZXJpY1xHZW5lcmljQmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQogCQkJPC9GaWx0ZXI+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1lPSJnZW5lcmljIg0KQEAg
LTQyMzI0LDYgKzQyMzQ4LDEwIEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0JpbmRpbmcuaCINCisJCQkJCT4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0JpbmRpbmdzQWxsSW5PbmUuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpAQCAt
NDk2MTksNiArNDk2NDcsNjIgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xX
b3JrZXJTY3JpcHRDb250cm9sbGVyLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcc3BlY2lhbGl6YXRpb25cSlNC
aW5kaW5nU3RhdGUuY3BwIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcc3BlY2lhbGl6YXRpb25cSlNCaW5kaW5nU3RhdGUuaCINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KIAkJCTwvRmlsdGVyPg0KIAkJPC9GaWx0ZXI+DQogCQk8RmlsdGVyDQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOGI4OGVjMjRiZTMy
NTQ2NTFhZWExOTg4ODY0NmJiMWFiNTIzMTYxLi5kYjk2Y2UyMDQxNzI5ZWU5MzczZjc2ZTNhZjk1
ZWQ4ZmIzY2EwN2RjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjgzNyw2ICsyODM3LDE1IEBACiAJCUE1OUUzQzFGMTE1ODBGNTEwMDcyOTI4RSAvKiBL
ZXlFdmVudElQaG9uZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1OUUzQzFEMTE1ODBGNTEwMDcyOTI4RSAvKiBLZXlFdmVudElQaG9uZS5tbSAqLzsg
fTsKIAkJQTVBRkIzNEYxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUFGQjM0RDExNTE1MUE3MDBC
MDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCAqLzsgfTsKIAkJQTVBRkIzNTAxMTUxNTFBNzAwQjA0NUNC
IC8qIFN0ZXBSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTVBRkIzNEUxMTUxNTFBNzAwQjA0NUNCIC8qIFN0ZXBSYW5nZS5oICovOyB9OworCQlB
NjIyQThFRTEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThFRDEyMkM0NDJBMDBBNzg1QjMgLyog
SlNCaW5kaW5nLmggKi87IH07CisJCUE2MjJBOEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRp
bmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNjIyQThGMDEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuY3BwICovOyB9Owor
CQlBNjIyQThGMzEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEYxMTIyQzQ0NDUwMEE3
ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oICovOyB9OworCQlBNjIyQThGQTEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ0xvY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNjIyQThGNDEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9u
LmggKi87IH07CisJCUE2MjJBOEZCMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY1
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLzsgfTsKKwkJQTYyMkE4RkMx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIz
IC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovOyB9OworCQlBNjIyQThGRDEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdT
ZWN1cml0eUJhc2UuaCAqLzsgfTsKKwkJQTYyMkE4RkUxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRp
bmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEY4MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggKi87IH07
CisJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAw
QTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi87IH07CiAJCUE3MTg3NjBFMEIyQTEyMDEwMEEx
NkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAw
QjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8q
IERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzM1MkMxOTBCMUJCODlEMDBBOTg2RDAg
LyogUmVuZGVyU1ZHQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTczNTJDMTcwQjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNw
cCAqLzsgfTsKQEAgLTg3MDcsNiArODcxNiwxNSBAQAogCQlBNUFGQjM0RTExNTE1MUE3MDBCMDQ1
Q0IgLyogU3RlcFJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZXBS
YW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNUM5NzRDRjExNDg1RkYxMDA2
NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBLZXlFdmVudENvY29hLmg7IHBhdGggPSBjb2NvYS9LZXlFdmVudENvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVu
dENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gS2V5RXZl
bnRDb2NvYS5tbTsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCaW5kaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdT
dGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0JpbmRpbmdT
dGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEYxMTIyQzQ0NDUw
MEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0JpbmRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIy
QThGNDEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdMb2NhdGlvbi5oOyBwYXRoID0gZ2VuZXJpYy9CaW5k
aW5nTG9jYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjUxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHkuaDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3Vy
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY2MTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwOyBwYXRoID0gZ2VuZXJpYy9CaW5k
aW5nU2VjdXJpdHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4
RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBwYXRoID0gZ2VuZXJp
Yy9CaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
MjJBOEY4MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdVdGlsaXRpZXMuaDsgcGF0aCA9IGdlbmVyaWMv
QmluZGluZ1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThG
OTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJpY0Jp
bmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAw
QTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERyYWdBY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDQ1Miw2ICsxNDQ3MCwxNSBAQAogCQkJbmFt
ZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQTYyMkE4RUYx
MjJDNDQ0NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlBNjIyQThGMDEyMkM0NDQ1MDBBNzg1QjMgLyogSlNC
aW5kaW5nU3RhdGUuY3BwICovLAorCQkJCUE2MjJBOEYxMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0Jp
bmRpbmdTdGF0ZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBzcGVjaWFsaXphdGlvbjsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAv
KiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTE2MDY5LDYgKzE2MDk2LDEyIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCNUQzMURGODExQ0Y2
MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9NQ2FsbGJhY2suY3BwICovLAogCQkJCUI1RDMxREY5MTFD
RjYxMEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5oICovLAorCQkJCUE2MjJBOEY0MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLywKKwkJCQlBNjIyQThGNTEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8sCisJCQkJQTYyMkE4RjYxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovLAorCQkJCUE2MjJBOEY3MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8sCisJCQkJQTYyMkE4Rjgx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLywKKwkJCQlBNjIyQThGOTEy
MkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0g
Z2VuZXJpYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjEwOCw2ICsxNjE0MSw3
IEBACiAJCQkJQkNDRTU4QTcxMDYxRTgyRjAwOEZCMzVBIC8qIENhbGxiYWNrIE9iamVjdHMgKi8s
CiAJCQkJQkNDRTU4QjQxMDYxRTkyNTAwOEZCMzVBIC8qIENvbnN0cnVjdG9ycyAqLywKIAkJCQlC
QzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3VzdG9tICovLAorCQkJCUE2MjJBOEVGMTIyQzQ0
NDUwMEE3ODVCMyAvKiBzcGVjaWFsaXphdGlvbiAqLywKIAkJCQkxNERGQjMzRjBBN0RGNzYzMDAx
OEY3NjkgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2
OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovLAogCQkJCTkzRjhCMzA2MEEzMDBG
RUEwMEY2MUFCOCAvKiBDb2RlR2VuZXJhdG9ySlMucG0gKi8sCkBAIC0xNjEyMSw2ICsxNjE1NSw3
IEBACiAJCQkJQzU4NUE2NjExMUQ0RkFDNTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMu
aCAqLywKIAkJCQkxQzgxQkEwMzBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFt
ZS5jcHAgKi8sCiAJCQkJMUM4MUJBMDQwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxs
RnJhbWUuaCAqLywKKwkJCQlBNjIyQThFRDEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmgg
Ki8sCiAJCQkJQkM1M0RBQzQxMTQzMkZEOTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmNw
cCAqLywKIAkJCQlCQzUzREFDMTExNDMyRUVFMDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQu
aCAqLywKIAkJCQk5M0I3MEQ0NzA5RUIwQzdDMDA5RDg0NjggLyogSlNET01CaW5kaW5nLmNwcCAq
LywKQEAgLTIwNDMyLDYgKzIwNDY3LDEzIEBACiAJCQkJODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjExMjJF
MUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODk4
Nzg1RjUxMjJFMUVBQzAwM0FBQkRBIC8qIEpTRmlsZVJlYWRlclN5bmMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE2MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkExMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2Nh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJp
bmRpbmdTZWN1cml0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZF
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjI4OTUsNiArMjI5MzcsOCBAQAogCQkJCTg5ODc4NUI4MTIyQ0EyQTcwMDNBQUJE
QSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjAx
MjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4OTg3ODVGNDEyMkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRp
bmdTZWN1cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdET01XaW5kb3cuaAppbmRleCAwYzQ1MGE1ZDdhZjU4NWJhNTU3YWI3OTZhOGU2
MDEyZTkzYjQ2Nzg2Li5hZjY1ODM0MzM3OGY0MDY0Zjc1ZGIwZjU4NGQwYTcxZjU3YTNkODgzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKQEAgLTY1LDkg
KzY1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBXaW5kb3dGZWF0dXJlcyYgcmF3RmVhdHVyZXMpOwogCi0gICAgLy8gRklYTUU6IFRo
ZXJlIHNob3VsZCBiZSBhIHBsYWNlIGZvciBnZW5lcmljIGJpbmRpbmcgdXRpbGl0aWVzLgotICAg
IHN0YXRpYyBLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5nJiBy
ZWxhdGl2ZVVSTCk7Ci0KIHByaXZhdGU6CiAgICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGljYWwg
b2Zmc2V0LCBmcm9tIHRoZSBwYXJlbnQgY29udGVudCBhcmVhLAogICAgIC8vIGFyb3VuZCBuZXds
eSBvcGVuZWQgcG9wdXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLgpAQCAtMTIxLDcg
KzExOCw3IEBAIEZyYW1lKiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpjcmVhdGVXaW5kb3co
U3RhdGU8QmluZGluZz4qIHN0YXRlLAogCiAgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1
cmwpIHx8IEJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6Y2FuQWNjZXNzRnJhbWUoc3RhdGUsIG5l
d0ZyYW1lLCB0cnVlKSkgewogICAgICAgICBLVVJMIGNvbXBsZXRlZFVybCA9Ci0gICAgICAgICAg
ICB1cmwuaXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxTdHJpbmcsICIiKSA6IGNvbXBsZXRlVVJM
KHN0YXRlLCB1cmwpOworICAgICAgICAgICAgdXJsLmlzRW1wdHkoKSA/IEtVUkwoUGFyc2VkVVJM
U3RyaW5nLCAiIikgOiBCaW5kaW5nOjpGcmFtZTo6Y29tcGxldGVVUkwoc3RhdGUsIHVybCk7CiAg
ICAgICAgIGJvb2wgdXNlckdlc3R1cmUgPSBzdGF0ZS0+cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7
CiAKICAgICAgICAgaWYgKGNyZWF0ZWQpCkBAIC0xODUsNyArMTgyLDcgQEAgV2ViQ29yZTo6RE9N
V2luZG93KiBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+OjpvcGVuKFN0YXRlPEJpbmRpbmc+KiBz
dGF0ZSwKIAogICAgICAgICBTdHJpbmcgY29tcGxldGVkVXJsOwogICAgICAgICBpZiAoIXVybFN0
cmluZy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb21wbGV0ZWRVcmwgPSBjb21wbGV0ZVVSTChz
dGF0ZSwgdXJsU3RyaW5nKTsKKyAgICAgICAgICAgIGNvbXBsZXRlZFVybCA9IEJpbmRpbmc6OkZy
YW1lOjpjb21wbGV0ZVVSTChzdGF0ZSwgdXJsU3RyaW5nKTsKIAogICAgICAgICBpZiAoIWNvbXBs
ZXRlZFVybC5pc0VtcHR5KCkKICAgICAgICAgICAgICYmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
Y29tcGxldGVkVXJsKQpAQCAtMjY4LDE4ICsyNjUsNiBAQCBXZWJDb3JlOjpET01XaW5kb3cqIEJp
bmRpbmdET01XaW5kb3c8QmluZGluZz46Om9wZW4oU3RhdGU8QmluZGluZz4qIHN0YXRlLAogICAg
IHJldHVybiBmcmFtZS0+ZG9tV2luZG93KCk7CiB9CiAKLXRlbXBsYXRlIDxjbGFzcyBCaW5kaW5n
PgotS1VSTCBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+Ojpjb21wbGV0ZVVSTChTdGF0ZTxCaW5k
aW5nPiogc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCi17Ci0gICAgLy8gRm9yIGhpc3RvcmljYWwgcmVh
c29ucywgd2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRoZQotICAgIC8vIGR5bmFt
aWMgZnJhbWUuCi0gICAgRnJhbWUqIGZyYW1lID0gc3RhdGUtPmdldEZpcnN0RnJhbWUoKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gS1VSTCgpOwotICAgIHJldHVybiBmcmFtZS0+
bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gQmluZGluZ0RPTVdpbmRvd19oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQmluZGluZ0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFmZGM3OTQ1NmFjYzhiYjQ0ZjA0M2Zl
NDZiNzRiZjBjNGIzN2U0OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nRnJhbWUuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCaW5kaW5nRnJhbWVf
aAorI2RlZmluZSBCaW5kaW5nRnJhbWVfaAorCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJHZW5lcmljQmluZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDxj
bGFzcyBCaW5kaW5nPgorY2xhc3MgQmluZGluZ0ZyYW1lIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
dm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5kaW5nPiosIEZyYW1lKiwgY29uc3QgS1VS
TCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCk7Cit9OworCit0
ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0ZyYW1lPEJpbmRpbmc+OjpuYXZp
Z2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsIEZyYW1lKiBmcmFtZSwgY29uc3Qg
S1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCit7
CisgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gc3RhdGUtPmdldEFjdGl2ZUZyYW1lKCk7CisgICAg
aWYgKCFhY3RpdmVGcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghcHJvdG9jb2xJc0ph
dmFTY3JpcHQodXJsKSB8fCBzdGF0ZS0+YWxsb3dzQWNjZXNzRnJvbUZyYW1lKGZyYW1lKSkKKyAg
ICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Uo
dXJsLnN0cmluZygpLCBhY3RpdmVGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHN0YXRlLT5wcm9jZXNzaW5nVXNlckdl
c3R1cmUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJpbmRp
bmdGcmFtZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xv
Y2F0aW9uLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2E1MjgxNGE5ZDlmMTFlOWM3YjI4YWU3NWI0OWM4ZDYzZWNmOWU3YgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBCaW5kaW5nTG9jYXRpb25faAorI2RlZmluZSBCaW5kaW5n
TG9jYXRpb25faAorCisjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCisjaW5jbHVkZSAiR2Vu
ZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRlICJMb2NhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorY2xhc3MgQmluZGluZ0xvY2F0aW9uIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCByZXBsYWNlKFN0YXRlPEJpbmRpbmc+KiwgTG9jYXRp
b24qLCBjb25zdCBTdHJpbmcmIHVybCk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4K
K3ZvaWQgQmluZGluZ0xvY2F0aW9uPEJpbmRpbmc+OjpyZXBsYWNlKFN0YXRlPEJpbmRpbmc+KiBz
dGF0ZSwgTG9jYXRpb24qIGxvY2F0aW9uLCBjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBGcmFt
ZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBLVVJMIGZ1bGxVUkwgPSBjb21wbGV0ZVVSTChzdGF0ZSwgdXJsKTsKKyAg
ICBpZiAoZnVsbFVSTC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFCaW5k
aW5nU2VjdXJpdHk8QmluZGluZz46OnNob3VsZEFsbG93TmF2aWdhdGlvbihzdGF0ZSwgZnJhbWUp
KQorICAgICAgICByZXR1cm47CisKKyAgICBCaW5kaW5nOjpGcmFtZTo6bmF2aWdhdGVJZkFsbG93
ZWQoc3RhdGUsIGZyYW1lLCBmdWxsVVJMLCB0cnVlLCB0cnVlKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0xvY2F0aW9uX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKaW5kZXggZDAzMGI0NTg0MTcwZjAwMWYyNjY0M2Ji
ZDhjZGFlZGNjNWMzNTI5NC4uOGJmMTM0Mzk4MWU2ZGIwMmZiMWJiOTQ5YjJiZTYzMjU1YzA1YWJj
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKQEAgLTMxLDYg
KzMxLDkgQEAKICNpZm5kZWYgR2VuZXJpY0JpbmRpbmdfaAogI2RlZmluZSBHZW5lcmljQmluZGlu
Z19oCiAKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVXNlZCB0byBpbnN0YW50aWF0ZSBiaW5kaW5nIHRlbXBs
YXRlcyBmb3IgYW55IG1ldGhvZHMgc2hhcmVkIGFtb25nIGFsbApAQCAtNDcsNiArNTAsMTcgQEAg
Y2xhc3MgU3RhdGU8R2VuZXJpY0JpbmRpbmc+IHsKICAgICAvLyBBbnkgbWV0aG9kcyBzaGFyZWQg
YWNyb3NzIGJpbmRpbmdzIGNhbiBnbyBoZXJlLgogfTsKIAordGVtcGxhdGUgPGNsYXNzIEJpbmRp
bmc+CitLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCkKK3sKKyAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVk
IHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCisgICAgLy8gZHluYW1pYyBmcmFtZS4KKyAg
ICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOworICAgIGlmICghZnJhbWUp
CisgICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29t
cGxldGVVUkwocmVsYXRpdmVVUkwpOworfQorCiB9CiAKICNlbmRpZiAvLyBHZW5lcmljQmluZGlu
Z19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDJjOWJlYWRkNmE1ZTc3MWQx
ODg2OTQyNmY1ZmViMmIyNTAxYjBmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmcuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdfaAorI2Rl
ZmluZSBKU0JpbmRpbmdfaAorCisjaW5jbHVkZSAiQmluZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAi
QmluZGluZ0xvY2F0aW9uLmgiCisjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworLy8gSW5zdGFudGlhdGUgYmluZGluZyB0ZW1wbGF0ZSBjbGFzc2Vz
IGZvciBKU0MuCitjbGFzcyBKU0JpbmRpbmcgeworcHVibGljOgorICAgIHR5cGVkZWYgQmluZGlu
Z0ZyYW1lPEpTQmluZGluZz4gRnJhbWU7CisgICAgdHlwZWRlZiBCaW5kaW5nTG9jYXRpb248SlNC
aW5kaW5nPiBMb2NhdGlvbjsKK307CisKK3R5cGVkZWYgQmluZGluZ1NlY3VyaXR5PEpTQmluZGlu
Zz4gSlNCaW5kaW5nU2VjdXJpdHk7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEpTQmluZGluZ19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAKaW5kZXggOTIyZTQ0OTcxOGMxNzQzYjYzY2MyN2UwM2VjNTI5YzM1ODFjOGI3MS4uNmUxY2Mx
ZTIzYmExYWY4MzRjZjM3OWUzM2JhNWJjZmViOTNhYmZlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdD
Q29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0F1ZGlvQ29uc3RydWN0b3IuY3BwIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmNwcCIKICNp
bmNsdWRlICJKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNDU1NSdWxlQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcAppbmRleCA5NjM5NGViNzViZGJiMTJmZTQwN2YwMzIwMjJkYmQ1
N2NjODY3YWEzLi43NGM4MTMxMTIzZjQzMDA1NDU4ODBjNTgyMWFiOWRkODg3NDgyN2I3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0zOCwxMSArMzgsMTQgQEAKICNpbmNs
dWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKyNpbmNsdWRl
ICJKU0JpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29yZUV4Y2VwdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNEZWJ1Z1dyYXBwZXJTZXQu
aCIKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNFeGNlcHRpb25C
YXNlLmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNO
b2RlLmgiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCIKQEAgLTYzOSw4ICs2NDIsOCBAQCBib29sIGFsbG93c0FjY2Vz
c0Zyb21GcmFtZShFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSwgU3RyaW5nJiBtZXNzYWdl
KQogCiBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBGcmFtZSogbGV4aWNhbEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7
Ci0gICAgcmV0dXJuIGxleGljYWxGcmFtZSAmJiBsZXhpY2FsRnJhbWUtPmxvYWRlcigpLT5zaG91
bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlKGV4ZWMp
OworICAgIHJldHVybiBKU0JpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKCZz
dGF0ZSwgZnJhbWUpOwogfQogCiBib29sIGFsbG93U2V0dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChF
eGVjU3RhdGUqIGV4ZWMsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSwyNiArNjc0LDIzIEBAIHZvaWQgcHJpbnRFcnJvck1l
c3NhZ2VGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogRnJh
bWUqIHRvTGV4aWNhbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gYXNKU0RP
TVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7Cisg
ICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdldEFjdGl2ZUZyYW1lKCk7CiB9CiAKIEZy
YW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgcmV0dXJuIGFzSlNE
T01XaW5kb3coZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOwor
ICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZShleGVjKS5nZXRGaXJzdEZyYW1lKCk7CiB9CiAKIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKIHsKLSAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKEpT
TWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCkpLnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpOwogfQogCiBLVVJMIGNvbXBsZXRlVVJMKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCkKIHsKLSAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVk
IHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlIGR5bmFtaWMgZnJhbWUuCi0gICAgRnJhbWUq
IGZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAg
cmV0dXJuIEtVUkwoKTsKLSAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTChy
ZWxhdGl2ZVVSTCk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUoZXhlYyk7CisgICAgcmV0dXJu
IGNvbXBsZXRlVVJMKCZzdGF0ZSwgcmVsYXRpdmVVUkwpOwogfQogCiBKU1ZhbHVlIG9iamVjdFRv
U3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9t
LmNwcAppbmRleCA5OTE2NmNkOTE1N2NiMDlkODA2NWExMmRkN2M2NDc3Zjc0Njc3NDMzLi4wOWU3
Mjk0YWEwZGY3NzYyYTg5ZDI5NmQ4ODI5NjA4YzMwMGJlOTE2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmgiCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIK
ICNpbmNsdWRlICJLVVJMLmgiCkBAIC0xODYsMTIgKzE4OCw4IEBAIHZvaWQgSlNMb2NhdGlvbjo6
ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKCiAKIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEV4ZWNTdGF0ZSogZXhlYywg
RnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9j
a0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFtZSogbGV4aWNhbEZyYW1lID0gdG9MZXhpY2Fs
RnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFsZXhpY2FsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCBhbGxvd3NBY2Nlc3NGcm9tRnJh
bWUoZXhlYywgZnJhbWUpKQotICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2No
ZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGxleGljYWxGcmFtZS0+bG9hZGVyKCkt
Pm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZShleGVjKTsK
KyAgICBKU0JpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0ZUlmQWxsb3dlZCgmc3RhdGUsIGZyYW1lLCB1
cmwsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKIH0KIAogdm9pZCBKU0xvY2F0
aW9uOjpzZXRIcmVmKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKQEAgLTMwMywxOCAr
MzAxLDggQEAgdm9pZCBKU0xvY2F0aW9uOjpzZXRIYXNoKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0xvY2F0aW9uOjpyZXBsYWNlKEV4ZWNTdGF0ZSogZXhlYykK
IHsKLSAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCktPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBLVVJMIHVybCA9IGNvbXBsZXRl
VVJMKGV4ZWMsIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVj
KSkpOwotICAgIGlmICh1cmwuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZXhlYywgZnJhbWUpKQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIG5hdmlnYXRlSWZBbGxvd2VkKGV4ZWMsIGZy
YW1lLCB1cmwsIHRydWUsIHRydWUpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOwor
ICAgIEpTQmluZGluZzo6TG9jYXRpb246OnJlcGxhY2UoJnN0YXRlLCBpbXBsKCksIHVzdHJpbmdU
b1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwogICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNp
YWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lh
bGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MGI4MTMxOGY1NzdjMmUz
YWUyYWE1YjM0MDcwNzMzM2YzMWNkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcApAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmgiCisKKyNpbmNs
dWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpT
RE9NV2luZG93Q3VzdG9tLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCitGcmFtZSogU3RhdGU8SlNCaW5kaW5n
Pjo6Z2V0QWN0aXZlRnJhbWUoKQoreworICAgIHJldHVybiBhc0pTRE9NV2luZG93KG1fZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOworfQorCitGcmFtZSogU3Rh
dGU8SlNCaW5kaW5nPjo6Z2V0Rmlyc3RGcmFtZSgpCit7CisgICAgcmV0dXJuIGFzSlNET01XaW5k
b3cobV9leGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7Cit9CisK
K2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKK3sKKyAgICBy
ZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7Cit9CisKK2Jv
b2wgU3RhdGU8SlNCaW5kaW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKiBmcmFtZSkK
K3sKKyAgICByZXR1cm4gV2ViQ29yZTo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKG1fZXhlYywgZnJh
bWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjY0MDE0
MDFmNTZiOTY4YTFlNTZjYWQ1M2E5N2M4YmZmNDkzZTg4MAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApAQCAtMCww
ICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdTdGF0ZV9oCisjZGVmaW5lIEpTQmluZGluZ1N0YXRl
X2gKKworI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgi
CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CisKK30gLy8gbmFtZXNwYWNl
IEpTQworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCit0ZW1wbGF0ZSA8
PgorY2xhc3MgU3RhdGU8SlNCaW5kaW5nPiA6IHB1YmxpYyBTdGF0ZTxHZW5lcmljQmluZGluZz4g
eworcHVibGljOgorICAgIGV4cGxpY2l0IFN0YXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjKQorICAg
ICAgICA6IG1fZXhlYyhleGVjKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5TdGF0ZSgp
CisgICAgeworICAgIH0KKworICAgIEZyYW1lKiBnZXRBY3RpdmVGcmFtZSgpOworICAgIEZyYW1l
KiBnZXRGaXJzdEZyYW1lKCk7CisKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwor
CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNoYXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkK
KyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShGcmFtZSopOworCitwcml2YXRlOgorICAg
IEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7Cit9OworCit0eXBlZGVmIFN0YXRlPEpTQmluZGluZz4g
SlNCaW5kaW5nU3RhdGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpT
QmluZGluZ1N0YXRlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IDU4OTg5ZWQ4Y2Q1NDM4
MDk1NGE5NzQ1ZGUxZjcwODI1ZDk4ODlmYjQuLjU2NmU4YWM5YWM1MmU5OGZjNWU5MjFjZGQ1NGJk
MDIyNDAwN2MzYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMzEsNiArMzEsOCBAQAog
I2lmbmRlZiBWOEJpbmRpbmdfaAogI2RlZmluZSBWOEJpbmRpbmdfaAogCisjaW5jbHVkZSAiQmlu
ZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAiQmluZGluZ0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQmlu
ZGluZ1NlY3VyaXR5LmgiCiAjaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCkBAIC01MCwxNiArNTIsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVmFsdWU7CiAg
ICAgICAgIHR5cGVkZWYgVjhCaW5kaW5nRE9NV2luZG93IERPTVdpbmRvdzsKKyAgICAgICAgdHlw
ZWRlZiBCaW5kaW5nRnJhbWU8VjhCaW5kaW5nPiBGcmFtZTsKKyAgICAgICAgdHlwZWRlZiBCaW5k
aW5nTG9jYXRpb248VjhCaW5kaW5nPiBMb2NhdGlvbjsKIAogICAgICAgICBzdGF0aWMgVmFsdWUg
ZW1wdHlTY3JpcHRWYWx1ZSgpIHsgcmV0dXJuIHY4OjpMb2NhbDx2ODo6VmFsdWU+KCk7IH0KICAg
ICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGluZz4gVjhCaW5kaW5nU2Vj
dXJpdHk7Ci0gICAgCisKICAgICBlbnVtIEV4dGVybmFsTW9kZSB7CiAgICAgICAgIEV4dGVybmFs
aXplLAogICAgICAgICBEb05vdEV4dGVybmFsaXplCiAgICAgfTsKLSAgICAKKwogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgogICAgIFN0cmluZ1R5cGUgdjhTdHJpbmdUb1dlYkNv
cmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZywgRXh0ZXJuYWxNb2RlIGV4
dGVybmFsKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAppbmRleCAyZTVjZjhiMGY1
Mjc2Zjc3NjNmZjM2OWM0ZTQwNTcyMzlmZGEwZGIwLi40NjQ1MzVlOGU5ODgxNTAyMTg2ODAwMTNl
MGUyYTBlNWYzMDM1Zjk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMzgs
NyArMzgsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgotI2luY2x1ZGUgIlY4Qmlu
ZGluZ0RPTVdpbmRvdy5oIiAvLyBGSVhNRTogcmVtb3ZlIHdoZW4gY29tcGxldGVVUkwgbW92ZXMK
ICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKICNpbmNs
dWRlICJXb3JrZXJDb250ZXh0LmgiCkBAIC0xMTIsMTYgKzExMSwxMiBAQCBib29sIHNob3VsZEFs
bG93TmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAKIEtVUkwgY29tcGxldGVVUkwoY29uc3QgU3Ry
aW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICByZXR1cm4gVjhCaW5kaW5nRE9NV2luZG93Ojpjb21w
bGV0ZVVSTChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCByZWxhdGl2ZVVSTCk7CisgICAgcmV0dXJu
IFY4QmluZGluZzo6RnJhbWU6OmNvbXBsZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJl
bGF0aXZlVVJMKTsKIH0KIAogdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0
KQogewotICAgIEZyYW1lKiBjYWxsaW5nT3JFbnRlcmVkID0gY2FsbGluZ09yRW50ZXJlZEZyYW1l
KCk7Ci0gICAgaWYgKCFjYWxsaW5nT3JFbnRlcmVkKQotICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IFNjcmlwdENvbnRyb2xsZXI6OmlzU2FmZVNj
cmlwdChmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVs
ZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgY2FsbGluZ09yRW50ZXJlZC0+bG9hZGVyKCkt
Pm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICByZXR1cm4gVjhCaW5kaW5nOjpGcmFtZTo6bmF2
aWdhdGVJZkFsbG93ZWQoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwgbG9ja0hp
c3RvcnkgPyBWOEJpbmRpbmc6OkZyYW1lOjpMb2NrZWRIaXN0b3J5IDogVjhCaW5kaW5nOjpGcmFt
ZTo6VW5sb2NrZWRIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0ID8gVjhCaW5kaW5nOjpGcmFt
ZTo6TG9ja2VkQmFja0ZvcndhcmRMaXN0IDogVjhCaW5kaW5nOjpGcmFtZTo6VW5sb2NrZWRCYWNr
Rm9yd2FyZExpc3QpOwogfQogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBnZXRTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlv
bkN1c3RvbS5jcHAKaW5kZXggYWMzMDVjOTdmMDA5YmMwZGFiZjFiNGE3ZGIwZWFhMmViYzI5ODZi
NS4uNjA2OGFhMjFhMjYxZWY5NGJjYzFmMmRhMGFmM2VlMDQ3NDRiOGVjZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI5MiwxOSAr
MjkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUygiRE9NLkxvY2F0aW9u
LnJlcGxhY2UiKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGFyZ3MuSG9s
ZGVyKCk7CiAgICAgTG9jYXRpb24qIGltcCA9IFY4TG9jYXRpb246OnRvTmF0aXZlKGhvbGRlcik7
Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVV
UkwodG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKLSAgICBpZiAodXJsLmlzTnVsbCgpKQotICAg
ICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmln
YXRpb24oZnJhbWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgbmF2
aWdhdGVJZkFsbG93ZWQoZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgVjhCaW5kaW5nOjpM
b2NhdGlvbjo6cmVwbGFjZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAsIHRvV2ViQ29yZVN0
cmluZyhhcmdzWzBdKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIH0KIApAQCAtMzc4
LDQgKzM2NiwzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KExvY2F0aW9uKiBpbXBsKQog
fQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCmluZGV4IGNjZGQ3YzhjZTcy
NTZhNjRlMWE1N2ExNTVmYjZlNzA1MjA2MzgxODYuLjIxOTNjOWYzMjgyYjEwMTdjMzE5NzUxMDNl
NzE0OTlhMGE0OWFmMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6
YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lh
bGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCkBAIC04NCw0ICs4NCw5IEBAIGJvb2wgU3RhdGU8
VjhCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKICAgICByZXR1cm4gU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKK2Jvb2wgU3RhdGU8VjhCaW5k
aW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4g
U2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlv
bi9WOEJpbmRpbmdTdGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9W
OEJpbmRpbmdTdGF0ZS5oCmluZGV4IGJhYmEwYzYzYzA4OGZmNzE0ODU4ZDRkMDZiOWRmZmNiYzA0
MWE3MmMuLjE0MzA1Yjg4MjVmMzBhMjZlMjZiODVkZGYzMjFmNjQxOWZmNDA3ZmQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgK
QEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzaGFyZWQgaW4gQmluZGluZ1Nl
Y3VyaXR5CisgICAgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUqKTsKKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBTdGF0ZSgpIHt9CiAgICAgflN0YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66393</attachid>
            <date>2010-09-02 12:09:26 -0700</date>
            <delta_ts>2010-09-02 12:13:30 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-44891-20100903040924.patch</filename>
            <type>text/plain</type>
            <size>43470</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzc5ZGU3NWNiY2Y0ZDM5OWI0NzQzMjVkZjY5NDM0ZDVhYTFkODExZi4uYTJiMmFmMjc0MGMwOTgz
NzgwZGNhZWE5N2Y3ZDUzZjljMGM5YTQ4NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMC0wOS0wMSAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjo6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6cmVwbGFjZSk6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGlu
Zy5oOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmluZGluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6dG9MZXhpY2FsRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXBsZXRlVVJMKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTTG9jYXRpb246OnJlcGxhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNp
YWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6
OmdldEFjdGl2ZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0Rmlyc3RGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjo6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjo6OmFsbG93c0FjY2Vzc0Zyb21GcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMvc3Bl
Y2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdh
dGVJZkFsbG93ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmg6CisKIDIwMTAtMDkt
MDEgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3NmY4YmUyMGYzODA0YWY2MWEwOTE3MTM0
ZDFjMDZjM2ZjYmNiZWU0Li41NWFhNjI2Yzg4ZjdlMjBhZWM5MjRiY2Q0MjZmYmIxMGUzYWQ1YjA2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTksNiArOSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwktSSQoc3Jj
ZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdlIFwK
IAktSSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZS9jIFwKQEAgLTYyMSw2ICs2MjIsMTIgQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlUm93LmggXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5j
cHAgXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oIFwKKwlX
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmggXAorCVdlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdTZWN1cml0eS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1Nl
Y3VyaXR5QmFzZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJp
dHlCYXNlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAog
CVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC03OTQs
NiArODAxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJj
ZVByb3ZpZGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5o
IFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNw
cCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5o
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5oIFwKIAlXZWJDb3JlL2JyaWRnZS9Ccmlk
Z2UuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDg5ZjQyMDJhNjBmOThmMjZlMDc1Y2U4MDkxZjZkMmQyN2UwM2Y2MDEuLmYx
ZTNiMzk4YmMyYzcwNTA5YTkwMTc1MzA4ZTczOWZkZjI4ZDUyODkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTIsNiArNTEy
LDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCcsCisgICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLApAQCAtNTMxLDYgKzUzMyw3IEBACiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQmluZGlu
Zy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0
aW9uQ3VzdG9tLmNwcCcsCkBAIC03MTAsNiArNzEzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL3NwZWNpYWxp
emF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3Bl
Y2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvU2Ny
aXB0Q29udHJvbGxlckJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250
cm9sbGVyQmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9DaGlsZFRocmVhZERPTURh
dGEuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNv
cmUucHJvCmluZGV4IDNmMjNjZGRkYTA4ODVhZmU1MDM1YTkyMjk5ZjdjZDcyNzlhNGZhNWMuLjgz
NTA4OTI5NzRhYTZiNjI4ZWRjM2QxNGQ0YjRiY2ZiNmI1OTU5MGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTg0LDYgKzE4NCw3
IEBAIFdFQkNPUkVfSU5DTFVERVBBVEggPSBcCiAgICAgJCRQV0QvYmluZGluZ3MgXAogICAgICQk
UFdEL2JpbmRpbmdzL2dlbmVyaWMgXAogICAgICQkUFdEL2JpbmRpbmdzL2pzIFwKKyAgICAkJFBX
RC9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbiBcCiAgICAgJCRQV0QvYnJpZGdlIFwKICAgICAk
JFBXRC9icmlkZ2UvYyBcCiAgICAgJCRQV0QvYnJpZGdlL2pzYyBcCkBAIC0zOTIsNiArMzkzLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwIFwKICAgICBi
aW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0Jp
bmRpbmdTdGF0ZS5jcHAgXAogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBc
CiAgICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwIFwKICAgICBicmlkZ2UvTlBfanNvYmplY3Qu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI3ZTUzMzQ0MDFh
NDg0YWEzODQxYzkzZTMzYmM5Mzg4M2RjYTZkZTYuLmFhNjZlNDRlOTMwZWJkZmQ2NWE0NWRhZWQx
NTk1YjBiODJlOWQzN2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NDE5NjcsNiArNDE5NjcsMzAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5l
cmljXEFjdGl2ZURPTUNhbGxiYWNrLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nRnJhbWUu
aCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8
L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVy
aWNcQmluZGluZ1NlY3VyaXR5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlC
YXNlLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJ
CQk8L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVyaWMiDQpAQCAtNDIzMjQs
NiArNDIzNDgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8
L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
QmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC00OTYxOSw2
ICs0OTY0Nyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFdvcmtlclNj
cmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdT
dGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+
DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkv
Pg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
fFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJ
CQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4Yjg4ZWMyNGJlMzI1NDY1MWFl
YTE5ODg4NjQ2YmIxYWI1MjMxNjEuLmRiOTZjZTIwNDE3MjllZTkzNzNmNzZlM2FmOTVlZDhmYjNj
YTA3ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
ODM3LDYgKzI4MzcsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50
SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tICovOyB9OwogCQlB
NUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1MTUxQTcwMEIwNDVDQiAv
KiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3Rl
cFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87IH07CisJCUE2MjJBOEVF
MTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRp
bmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJB
OEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi87IH07CisJCUE2MjJB
OEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8q
IEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLzsg
fTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjUxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlBNjIyQThGQzEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAv
KiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5
QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYy
MkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLzsgfTsKKwkJQTYy
MkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMg
LyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFD
MDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0Nv
bnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5k
ZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwICovOyB9
OwpAQCAtODcwNyw2ICs4NzE2LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RlcFJhbmdlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0ODVGRjEwMDY2RjJBQiAv
KiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEtleUV2
ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlFdmVudENvY29h
Lm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmluZGluZ1N0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIz
IC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
QmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY0MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdMb2Nh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNTEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1
cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNzEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5lcmljL0JpbmRp
bmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4Rjgx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5n
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY5MTIyQzQ0
QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0Ug
LyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0Fj
dGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAw
QTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDUyLDYgKzE0NDcwLDE1IEBACiAJCQluYW1lID0gY29j
b2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlBNjIyQThFRjEyMkM0NDQ1
MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdT
dGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0
YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9uOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRl
cnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTYwNjks
NiArMTYwOTYsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMxREY4MTFDRjYxMEIwMDlG
MjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVEMzFERjkxMUNGNjEwQjAw
OUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYyMkE4RjQxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYyMkE4RjcxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNjIyQThGODEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2MjJBOEY5MTIyQzQ0QTYw
MEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBnZW5lcmlj
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTA4LDYgKzE2MTQxLDcgQEAKIAkJ
CQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2JqZWN0cyAqLywKIAkJCQlC
Q0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICovLAogCQkJCUJDNEVERUY3
MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4RUYxMjJDNDQ0NTAwQTc4
NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4Rjc2OSAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENh
Y2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYx
QUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTIxLDYgKzE2MTU1LDcgQEAKIAkJ
CQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5oICovLAog
CQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAq
LywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5o
ICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCAqLywKIAkJ
CQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwICovLAog
CQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovLAog
CQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwICovLApAQCAt
MjA0MzIsNiArMjA0NjcsMTMgQEAKIAkJCQk4OTg3ODVCOTEyMkNBMkE3MDAzQUFCREEgLyogSlNN
ZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGMTEyMkUxRTg3MDAz
QUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGNTEy
MkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTYyMkE4RUUxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTYyMkE4RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBNjIyQThGQTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1Nl
Y3VyaXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGRDEyMkM0NEE2MDBBNzg1QjMgLyog
QmluZGluZ1NlY3VyaXR5QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkUxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJB
OEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMjg5NSw2ICsyMjkzNyw4IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAwM0FBQkRBIC8qIEpT
TWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVGMDEyMkUxRTg3
MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4
NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE2MjJBOEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0RPTVdpbmRvdy5oCmluZGV4IDBjNDUwYTVkN2FmNTg1YmE1NTdhYjc5NmE4ZTYwMTJlOTNi
NDY3ODYuLmFmNjU4MzQzMzc4ZjQwNjRmNzVkYjBmNTg0ZDBhNzFmNTdhM2Q4ODMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtNjUsOSArNjUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiByYXdGZWF0dXJlcyk7CiAKLSAgICAvLyBGSVhNRTogVGhlcmUgc2hv
dWxkIGJlIGEgcGxhY2UgZm9yIGdlbmVyaWMgYmluZGluZyB1dGlsaXRpZXMuCi0gICAgc3RhdGlj
IEtVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZl
VVJMKTsKLQogcHJpdmF0ZToKICAgICAvLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBvZmZzZXQs
IGZyb20gdGhlIHBhcmVudCBjb250ZW50IGFyZWEsCiAgICAgLy8gYXJvdW5kIG5ld2x5IG9wZW5l
ZCBwb3B1cHMgdGhhdCBkb24ndCBzcGVjaWZ5IGEgbG9jYXRpb24uCkBAIC0xMjEsNyArMTE4LDcg
QEAgRnJhbWUqIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNyZWF0ZVdpbmRvdyhTdGF0ZTxC
aW5kaW5nPiogc3RhdGUsCiAKICAgICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwg
QmluZGluZ1NlY3VyaXR5PEJpbmRpbmc+OjpjYW5BY2Nlc3NGcmFtZShzdGF0ZSwgbmV3RnJhbWUs
IHRydWUpKSB7CiAgICAgICAgIEtVUkwgY29tcGxldGVkVXJsID0KLSAgICAgICAgICAgIHVybC5p
c0VtcHR5KCkgPyBLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpIDogY29tcGxldGVVUkwoc3RhdGUs
IHVybCk7CisgICAgICAgICAgICB1cmwuaXNFbXB0eSgpID8gS1VSTChQYXJzZWRVUkxTdHJpbmcs
ICIiKSA6IEJpbmRpbmc6OkZyYW1lOjpjb21wbGV0ZVVSTChzdGF0ZSwgdXJsKTsKICAgICAgICAg
Ym9vbCB1c2VyR2VzdHVyZSA9IHN0YXRlLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIAogICAg
ICAgICBpZiAoY3JlYXRlZCkKQEAgLTE4NSw3ICsxODIsNyBAQCBXZWJDb3JlOjpET01XaW5kb3cq
IEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46Om9wZW4oU3RhdGU8QmluZGluZz4qIHN0YXRlLAog
CiAgICAgICAgIFN0cmluZyBjb21wbGV0ZWRVcmw7CiAgICAgICAgIGlmICghdXJsU3RyaW5nLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIGNvbXBsZXRlZFVybCA9IGNvbXBsZXRlVVJMKHN0YXRlLCB1
cmxTdHJpbmcpOworICAgICAgICAgICAgY29tcGxldGVkVXJsID0gQmluZGluZzo6RnJhbWU6OmNv
bXBsZXRlVVJMKHN0YXRlLCB1cmxTdHJpbmcpOwogCiAgICAgICAgIGlmICghY29tcGxldGVkVXJs
LmlzRW1wdHkoKQogICAgICAgICAgICAgJiYgKCFwcm90b2NvbElzSmF2YVNjcmlwdChjb21wbGV0
ZWRVcmwpCkBAIC0yNjgsMTggKzI2NSw2IEBAIFdlYkNvcmU6OkRPTVdpbmRvdyogQmluZGluZ0RP
TVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCiAgICAgcmV0dXJu
IGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAotdGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Ci1LVVJM
IEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBz
dGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAgICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3
ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCi0gICAgLy8gZHluYW1pYyBmcmFt
ZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIo
KS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2luZG93X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9C
aW5kaW5nRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWZkYzc5NDU2YWNjOGJiNDRmMDQzZmU0NmI3NGJm
MGM0YjM3ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdGcmFtZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJpbmRpbmdGcmFtZV9oCisjZGVm
aW5lIEJpbmRpbmdGcmFtZV9oCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdlbmVy
aWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJp
bmRpbmc+CitjbGFzcyBCaW5kaW5nRnJhbWUgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIG5h
dmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9v
bCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKK307CisKK3RlbXBsYXRl
IDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5nRnJhbWU8QmluZGluZz46Om5hdmlnYXRlSWZB
bGxvd2VkKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKK3sKKyAgICBG
cmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0ZS0+Z2V0QWN0aXZlRnJhbWUoKTsKKyAgICBpZiAoIWFj
dGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlw
dCh1cmwpIHx8IHN0YXRlLT5hbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZnJhbWUpKQorICAgICAgICBm
cmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3Ry
aW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlz
dG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgc3RhdGUtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0ZyYW1l
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24u
aCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jYTUyODE0YTlkOWYxMWU5YzdiMjhhZTc1YjQ5YzhkNjNlY2Y5ZTdiCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oCkBAIC0wLDAg
KzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIEJpbmRpbmdMb2NhdGlvbl9oCisjZGVmaW5lIEJpbmRpbmdMb2NhdGlv
bl9oCisKKyNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKyNpbmNsdWRlICJHZW5lcmljQmlu
ZGluZy5oIgorI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nTG9jYXRpb24geworcHVibGlj
OgorICAgIHN0YXRpYyB2b2lkIHJlcGxhY2UoU3RhdGU8QmluZGluZz4qLCBMb2NhdGlvbiosIGNv
bnN0IFN0cmluZyYgdXJsKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBC
aW5kaW5nTG9jYXRpb248QmluZGluZz46OnJlcGxhY2UoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBM
b2NhdGlvbiogbG9jYXRpb24sIGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIEZyYW1lKiBmcmFt
ZSA9IGxvY2F0aW9uLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsK
KworICAgIEtVUkwgZnVsbFVSTCA9IGNvbXBsZXRlVVJMKHN0YXRlLCB1cmwpOworICAgIGlmIChm
dWxsVVJMLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIUJpbmRpbmdTZWN1
cml0eTxCaW5kaW5nPjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKHN0YXRlLCBmcmFtZSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIEJpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0ZUlmQWxsb3dlZChzdGF0
ZSwgZnJhbWUsIGZ1bGxVUkwsIHRydWUsIHRydWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBCaW5kaW5nTG9jYXRpb25faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvR2VuZXJpY0JpbmRpbmcuaAppbmRleCBkMDMwYjQ1ODQxNzBmMDAxZjI2NjQzYmJkOGNkYWVk
Y2M1YzM1Mjk0Li44YmYxMzQzOTgxZTZkYjAyZmIxYmI5NDliMmJlNjMyNTVjMDVhYmNiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaApAQCAtMzEsNiArMzEsOSBA
QAogI2lmbmRlZiBHZW5lcmljQmluZGluZ19oCiAjZGVmaW5lIEdlbmVyaWNCaW5kaW5nX2gKIAor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBVc2VkIHRvIGluc3RhbnRpYXRlIGJpbmRpbmcgdGVtcGxhdGVzIGZv
ciBhbnkgbWV0aG9kcyBzaGFyZWQgYW1vbmcgYWxsCkBAIC00Nyw2ICs1MCwxNyBAQCBjbGFzcyBT
dGF0ZTxHZW5lcmljQmluZGluZz4gewogICAgIC8vIEFueSBtZXRob2RzIHNoYXJlZCBhY3Jvc3Mg
YmluZGluZ3MgY2FuIGdvIGhlcmUuCiB9OwogCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK0tV
UkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBjb25zdCBTdHJpbmcmIHJlbGF0
aXZlVVJMKQoreworICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHdlIG5lZWQgdG8gY29t
cGxldGUgdGhlIFVSTCB1c2luZyB0aGUKKyAgICAvLyBkeW5hbWljIGZyYW1lLgorICAgIEZyYW1l
KiBmcmFtZSA9IHN0YXRlLT5nZXRGaXJzdEZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAg
ICAgcmV0dXJuIEtVUkwoKTsKKyAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVS
TChyZWxhdGl2ZVVSTCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEdlbmVyaWNCaW5kaW5nX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MmM5YmVhZGQ2YTVlNzcxZDE4ODY5NDI2
ZjVmZWIyYjI1MDFiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTQmluZGluZ19oCisjZGVmaW5lIEpT
QmluZGluZ19oCisKKyNpbmNsdWRlICJCaW5kaW5nRnJhbWUuaCIKKyNpbmNsdWRlICJCaW5kaW5n
TG9jYXRpb24uaCIKKyNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisvLyBJbnN0YW50aWF0ZSBiaW5kaW5nIHRlbXBsYXRlIGNsYXNzZXMgZm9yIEpT
Qy4KK2NsYXNzIEpTQmluZGluZyB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBCaW5kaW5nRnJhbWU8
SlNCaW5kaW5nPiBGcmFtZTsKKyAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxKU0JpbmRpbmc+
IExvY2F0aW9uOworfTsKKwordHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8SlNCaW5kaW5nPiBKU0Jp
bmRpbmdTZWN1cml0eTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNC
aW5kaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbElu
T25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRl
eCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3ZTAzZWM1MjljMzU4MWM4YjcxLi42ZTFjYzFlMjNiYTFh
ZjgzNGNmMzc5ZTMzYmE1YmNmZWI5M2FiZmU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiR0NDb250cm9s
bGVyLmNwcCIKICNpbmNsdWRlICJKU0F0dHJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9D
b25zdHJ1Y3Rvci5jcHAiCisjaW5jbHVkZSAiSlNCaW5kaW5nU3RhdGUuY3BwIgogI2luY2x1ZGUg
IkpTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuY3BwCmluZGV4IDk2Mzk0ZWI3NWJkYmIxMmZlNDA3ZjAzMjAyMmRiZDU3Y2M4Njdh
YTMuLjc0YzgxMzExMjNmNDMwMDU0NTg4MGM1ODIxYWI5ZGQ4ODc0ODI3YjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTM4LDExICszOCwxNCBAQAogI2luY2x1ZGUgIkhU
TUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1M
U2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmlu
ZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01Db3JlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0RlYnVnV3JhcHBlclNldC5oIgogI2lu
Y2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU0V4Y2VwdGlvbkJhc2UuaCIK
KyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIK
ICNpbmNsdWRlICJKU1JhbmdlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVz
dEV4Y2VwdGlvbi5oIgpAQCAtNjM5LDggKzY0Miw4IEBAIGJvb2wgYWxsb3dzQWNjZXNzRnJvbUZy
YW1lKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBTdHJpbmcmIG1lc3NhZ2UpCiAKIGJv
b2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lKQog
ewotICAgIEZyYW1lKiBsZXhpY2FsRnJhbWUgPSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICBy
ZXR1cm4gbGV4aWNhbEZyYW1lICYmIGxleGljYWxGcmFtZS0+bG9hZGVyKCktPnNob3VsZEFsbG93
TmF2aWdhdGlvbihmcmFtZSk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUoZXhlYyk7CisgICAg
cmV0dXJuIEpTQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd05hdmlnYXRpb24oJnN0YXRlLCBm
cmFtZSk7CiB9CiAKIGJvb2wgYWxsb3dTZXR0aW5nU3JjVG9KYXZhc2NyaXB0VVJMKEV4ZWNTdGF0
ZSogZXhlYywgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKQpAQCAtNjcxLDI2ICs2NzQsMjMgQEAgdm9pZCBwcmludEVycm9yTWVzc2FnZUZv
ckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogCiBGcmFtZSogdG9M
ZXhpY2FsRnJhbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIHJldHVybiBhc0pTRE9NV2luZG93
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPmltcGwoKS0+ZnJhbWUoKTsKKyAgICByZXR1
cm4gSlNCaW5kaW5nU3RhdGUoZXhlYykuZ2V0QWN0aXZlRnJhbWUoKTsKIH0KIAogRnJhbWUqIHRv
RHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICByZXR1cm4gYXNKU0RPTVdpbmRv
dyhleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7CisgICAgcmV0
dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdldEZpcnN0RnJhbWUoKTsKIH0KIAogYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKQogewotICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKTsKKyAgICByZXR1cm4gSlNCaW5kaW5nU3RhdGUoSlNNYWluVGhy
ZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9
CiAKIEtVUkwgY29tcGxldGVVUkwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHJlbGF0
aXZlVVJMKQogewotICAgIC8vIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHdlIG5lZWQgdG8gY29t
cGxldGUgdGhlIFVSTCB1c2luZyB0aGUgZHluYW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUg
PSB0b0R5bmFtaWNGcmFtZShleGVjKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4g
S1VSTCgpOwotICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJlbGF0aXZl
VVJMKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZShleGVjKTsKKyAgICByZXR1cm4gY29tcGxl
dGVVUkwoJnN0YXRlLCByZWxhdGl2ZVVSTCk7CiB9CiAKIEpTVmFsdWUgb2JqZWN0VG9TdHJpbmdG
dW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlv
bkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmlu
ZGV4IDk5MTY2Y2Q5MTU3Y2IwOWQ4MDY1YTEyZGQ3YzY0NzdmNzQ2Nzc0MzMuLjA5ZTcyOTRhYTBk
Zjc3NjJhODlkMjk2ZDg4Mjk2MDhjMzAwYmU5MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xv
Y2F0aW9uQ3VzdG9tLmNwcApAQCAtMjcsNiArMjcsOCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5j
bHVkZSAiSlNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1
ZGUgIktVUkwuaCIKQEAgLTE4NiwxMiArMTg4LDggQEAgdm9pZCBKU0xvY2F0aW9uOjpkZWZpbmVH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEoK
IAogc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0Zv
cndhcmRMaXN0KQogewotICAgIEZyYW1lKiBsZXhpY2FsRnJhbWUgPSB0b0xleGljYWxGcmFtZShl
eGVjKTsKLSAgICBpZiAoIWxleGljYWxGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IGFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVj
LCBmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxv
Y2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgbGV4aWNhbEZyYW1lLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkpOworICAgIEpTQmluZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOworICAgIEpT
QmluZGluZzo6RnJhbWU6Om5hdmlnYXRlSWZBbGxvd2VkKCZzdGF0ZSwgZnJhbWUsIHVybCwgbG9j
a0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiB2b2lkIEpTTG9jYXRpb246OnNl
dEhyZWYoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQpAQCAtMzAzLDE4ICszMDEsOCBA
QCB2b2lkIEpTTG9jYXRpb246OnNldEhhc2goRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQogCiBKU1ZhbHVlIEpTTG9jYXRpb246OnJlcGxhY2UoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJsID0gY29tcGxldGVVUkwoZXhl
YywgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7Ci0g
ICAgaWYgKHVybC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAg
ICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihleGVjLCBmcmFtZSkpCi0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZXhlYywgZnJhbWUsIHVy
bCwgdHJ1ZSwgdHJ1ZSk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUoZXhlYyk7CisgICAgSlNC
aW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZSgmc3RhdGUsIGltcGwoKSwgdXN0cmluZ1RvU3RyaW5n
KGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7CiAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRp
b24vSlNCaW5kaW5nU3RhdGUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlv
bi9KU0JpbmRpbmdTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUwYjgxMzE4ZjU3N2MyZTNhZTJhYTVi
MzQwNzA3MzMzZjMxY2Q4YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
c3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nU3RhdGUuaCIKKworI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCisjaW5jbHVkZSAiSlNET01XaW5k
b3dDdXN0b20uaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK0ZyYW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRB
Y3RpdmVGcmFtZSgpCit7CisgICAgcmV0dXJuIGFzSlNET01XaW5kb3cobV9leGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7Cit9CisKK0ZyYW1lKiBTdGF0ZTxKU0Jp
bmRpbmc+OjpnZXRGaXJzdEZyYW1lKCkKK3sKKyAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhtX2V4
ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSktPmltcGwoKS0+ZnJhbWUoKTsKK30KKworYm9vbCBT
dGF0ZTxKU0JpbmRpbmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQoreworICAgIHJldHVybiBT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKK30KKworYm9vbCBTdGF0
ZTxKU0JpbmRpbmc+OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUqIGZyYW1lKQoreworICAg
IHJldHVybiBXZWJDb3JlOjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUobV9leGVjLCBmcmFtZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
c3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjQwMTQwMWY1NmI5
NjhhMWU1NmNhZDUzYTk3YzhiZmY0OTNlODgwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oCkBAIC0wLDAgKzEsNzUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEpTQmluZGluZ1N0YXRlX2gKKyNkZWZpbmUgSlNCaW5kaW5nU3RhdGVfaAorCisj
aW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKworbmFt
ZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK3RlbXBsYXRlIDw+CitjbGFz
cyBTdGF0ZTxKU0JpbmRpbmc+IDogcHVibGljIFN0YXRlPEdlbmVyaWNCaW5kaW5nPiB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgU3RhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCisgICAgICAgIDog
bV9leGVjKGV4ZWMpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgflN0YXRlKCkKKyAgICB7
CisgICAgfQorCisgICAgRnJhbWUqIGdldEFjdGl2ZUZyYW1lKCk7CisgICAgRnJhbWUqIGdldEZp
cnN0RnJhbWUoKTsKKworICAgIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisKKyAgICAv
LyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIGluIEJpbmRpbmdTZWN1cml0eQorICAgIGJv
b2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKik7CisKK3ByaXZhdGU6CisgICAgSlNDOjpF
eGVjU3RhdGUqIG1fZXhlYzsKK307CisKK3R5cGVkZWYgU3RhdGU8SlNCaW5kaW5nPiBKU0JpbmRp
bmdTdGF0ZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNCaW5kaW5n
U3RhdGVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggNTg5ODllZDhjZDU0MzgwOTU0YTk3
NDVkZTFmNzA4MjVkOTg4OWZiNC4uNTY2ZThhYzlhYzUyZTk4ZmM1ZTkyMWNkZDU0YmQwMjI0MDA3
YzNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zMSw2ICszMSw4IEBACiAjaWZuZGVm
IFY4QmluZGluZ19oCiAjZGVmaW5lIFY4QmluZGluZ19oCiAKKyNpbmNsdWRlICJCaW5kaW5nRnJh
bWUuaCIKKyNpbmNsdWRlICJCaW5kaW5nTG9jYXRpb24uaCIKICNpbmNsdWRlICJCaW5kaW5nU2Vj
dXJpdHkuaCIKICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKQEAgLTUwLDE2ICs1MiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAg
dHlwZWRlZiBWOEJpbmRpbmdET01XaW5kb3cgRE9NV2luZG93OworICAgICAgICB0eXBlZGVmIEJp
bmRpbmdGcmFtZTxWOEJpbmRpbmc+IEZyYW1lOworICAgICAgICB0eXBlZGVmIEJpbmRpbmdMb2Nh
dGlvbjxWOEJpbmRpbmc+IExvY2F0aW9uOwogCiAgICAgICAgIHN0YXRpYyBWYWx1ZSBlbXB0eVNj
cmlwdFZhbHVlKCkgeyByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT4oKTsgfQogICAgIH07CiAg
ICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8VjhCaW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsK
LSAgICAKKwogICAgIGVudW0gRXh0ZXJuYWxNb2RlIHsKICAgICAgICAgRXh0ZXJuYWxpemUsCiAg
ICAgICAgIERvTm90RXh0ZXJuYWxpemUKICAgICB9OwotICAgIAorCiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIFN0cmluZ1R5cGU+CiAgICAgU3RyaW5nVHlwZSB2OFN0cmluZ1RvV2ViQ29yZVN0cmlu
Zyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3RyaW5nLCBFeHRlcm5hbE1vZGUgZXh0ZXJuYWwp
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmluZGV4IDJlNWNmOGIwZjUyNzZmNzc2
M2ZmMzY5YzRlNDA1NzIzOWZkYTBkYjAuLjQ2NDUzNWU4ZTk4ODE1MDIxODY4MDAxM2UwZTJhMGU1
ZjMwMzVmOTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCkBAIC0zOCw3ICszOCw2
IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlw
dFN0YXRlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nRE9N
V2luZG93LmgiIC8vIEZJWE1FOiByZW1vdmUgd2hlbiBjb21wbGV0ZVVSTCBtb3ZlcwogI2luY2x1
ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIldv
cmtlckNvbnRleHQuaCIKQEAgLTExMiwxNiArMTExLDEyIEBAIGJvb2wgc2hvdWxkQWxsb3dOYXZp
Z2F0aW9uKEZyYW1lKiBmcmFtZSkKIAogS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHJl
bGF0aXZlVVJMKQogewotICAgIHJldHVybiBWOEJpbmRpbmdET01XaW5kb3c6OmNvbXBsZXRlVVJM
KFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJlbGF0aXZlVVJMKTsKKyAgICByZXR1cm4gVjhCaW5k
aW5nOjpGcmFtZTo6Y29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgcmVsYXRpdmVV
UkwpOwogfQogCiB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VS
TCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0g
ICAgRnJhbWUqIGNhbGxpbmdPckVudGVyZWQgPSBjYWxsaW5nT3JFbnRlcmVkRnJhbWUoKTsKLSAg
ICBpZiAoIWNhbGxpbmdPckVudGVyZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIXByb3Rv
Y29sSXNKYXZhU2NyaXB0KHVybCkgfHwgU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZy
YW1lKSkKLSAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRp
b25DaGFuZ2UodXJsLnN0cmluZygpLCBjYWxsaW5nT3JFbnRlcmVkLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkpOworICAgIHJldHVybiBWOEJpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0ZUlm
QWxsb3dlZChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBmcmFtZSwgdXJsLCBsb2NrSGlzdG9yeSA/
IFY4QmluZGluZzo6RnJhbWU6OkxvY2tlZEhpc3RvcnkgOiBWOEJpbmRpbmc6OkZyYW1lOjpVbmxv
Y2tlZEhpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QgPyBWOEJpbmRpbmc6OkZyYW1lOjpMb2Nr
ZWRCYWNrRm9yd2FyZExpc3QgOiBWOEJpbmRpbmc6OkZyYW1lOjpVbmxvY2tlZEJhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlv
bkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9t
LmNwcAppbmRleCBhYzMwNWM5N2YwMDliYzBkYWJmMWI0YTdkYjBlYWEyZWJjMjk4NmI1Li42MDY4
YWEyMWEyNjFlZjk0YmNjMWYyZGEwYWYzZWUwNDc0NGI4ZWNkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjkyLDE5ICsyOTIsNyBA
QCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6cmVwbGFjZUNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJET00uTG9jYXRpb24ucmVwbGFj
ZSIpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gYXJncy5Ib2xkZXIoKTsK
ICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKLQotICAg
IEZyYW1lKiBmcmFtZSA9IGltcC0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgS1VSTCB1cmwgPSBjb21wbGV0ZVVSTCh0b1dl
YkNvcmVTdHJpbmcoYXJnc1swXSkpOwotICAgIGlmICh1cmwuaXNOdWxsKCkpCi0gICAgICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihm
cmFtZSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBuYXZpZ2F0ZUlm
QWxsb3dlZChmcmFtZSwgdXJsLCB0cnVlLCB0cnVlKTsKKyAgICBWOEJpbmRpbmc6OkxvY2F0aW9u
OjpyZXBsYWNlKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcCwgdG9XZWJDb3JlU3RyaW5nKGFy
Z3NbMF0pKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCkBAIC0zNzgsNCArMzY2
LDMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTG9jYXRpb24qIGltcGwpCiB9CiAKIH0g
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
c3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9z
cGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKaW5kZXggY2NkZDdjOGNlNzI1NmE2NGUx
YTU3YTE1NWZiNmU3MDUyMDYzODE4Ni4uMjE5M2M5ZjMyODJiMTAxN2MzMTk3NTEwM2U3MTQ5OWEw
YTQ5YWYyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9W
OEJpbmRpbmdTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlv
bi9WOEJpbmRpbmdTdGF0ZS5jcHAKQEAgLTg0LDQgKzg0LDkgQEAgYm9vbCBTdGF0ZTxWOEJpbmRp
bmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAorYm9vbCBTdGF0ZTxWOEJpbmRpbmc+Ojph
bGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUqIGZyYW1lKQoreworICAgIHJldHVybiBTY3JpcHRD
b250cm9sbGVyOjppc1NhZmVTY3JpcHQoZnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4Qmlu
ZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGlu
Z1N0YXRlLmgKaW5kZXggYmFiYTBjNjNjMDg4ZmY3MTQ4NThkNGQwNmI5ZGZmY2JjMDQxYTcyYy4u
MTQzMDViODgyNWYzMGEyNmUyNmI4NWRkZjMyMWY2NDE5ZmY0MDdmZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuaApAQCAtNjAs
NiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwog
CisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNoYXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkK
KyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShGcmFtZSopOworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFN0YXRlKCkge30KICAgICB+U3RhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66525</attachid>
            <date>2010-09-03 11:50:45 -0700</date>
            <delta_ts>2010-09-09 02:19:52 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-44891-20100904035042.patch</filename>
            <type>text/plain</type>
            <size>42414</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDM1MDRjMDUzYWY5NWUwMWQ5YzJjYTZmOWRlYjIyNTEzOTYxNTQ0ZS4uYzA3MmUwODViNGE5MGVk
Y2E4NjY2YTcxNWRkNTU3MWM0MmU2ZTMxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMC0wOS0wMSAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cu
aDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
Ojo6b3Blbik6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjo6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKiBi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6cmVwbGFjZSk6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGlu
Zy5oOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQmluZGluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6dG9MZXhpY2FsRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbXBsZXRlVVJMKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTTG9jYXRpb246OnJlcGxhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNp
YWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6
OmdldEFjdGl2ZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0Rmlyc3RGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjo6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJD
b3JlOjo6OmFsbG93c0FjY2Vzc0Zyb21GcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMvc3Bl
Y2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdh
dGVJZkFsbG93ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmg6CisKIDIwMTAtMDkt
MDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBkMzYxODEwNjdlMWYzYzU2MmRjN2VjOWZlMjU5
ZDc0NDA4NjkzMTVjLi41M2Y3Nzc4ZTYxY2I4YzZkNTcwYjUyZjdiMmFhNGNjMzM2NWEwYTM0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTksNiArOSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIp
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwktSSQoc3JjZGly
KS9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uIFwKIAktSSQoc3JjZGlyKS9XZWJD
b3JlL2JpbmRpbmdzL2dvYmplY3QgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdlIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL2JyaWRnZS9jIFwKQEAgLTYyMyw2ICs2MjQsMTIgQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Um93LmggXAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAg
XAogCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oIFwKKwlXZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmggXAorCVdlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdTZWN1cml0eS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlC
YXNlLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdlYkNv
cmUvYmluZGluZ3MvanMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC03OTYsNiAr
ODAzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVBy
b3ZpZGVyLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIFwK
KwlXZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5oIFwKIAlXZWJDb3JlL2JyaWRnZS9CcmlkZ2Uu
aCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDY1MDIyMDI1MDBiNmUxYWEyNmYxMjQwYTlmMTYxYTAyZTQzOGViOWQuLmJkZmVm
NWEyZTc0Njg2YjAxY2IwMmZmZWE2OGNkNTAyNmY4N2I3NWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTIsNiArNTEyLDgg
QEAKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLApAQCAtNTMxLDYgKzUzMyw3IEBACiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNB
dWRpb0NvbnN0cnVjdG9yLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQmluZGluZy5o
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0aW9u
Q3VzdG9tLmNwcCcsCkBAIC03MTAsNiArNzEzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9XZWJDb3JlSlNDbGllbnREYXRhLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0
aW9uL0pTQmluZGluZ1N0YXRlLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3BlY2lh
bGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvU2NyaXB0
Q29udHJvbGxlckJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250cm9s
bGVyQmFzZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9DaGlsZFRocmVhZERPTURhdGEu
Y3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCmluZGV4IDNmMjNjZGRkYTA4ODVhZmU1MDM1YTkyMjk5ZjdjZDcyNzlhNGZhNWMuLjgzNTA4
OTI5NzRhYTZiNjI4ZWRjM2QxNGQ0YjRiY2ZiNmI1OTU5MGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTg0LDYgKzE4NCw3IEBA
IFdFQkNPUkVfSU5DTFVERVBBVEggPSBcCiAgICAgJCRQV0QvYmluZGluZ3MgXAogICAgICQkUFdE
L2JpbmRpbmdzL2dlbmVyaWMgXAogICAgICQkUFdEL2JpbmRpbmdzL2pzIFwKKyAgICAkJFBXRC9i
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbiBcCiAgICAgJCRQV0QvYnJpZGdlIFwKICAgICAkJFBX
RC9icmlkZ2UvYyBcCiAgICAgJCRQV0QvYnJpZGdlL2pzYyBcCkBAIC0zOTIsNiArMzkzLDcgQEAg
U09VUkNFUyArPSBcCiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwIFwKICAgICBiaW5k
aW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRp
bmdTdGF0ZS5jcHAgXAogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBcCiAg
ICAgYnJpZGdlL0lkZW50aWZpZXJSZXAuY3BwIFwKICAgICBicmlkZ2UvTlBfanNvYmplY3QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGYzZTQ5ZjVkM2QxZWVl
ZTk1MGQ0Y2QyMDJkOGZiZTJjNjY5OGQ0ZGUuLjljZTNiMWZiYWNhNGI2ZDk1ODM3MDlmYzcyOTEw
ZDNhZGE2NzViMmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDE5
NjcsNiArNDE5NjcsMzAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmlj
XEFjdGl2ZURPTUNhbGxiYWNrLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nRnJhbWUuaCIN
CisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNc
QmluZGluZ1NlY3VyaXR5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNl
LmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4N
CisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQk8
L0ZpbHRlcj4NCiAJCQk8RmlsdGVyDQogCQkJCU5hbWU9ImdlbmVyaWMiDQpAQCAtNDIzMjQsNiAr
NDIzNDgsMTAgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCkBAIC00OTYxOSw2ICs0
OTY0Nyw2MiBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXFdvcmtlclNjcmlw
dENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0
ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+
DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRlcj4NCiAJCTxGaWx0ZXINCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4Yjg4ZWMyNGJlMzI1NDY1MWFlYTE5
ODg4NjQ2YmIxYWI1MjMxNjEuLmRiOTZjZTIwNDE3MjllZTkzNzNmNzZlM2FmOTVlZDhmYjNjYTA3
ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODM3
LDYgKzI4MzcsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBo
b25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU5
RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tICovOyB9OwogCQlBNUFG
QjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1MTUxQTcwMEIwNDVDQiAvKiBT
dGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNUFG
QjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87IH07CisJCUE2MjJBOEVFMTIy
QzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcu
aCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEYw
MTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi87IH07CisJCUE2MjJBOEYz
MTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpT
QmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLzsgfTsK
KwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjUxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlBNjIyQThGQzEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFz
ZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4
RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLzsgfTsKKwkJQTYyMkE4
RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyog
R2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERy
YWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRy
b2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJT
VkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwICovOyB9OwpA
QCAtODcwNyw2ICs4NzE2LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVw
UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RlcFJhbmdlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0ODVGRjEwMDY2RjJBQiAvKiBL
ZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEtleUV2ZW50
Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlFdmVudENvY29hLm1t
OyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmluZGluZ1N0YXRlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8q
IEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmlu
ZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY0MTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdMb2NhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNTEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8qIEJp
bmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0
eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNzEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdT
ZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjgxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY5MTIyQzQ0QTYw
MEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyog
RHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2
RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDUyLDYgKzE0NDcwLDE1IEBACiAJCQluYW1lID0gY29jb2E7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlBNjIyQThFRjEyMkM0NDQ1MDBB
Nzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0
ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRl
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9uOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTYwNjksNiAr
MTYwOTYsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMxREY4MTFDRjYxMEIwMDlGMjJC
NCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVEMzFERjkxMUNGNjEwQjAwOUYy
MkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYyMkE4RjQxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMg
LyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNjIyQThGODEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3
ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBnZW5lcmljOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTA4LDYgKzE2MTQxLDcgQEAKIAkJCQlC
Q0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2JqZWN0cyAqLywKIAkJCQlCQ0NF
NThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICovLAogCQkJCUJDNEVERUY3MEMw
OEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4RUYxMjJDNDQ0NTAwQTc4NUIz
IC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4Rjc2OSAvKiBE
ZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hl
ZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZFQTAwRjYxQUI4
IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTIxLDYgKzE2MTU1LDcgQEAKIAkJCQlD
NTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5oICovLAogCQkJ
CTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywK
IAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxGcmFtZS5oICov
LAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCAqLywKIAkJCQlC
QzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3BwICovLAogCQkJ
CUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5oICovLAogCQkJ
CTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwICovLApAQCAtMjA0
MzIsNiArMjA0NjcsMTMgQEAKIAkJCQk4OTg3ODVCOTEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRh
ZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGMTEyMkUxRTg3MDAzQUFC
REEgLyogSlNGaWxlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGNTEyMkUx
RUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYy
MkE4RUUxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTYyMkE4RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNjIyQThGQTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGRDEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkUxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZG
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
Mjg5NSw2ICsyMjkzNyw4IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0
YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVGMDEyMkUxRTg3MDAz
QUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUY0
MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE2MjJBOEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5
QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nRE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGlu
Z0RPTVdpbmRvdy5oCmluZGV4IDBjNDUwYTVkN2FmNTg1YmE1NTdhYjc5NmE4ZTYwMTJlOTNiNDY3
ODYuLjk2YjhiOWQ0ZTc0NWNjZTZjNGQwYjFkMmFkZmZjNzc5ZWI5MDEyMTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtNjUsOSArNjUsNiBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdp
bmRvd0ZlYXR1cmVzJiByYXdGZWF0dXJlcyk7CiAKLSAgICAvLyBGSVhNRTogVGhlcmUgc2hvdWxk
IGJlIGEgcGxhY2UgZm9yIGdlbmVyaWMgYmluZGluZyB1dGlsaXRpZXMuCi0gICAgc3RhdGljIEtV
UkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJM
KTsKLQogcHJpdmF0ZToKICAgICAvLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBvZmZzZXQsIGZy
b20gdGhlIHBhcmVudCBjb250ZW50IGFyZWEsCiAgICAgLy8gYXJvdW5kIG5ld2x5IG9wZW5lZCBw
b3B1cHMgdGhhdCBkb24ndCBzcGVjaWZ5IGEgbG9jYXRpb24uCkBAIC0yNjgsMTggKzI2NSw2IEBA
IFdlYkNvcmU6OkRPTVdpbmRvdyogQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0
ZTxCaW5kaW5nPiogc3RhdGUsCiAgICAgcmV0dXJuIGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAot
dGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Ci1LVVJMIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46
OmNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAg
ICAvLyBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwg
dXNpbmcgdGhlCi0gICAgLy8gZHluYW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0
ZS0+Z2V0Rmlyc3RGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJM
KCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2lu
ZG93X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUu
aCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MWZkYzc5NDU2YWNjOGJiNDRmMDQzZmU0NmI3NGJmMGM0YjM3ZTQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdGcmFtZS5oCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEJpbmRpbmdGcmFtZV9oCisjZGVmaW5lIEJpbmRpbmdGcmFtZV9oCisKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nRnJhbWUg
eworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRp
bmc+KiwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFj
a0ZvcndhcmRMaXN0KTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5k
aW5nRnJhbWU8QmluZGluZz46Om5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiBzdGF0
ZSwgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wg
bG9ja0JhY2tGb3J3YXJkTGlzdCkKK3sKKyAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0ZS0+
Z2V0QWN0aXZlRnJhbWUoKTsKKyAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IHN0YXRlLT5hbGxvd3NBY2Nl
c3NGcm9tRnJhbWUoZnJhbWUpKQorICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+
c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwg
c3RhdGUtPnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gQmluZGluZ0ZyYW1lX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nTG9jYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTUyODE0YTlkOWYxMWU5YzdiMjhhZTc1
YjQ5YzhkNjNlY2Y5ZTdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdMb2NhdGlvbi5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJpbmRpbmdMb2Nh
dGlvbl9oCisjZGVmaW5lIEJpbmRpbmdMb2NhdGlvbl9oCisKKyNpbmNsdWRlICJCaW5kaW5nU2Vj
dXJpdHkuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorI2luY2x1ZGUgIkxvY2F0aW9u
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+Citj
bGFzcyBCaW5kaW5nTG9jYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHJlcGxhY2Uo
U3RhdGU8QmluZGluZz4qLCBMb2NhdGlvbiosIGNvbnN0IFN0cmluZyYgdXJsKTsKK307CisKK3Rl
bXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5nTG9jYXRpb248QmluZGluZz46OnJl
cGxhY2UoU3RhdGU8QmluZGluZz4qIHN0YXRlLCBMb2NhdGlvbiogbG9jYXRpb24sIGNvbnN0IFN0
cmluZyYgdXJsKQoreworICAgIEZyYW1lKiBmcmFtZSA9IGxvY2F0aW9uLT5mcmFtZSgpOworICAg
IGlmICghZnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIEtVUkwgZnVsbFVSTCA9IGNvbXBs
ZXRlVVJMKHN0YXRlLCB1cmwpOworICAgIGlmIChmdWxsVVJMLmlzTnVsbCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6c2hvdWxkQWxsb3dO
YXZpZ2F0aW9uKHN0YXRlLCBmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEJpbmRpbmc6
OkZyYW1lOjpuYXZpZ2F0ZUlmQWxsb3dlZChzdGF0ZSwgZnJhbWUsIGZ1bGxVUkwsIHRydWUsIHRy
dWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBCaW5kaW5nTG9j
YXRpb25faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5k
aW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaAppbmRleCBk
MDMwYjQ1ODQxNzBmMDAxZjI2NjQzYmJkOGNkYWVkY2M1YzM1Mjk0Li44YmYxMzQzOTgxZTZkYjAy
ZmIxYmI5NDliMmJlNjMyNTVjMDVhYmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvR2VuZXJpY0JpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2Vu
ZXJpY0JpbmRpbmcuaApAQCAtMzEsNiArMzEsOSBAQAogI2lmbmRlZiBHZW5lcmljQmluZGluZ19o
CiAjZGVmaW5lIEdlbmVyaWNCaW5kaW5nX2gKIAorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBVc2VkIHRvIGlu
c3RhbnRpYXRlIGJpbmRpbmcgdGVtcGxhdGVzIGZvciBhbnkgbWV0aG9kcyBzaGFyZWQgYW1vbmcg
YWxsCkBAIC00Nyw2ICs1MCwxNyBAQCBjbGFzcyBTdGF0ZTxHZW5lcmljQmluZGluZz4gewogICAg
IC8vIEFueSBtZXRob2RzIHNoYXJlZCBhY3Jvc3MgYmluZGluZ3MgY2FuIGdvIGhlcmUuCiB9Owog
Cit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK0tVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGlu
Zz4qIHN0YXRlLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQoreworICAgIC8vIEZvciBoaXN0
b3JpY2FsIHJlYXNvbnMsIHdlIG5lZWQgdG8gY29tcGxldGUgdGhlIFVSTCB1c2luZyB0aGUKKyAg
ICAvLyBkeW5hbWljIGZyYW1lLgorICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRlLT5nZXRGaXJzdEZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICByZXR1
cm4gZnJhbWUtPmxvYWRlcigpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7Cit9CisKIH0KIAog
I2VuZGlmIC8vIEdlbmVyaWNCaW5kaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI0MmM5YmVhZGQ2YTVlNzcxZDE4ODY5NDI2ZjVmZWIyYjI1MDFiMGYKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEpTQmluZGluZ19oCisjZGVmaW5lIEpTQmluZGluZ19oCisKKyNpbmNsdWRlICJCaW5k
aW5nRnJhbWUuaCIKKyNpbmNsdWRlICJCaW5kaW5nTG9jYXRpb24uaCIKKyNpbmNsdWRlICJCaW5k
aW5nU2VjdXJpdHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBJbnN0YW50aWF0ZSBi
aW5kaW5nIHRlbXBsYXRlIGNsYXNzZXMgZm9yIEpTQy4KK2NsYXNzIEpTQmluZGluZyB7CitwdWJs
aWM6CisgICAgdHlwZWRlZiBCaW5kaW5nRnJhbWU8SlNCaW5kaW5nPiBGcmFtZTsKKyAgICB0eXBl
ZGVmIEJpbmRpbmdMb2NhdGlvbjxKU0JpbmRpbmc+IExvY2F0aW9uOworfTsKKwordHlwZWRlZiBC
aW5kaW5nU2VjdXJpdHk8SlNCaW5kaW5nPiBKU0JpbmRpbmdTZWN1cml0eTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNCaW5kaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3ZTAz
ZWM1MjljMzU4MWM4YjcxLi42ZTFjYzFlMjNiYTFhZjgzNGNmMzc5ZTMzYmE1YmNmZWI5M2FiZmU3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJKU0F0dHJD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQXVkaW9Db25zdHJ1Y3Rvci5jcHAiCisjaW5jbHVkZSAi
SlNCaW5kaW5nU3RhdGUuY3BwIgogI2luY2x1ZGUgIkpTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU0NTU1J1bGVDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3RD
dXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDk2Mzk0ZWI3
NWJkYmIxMmZlNDA3ZjAzMjAyMmRiZDU3Y2M4NjdhYTMuLjc0YzgxMzExMjNmNDMwMDU0NTg4MGM1
ODIxYWI5ZGQ4ODc0ODI3YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAg
LTM4LDExICszOCwxNCBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNE
T01Db3JlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNs
dWRlICJKU0RlYnVnV3JhcHBlclNldC5oIgogI2luY2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uaCIK
ICNpbmNsdWRlICJKU0V4Y2VwdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVj
U3RhdGUuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1JhbmdlRXhjZXB0aW9u
LmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIgpAQCAtNjM5LDggKzY0
Miw4IEBAIGJvb2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUq
IGZyYW1lLCBTdHJpbmcmIG1lc3NhZ2UpCiAKIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lKQogewotICAgIEZyYW1lKiBsZXhpY2FsRnJhbWUg
PSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICByZXR1cm4gbGV4aWNhbEZyYW1lICYmIGxleGlj
YWxGcmFtZS0+bG9hZGVyKCktPnNob3VsZEFsbG93TmF2aWdhdGlvbihmcmFtZSk7CisgICAgSlNC
aW5kaW5nU3RhdGUgc3RhdGUoZXhlYyk7CisgICAgcmV0dXJuIEpTQmluZGluZ1NlY3VyaXR5Ojpz
aG91bGRBbGxvd05hdmlnYXRpb24oJnN0YXRlLCBmcmFtZSk7CiB9CiAKIGJvb2wgYWxsb3dTZXR0
aW5nU3JjVG9KYXZhc2NyaXB0VVJMKEV4ZWNTdGF0ZSogZXhlYywgRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNjcxLDI2ICs2NzQs
MjMgQEAgdm9pZCBwcmludEVycm9yTWVzc2FnZUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogCiBGcmFtZSogdG9MZXhpY2FsRnJhbWUoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIHJldHVybiBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSktPmltcGwoKS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gSlNCaW5kaW5nU3RhdGUoZXhlYykuZ2V0
QWN0aXZlRnJhbWUoKTsKIH0KIAogRnJhbWUqIHRvRHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0
KCkpLT5pbXBsKCktPmZyYW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdl
dEZpcnN0RnJhbWUoKTsKIH0KIAogYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogewotICAg
IHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKKyAgICBy
ZXR1cm4gSlNCaW5kaW5nU3RhdGUoSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUo
KSkucHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKIEtVUkwgY29tcGxldGVVUkwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQogewotICAgIC8vIEZvciBoaXN0
b3JpY2FsIHJlYXNvbnMsIHdlIG5lZWQgdG8gY29tcGxldGUgdGhlIFVSTCB1c2luZyB0aGUgZHlu
YW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gS1VSTCgpOwotICAgIHJldHVybiBmcmFtZS0+
bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBz
dGF0ZShleGVjKTsKKyAgICByZXR1cm4gY29tcGxldGVVUkwoJnN0YXRlLCByZWxhdGl2ZVVSTCk7
CiB9CiAKIEpTVmFsdWUgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk5MTY2Y2Q5MTU3Y2IwOWQ4MDY1YTEy
ZGQ3YzY0NzdmNzQ2Nzc0MzMuLjA5ZTcyOTRhYTBkZjc3NjJhODlkMjk2ZDg4Mjk2MDhjMzAwYmU5
MTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjcsNiAr
MjcsOCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNCaW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTE4NiwxMiArMTg4
LDggQEAgdm9pZCBKU0xvY2F0aW9uOjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEoKIAogc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFs
bG93ZWQoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9v
bCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIEZyYW1lKiBs
ZXhpY2FsRnJhbWUgPSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICBpZiAoIWxleGljYWxGcmFt
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwp
IHx8IGFsbG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5y
ZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwg
bGV4aWNhbEZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIEpTQmlu
ZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6RnJhbWU6Om5hdmlnYXRlSWZB
bGxvd2VkKCZzdGF0ZSwgZnJhbWUsIHVybCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExp
c3QpOwogfQogCiB2b2lkIEpTTG9jYXRpb246OnNldEhyZWYoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlIHZhbHVlKQpAQCAtMzAzLDE4ICszMDEsOCBAQCB2b2lkIEpTTG9jYXRpb246OnNldEhhc2go
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogCiBKU1ZhbHVlIEpTTG9jYXRpb246OnJl
cGxhY2UoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJh
bWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQot
ICAgIEtVUkwgdXJsID0gY29tcGxldGVVUkwoZXhlYywgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFy
Z3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7Ci0gICAgaWYgKHVybC5pc051bGwoKSkKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlv
bihleGVjLCBmcmFtZSkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgbmF2
aWdhdGVJZkFsbG93ZWQoZXhlYywgZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgSlNCaW5k
aW5nU3RhdGUgc3RhdGUoZXhlYyk7CisgICAgSlNCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZSgm
c3RhdGUsIGltcGwoKSwgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpKSk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTUwYjgxMzE4ZjU3N2MyZTNhZTJhYTViMzQwNzA3MzMzZjMxY2Q4YQotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3Rh
dGUuY3BwCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNC
aW5kaW5nU3RhdGUuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJTY3Jp
cHRDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisK
K0ZyYW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRBY3RpdmVGcmFtZSgpCit7CisgICAgcmV0dXJu
IGFzSlNET01XaW5kb3cobV9leGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZy
YW1lKCk7Cit9CisKK0ZyYW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRGaXJzdEZyYW1lKCkKK3sK
KyAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhtX2V4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSkt
PmltcGwoKS0+ZnJhbWUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+Ojpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKQoreworICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+OjphbGxvd3NBY2Nlc3NG
cm9tRnJhbWUoRnJhbWUqIGZyYW1lKQoreworICAgIHJldHVybiBXZWJDb3JlOjphbGxvd3NBY2Nl
c3NGcm9tRnJhbWUobV9leGVjLCBmcmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5n
U3RhdGUuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3Rh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NjQwMTQwMWY1NmI5NjhhMWU1NmNhZDUzYTk3YzhiZmY0OTNlODgw
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9K
U0JpbmRpbmdTdGF0ZS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTQmluZGluZ1N0YXRlX2gK
KyNkZWZpbmUgSlNCaW5kaW5nU3RhdGVfaAorCisjaW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIK
KyNpbmNsdWRlICJKU0JpbmRpbmcuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNT
dGF0ZTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRnJhbWU7CisKK3RlbXBsYXRlIDw+CitjbGFzcyBTdGF0ZTxKU0JpbmRpbmc+IDogcHVibGlj
IFN0YXRlPEdlbmVyaWNCaW5kaW5nPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3RhdGUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMpCisgICAgICAgIDogbV9leGVjKGV4ZWMpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgflN0YXRlKCkKKyAgICB7CisgICAgfQorCisgICAgRnJhbWUqIGdldEFj
dGl2ZUZyYW1lKCk7CisgICAgRnJhbWUqIGdldEZpcnN0RnJhbWUoKTsKKworICAgIGJvb2wgcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hh
cmVkIGluIEJpbmRpbmdTZWN1cml0eQorICAgIGJvb2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZy
YW1lKik7CisKK3ByaXZhdGU6CisgICAgSlNDOjpFeGVjU3RhdGUqIG1fZXhlYzsKK307CisKK3R5
cGVkZWYgU3RhdGU8SlNCaW5kaW5nPiBKU0JpbmRpbmdTdGF0ZTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gSlNCaW5kaW5nU3RhdGVfaApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKaW5kZXggNTg5ODllZDhjZDU0MzgwOTU0YTk3NDVkZTFmNzA4MjVkOTg4OWZiNC4uNTY2ZThh
YzlhYzUyZTk4ZmM1ZTkyMWNkZDU0YmQwMjI0MDA3YzNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oCkBAIC0zMSw2ICszMSw4IEBACiAjaWZuZGVmIFY4QmluZGluZ19oCiAjZGVmaW5lIFY4Qmlu
ZGluZ19oCiAKKyNpbmNsdWRlICJCaW5kaW5nRnJhbWUuaCIKKyNpbmNsdWRlICJCaW5kaW5nTG9j
YXRpb24uaCIKICNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKICNpbmNsdWRlICJNYXRoRXh0
cmFzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTUwLDE2ICs1MiwxOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01XaW5kb3cg
RE9NV2luZG93OworICAgICAgICB0eXBlZGVmIEJpbmRpbmdGcmFtZTxWOEJpbmRpbmc+IEZyYW1l
OworICAgICAgICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxWOEJpbmRpbmc+IExvY2F0aW9uOwog
CiAgICAgICAgIHN0YXRpYyBWYWx1ZSBlbXB0eVNjcmlwdFZhbHVlKCkgeyByZXR1cm4gdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4oKTsgfQogICAgIH07CiAgICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8
VjhCaW5kaW5nPiBWOEJpbmRpbmdTZWN1cml0eTsKLSAgICAKKwogICAgIGVudW0gRXh0ZXJuYWxN
b2RlIHsKICAgICAgICAgRXh0ZXJuYWxpemUsCiAgICAgICAgIERvTm90RXh0ZXJuYWxpemUKICAg
ICB9OwotICAgIAorCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1R5cGU+CiAgICAgU3Ry
aW5nVHlwZSB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4
U3RyaW5nLCBFeHRlcm5hbE1vZGUgZXh0ZXJuYWwpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRp
ZXMuY3BwCmluZGV4IDJlNWNmOGIwZjUyNzZmNzc2M2ZmMzY5YzRlNDA1NzIzOWZkYTBkYjAuLmU0
OTcwNzFmMjk5NTBjZDc4ZDk2MTJkZTAzMzNiMWNkYjI4MDE0YzIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhVdGlsaXRpZXMuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCi0jaW5jbHVkZSAiVjhCaW5kaW5nRE9NV2luZG93LmgiIC8vIEZJWE1FOiByZW1vdmUg
d2hlbiBjb21wbGV0ZVVSTCBtb3ZlcwogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5j
bHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKQEAgLTExMiwxNiAr
MTExLDEyIEBAIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSkKIAogS1VS
TCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQogewotICAgIHJldHVybiBW
OEJpbmRpbmdET01XaW5kb3c6OmNvbXBsZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJl
bGF0aXZlVVJMKTsKKyAgICByZXR1cm4gY29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHko
KSwgcmVsYXRpdmVVUkwpOwogfQogCiB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFt
ZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2Fy
ZExpc3QpCiB7Ci0gICAgRnJhbWUqIGNhbGxpbmdPckVudGVyZWQgPSBjYWxsaW5nT3JFbnRlcmVk
RnJhbWUoKTsKLSAgICBpZiAoIWNhbGxpbmdPckVudGVyZWQpCi0gICAgICAgIHJldHVybjsKLSAg
ICBpZiAoIXByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwgU2NyaXB0Q29udHJvbGxlcjo6aXNT
YWZlU2NyaXB0KGZyYW1lKSkKLSAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNj
aGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBjYWxsaW5nT3JFbnRlcmVkLT5sb2Fk
ZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlz
dCwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIHJldHVybiBWOEJpbmRpbmc6OkZyYW1l
OjpuYXZpZ2F0ZUlmQWxsb3dlZChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBmcmFtZSwgdXJsLCBs
b2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBhYzMwNWM5N2YwMDliYzBkYWJm
MWI0YTdkYjBlYWEyZWJjMjk4NmI1Li42MDY4YWEyMWEyNjFlZjk0YmNjMWYyZGEwYWYzZWUwNDc0
NGI4ZWNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9u
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3Vz
dG9tLmNwcApAQCAtMjkyLDE5ICsyOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2Nh
dGlvbjo6cmVwbGFjZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5D
X1NUQVRTKCJET00uTG9jYXRpb24ucmVwbGFjZSIpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gaG9sZGVyID0gYXJncy5Ib2xkZXIoKTsKICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlv
bjo6dG9OYXRpdmUoaG9sZGVyKTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IGltcC0+ZnJhbWUoKTsK
LSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAg
S1VSTCB1cmwgPSBjb21wbGV0ZVVSTCh0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSkpOwotICAgIGlm
ICh1cmwuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBp
ZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihmcmFtZSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7Ci0KLSAgICBuYXZpZ2F0ZUlmQWxsb3dlZChmcmFtZSwgdXJsLCB0cnVlLCB0cnVl
KTsKKyAgICBWOEJpbmRpbmc6OkxvY2F0aW9uOjpyZXBsYWNlKFY4QmluZGluZ1N0YXRlOjpPbmx5
KCksIGltcCwgdG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOwogfQogCkBAIC0zNzgsNCArMzY2LDMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRv
VjgoTG9jYXRpb24qIGltcGwpCiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5j
cHAKaW5kZXggY2NkZDdjOGNlNzI1NmE2NGUxYTU3YTE1NWZiNmU3MDUyMDYzODE4Ni4uMjE5M2M5
ZjMyODJiMTAxN2MzMTk3NTEwM2U3MTQ5OWEwYTQ5YWYyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKQEAgLTg0LDQg
Kzg0LDkgQEAgYm9vbCBTdGF0ZTxWOEJpbmRpbmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQog
ICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0K
IAorYm9vbCBTdGF0ZTxWOEJpbmRpbmc+OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUqIGZy
YW1lKQoreworICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjppc1NhZmVTY3JpcHQoZnJhbWUp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgKaW5kZXggYmFiYTBjNjNjMDg4ZmY3
MTQ4NThkNGQwNmI5ZGZmY2JjMDQxYTcyYy4uMTQzMDViODgyNWYzMGEyNmUyNmI4NWRkZjMyMWY2
NDE5ZmY0MDdmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlv
bi9WOEJpbmRpbmdTdGF0ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRp
b24vVjhCaW5kaW5nU3RhdGUuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICBib29s
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IHNoYXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkKKyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFt
ZShGcmFtZSopOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFN0YXRlKCkge30KICAgICB+U3Rh
dGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67010</attachid>
            <date>2010-09-09 02:19:58 -0700</date>
            <delta_ts>2010-09-09 17:53:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44891-20100909181956.patch</filename>
            <type>text/plain</type>
            <size>49084</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NmZhMzYzMmZkYTA1ZTAwMTk0ZWNmYjdjMmE4MTg1MjUyODk0ZTQ2ZC4uYjUwZTJkOTVhZDIxZjFm
NjdkMmI4ZTg1NDA0OTEwMDY0MDFhZWI1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOS0wMSAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVD
b21tb24udnNwcm9wczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93Lmg6CisgICAg
ICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjo6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVwbGFjZSk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZy5o
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dG9MZXhpY2FsRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBsZXRlVVJM
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRp
b246OnJlcGxhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmlu
ZGluZ1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OmdldEFjdGl2ZUZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0Rmlyc3RGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
Ojo6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjo6OmFsbG93c0Fj
Y2Vzc0Zyb21GcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNC
aW5kaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmlu
ZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3Nw
ZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmg6CisKIDIwMTAtMDktMDggIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDgyOTczNjVmMmRlZThkOTVjM2E0ZGIzNDIwZWJkNTFjZjJkM2IwNzcuLmFiNzU4
NjlhNTFmNjhkNGQ3Yzk5MjUzY2EwMjUzZWVmNDgzOGNhMzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOSw2ICs5LDcg
QEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMgXAogCS1JJChzcmNk
aXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3Mv
anMvc3BlY2lhbGl6YXRpb24gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9icmlkZ2UgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUv
YnJpZGdlL2MgXApAQCAtNjIzLDYgKzYyNCwxMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nRnJhbWUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2Nh
dGlvbi5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmggXAor
CVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmggXAogCVdlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9DYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIFwKQEAgLTc5Niw2ICs4MDMsOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggXAorCVdlYkNvcmUvYmluZGluZ3Mv
anMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmggXAogCVdlYkNvcmUvYmluZGluZ3Mv
U2NyaXB0Q29udHJvbGxlckJhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRy
b2xsZXJCYXNlLmggXAogCVdlYkNvcmUvYnJpZGdlL0JyaWRnZS5oIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggN2VlN2FiNDkz
ZGU5YjI0ZTNiNDdlY2Q5YjY2YjY1YmQyMmJlYzQzMi4uYTQ1NmEzMTYwYTU3ZGZhNDlmOGNmMWFi
MTUyN2M0OWNjODNiYzZhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUxMiw2ICs1MTIsOCBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdGcmFtZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdMb2NhdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1
cml0eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJh
c2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJh
c2UuaCcsCkBAIC01MzEsNiArNTMzLDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F0
dHJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0
b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNCaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwJywKQEAgLTcx
MCw2ICs3MTMsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dlYkNvcmVKU0NsaWVudERh
dGEuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUu
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdT
dGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L0NoaWxkVGhyZWFkRE9NRGF0YS5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNTVkZjY0NGJj
MWE5MzI3NjhkMDE3MjJlODhjYTEzNzgzMmJlZDU0Yi4uYzRmYzQ5OGIyNDAyYmZmYTY0NDE1ZWNh
YTk3NzQzMjhkZDRhOTA3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xODQsNiArMTg0LDcgQEAgV0VCQ09SRV9JTkNMVURFUEFU
SCA9IFwKICAgICAkJFBXRC9iaW5kaW5ncyBcCiAgICAgJCRQV0QvYmluZGluZ3MvZ2VuZXJpYyBc
CiAgICAgJCRQV0QvYmluZGluZ3MvanMgXAorICAgICQkUFdEL2JpbmRpbmdzL2pzL3NwZWNpYWxp
emF0aW9uIFwKICAgICAkJFBXRC9icmlkZ2UgXAogICAgICQkUFdEL2JyaWRnZS9jIFwKICAgICAk
JFBXRC9icmlkZ2UvanNjIFwKQEAgLTM5Miw2ICszOTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBi
aW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NjaGVkdWxlZEFj
dGlvbi5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgXAor
ICAgIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBcCiAgICAg
YmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwIFwKICAgICBicmlkZ2UvSWRlbnRpZmll
clJlcC5jcHAgXAogICAgIGJyaWRnZS9OUF9qc29iamVjdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjU4ODU0OGU5OGM0YTFkMmFmNzZiNjNmMTQ5NjY2NTk5
OTFiMGE0Yi4uNmEyYjQ5NDA3NzEwNTUzMmYwZDgxMDAwY2RkNGNkMzU1YjcwYTNiNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MjA1OSwxMCArNDIwNTksMzAgQEAK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEFjdGl2ZURPTUNhbGxiYWNr
LmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCi0JCQk8L0ZpbHRlcj4NCi0JCQk8RmlsdGVyDQot
CQkJCU5hbWU9ImdlbmVyaWMiDQotCQkJCT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nRnJhbWUuaCINCisJCQkJCT4NCisJCQkJPC9G
aWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmlj
XEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1NlY3VyaXR5Lmgi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xn
ZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJ
CQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNC
aW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCIN
CiAJCQkJCT4NCkBAIC00MjQxNiw2ICs0MjQzNiwxMCBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4N
CiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNCaW5kaW5n
LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcSlNCaW5kaW5nc0FsbEluT25lLmNwcCINCiAJCQkJCT4NCiAJCQkJ
PC9GaWxlPg0KQEAgLTQ5NzExLDYgKzQ5NzM1LDYyIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIg0KIAkJCQkJPg0KIAkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXHNwZWNp
YWxpemF0aW9uXEpTQmluZGluZ1N0YXRlLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0ludGVy
bmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJ
CQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8
VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uXEpTQmluZGluZ1N0YXRlLmgi
DQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVyPg0KIAkJ
PEZpbHRlcg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1v
bi52c3Byb3BzIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMK
aW5kZXggYzk4ZTEzYjQ4OGQ0YTE3M2VjOWFjZGMwZWMyYjJiMzE1NzNiNWI5Yy4uODY3N2MwZWJj
ZjEwMDZlMDRjZjEzYjI4YTY3OTNjMTc2YjExMzhlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKQEAgLTcsNyArNyw3IEBACiAJPg0KIAk8VG9vbA0K
IAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNj
ZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
ZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5k
ZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
bG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBh
Z2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1c
bW9jayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5l
dHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0
ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
c3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxz
dG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxp
bmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7
JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVx6bGliJnF1b3Q7Ig0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQ
cm9qZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2Vc
YyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRp
bmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXph
dGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlzdG9yeSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGFuaW1h
dGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdv
cmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxn
cmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0
ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXIm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1
Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZp
bHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
Llx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRP
dXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
XHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0
ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29y
ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1b3Q7Ig0K
IAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklO
RztXRUJDT1JFX0NPTlRFWFRfTUVOVVMiDQogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiINCiAJ
CVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIg0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDZlYmIwOTc2NDk5YzE2MDgyZWRi
ZmQwMTIyOGNlNWYzMmI5NTQ1Ni4uYzA4YjdhMTZkYWE4MDgxZmVmYzZiYTJmODRiNDU2MWFmYWNi
N2ZmNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4
NDMsNiArMjg0MywxNSBAQAogCQlBNTlFM0MxRjExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRJ
UGhvbmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NTlFM0MxRDExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRJUGhvbmUubW0gKi87IH07CiAJCUE1
QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVBRkIzNEQxMTUxNTFBNzAwQjA0NUNCIC8q
IFN0ZXBSYW5nZS5jcHAgKi87IH07CiAJCUE1QUZCMzUwMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVw
UmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCAqLzsgfTsKKwkJQTYyMkE4RUUx
MjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGlu
Zy5oICovOyB9OworCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4
RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNwcCAqLzsgfTsKKwkJQTYyMkE4
RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGMTEyMkM0NDQ1MDBBNzg1QjMgLyog
SlNCaW5kaW5nU3RhdGUuaCAqLzsgfTsKKwkJQTYyMkE4RkExMjJDNDRBNjAwQTc4NUIzIC8qIEJp
bmRpbmdMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTYyMkE4RjQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovOyB9
OworCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNTEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi87IH07CisJCUE2MjJBOEZDMTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKKwkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlC
YXNlLmggKi87IH07CisJCUE2MjJBOEZFMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIy
QThGODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovOyB9OworCQlBNjIy
QThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAv
KiBHZW5lcmljQmluZGluZy5oICovOyB9OwogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyog
RHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMw
MEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29u
dHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRl
clNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi87IH07
CkBAIC04NzIzLDYgKzg3MzIsMTUgQEAKIAkJQTVBRkIzNEUxMTUxNTFBNzAwQjA0NUNCIC8qIFN0
ZXBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGVwUmFuZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0Q0YxMTQ4NUZGMTAwNjZGMkFCIC8q
IEtleUV2ZW50Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5RXZl
bnRDb2NvYS5oOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEtleUV2ZW50Q29jb2Eu
bW07IHBhdGggPSBjb2NvYS9LZXlFdmVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNjIyQThFRDEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmluZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBNjIyQThGMDEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCaW5kaW5nU3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGMTEyMkM0NDQ1MDBBNzg1QjMg
LyogSlNCaW5kaW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNC
aW5kaW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjQxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCaW5kaW5nTG9jYXRpb24uaDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ0xvY2F0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQmluZGluZ1NlY3VyaXR5Lmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyog
QmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY3MTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMvQmluZGlu
Z1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGODEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCaW5kaW5nVXRpbGl0aWVzLmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdV
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjkxMjJDNDRB
NjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEdlbmVyaWNCaW5kaW5nLmg7IHBhdGggPSBnZW5lcmljL0dlbmVyaWNCaW5kaW5nLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAv
KiBEcmFnQWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnQWN0
aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQ0NzgsNiArMTQ0OTYsMTUgQEAKIAkJCW5hbWUgPSBjb2Nv
YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUE2MjJBOEVGMTIyQzQ0NDUw
MEE3ODVCMyAvKiBzcGVjaWFsaXphdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0
YXRlLmNwcCAqLywKKwkJCQlBNjIyQThGMTEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3Rh
dGUuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gc3BlY2lhbGl6YXRpb247CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyogZmlsdGVy
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xNjA5NSw2
ICsxNjEyMiwxMiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQjVEMzFERjgxMUNGNjEwQjAwOUYy
MkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmNwcCAqLywKIAkJCQlCNUQzMURGOTExQ0Y2MTBCMDA5
RjIyQjQgLyogQWN0aXZlRE9NQ2FsbGJhY2suaCAqLywKKwkJCQlBNjIyQThGNDEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggKi8sCisJCQkJQTYyMkE4RjUxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovLAorCQkJCUE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLywKKwkJCQlBNjIyQThGNzEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovLAorCQkJCUE2MjJBOEY4MTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggKi8sCisJCQkJQTYyMkE4RjkxMjJDNDRBNjAw
QTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGdlbmVyaWM7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYxMzQsNiArMTYxNjcsNyBAQAogCQkJ
CUJDQ0U1OEE3MTA2MUU4MkYwMDhGQjM1QSAvKiBDYWxsYmFjayBPYmplY3RzICovLAogCQkJCUJD
Q0U1OEI0MTA2MUU5MjUwMDhGQjM1QSAvKiBDb25zdHJ1Y3RvcnMgKi8sCiAJCQkJQkM0RURFRjcw
QzA4RjQxNDAwN0VERDQ5IC8qIEN1c3RvbSAqLywKKwkJCQlBNjIyQThFRjEyMkM0NDQ1MDBBNzg1
QjMgLyogc3BlY2lhbGl6YXRpb24gKi8sCiAJCQkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5IC8q
IERlcml2ZWQgU291cmNlcyAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKIAkJCQk5M0Y4QjMwNjBBMzAwRkVBMDBGNjFB
QjggLyogQ29kZUdlbmVyYXRvckpTLnBtICovLApAQCAtMTYxNDcsNiArMTYxODEsNyBAQAogCQkJ
CUM1ODVBNjYxMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmggKi8sCiAJ
CQkJMUM4MUJBMDMwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUuY3BwICov
LAogCQkJCTFDODFCQTA0MEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1lLmgg
Ki8sCisJCQkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oICovLAogCQkJ
CUJDNTNEQUM0MTE0MzJGRDkwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5jcHAgKi8sCiAJ
CQkJQkM1M0RBQzExMTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0LmggKi8sCiAJ
CQkJOTNCNzBENDcwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgKi8sCkBAIC0y
MDQ2Nyw2ICsyMDUwMiwxMyBAQAogCQkJCTk3QkM4NDlCMTIzNzBBNEIwMDBDNjE2MSAvKiBIVE1M
SW5wdXRTdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NEE1MTIzNzBEQzgwMDBDNjE2
MSAvKiBUZXh0Vmlld1NvdXJjZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzg0QjQx
MjM3MTE4MDAwMEM2MTYxIC8qIFRleHREb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYy
MkE4RUUxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTYyMkE4RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNjIyQThGQTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGRDEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkUxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZG
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MjkzNSw2ICsyMjk3Nyw4IEBACiAJCQkJOTdCQzg0ODMxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHRE
b2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0JDODRBNDEyMzcwREM4MDAw
QzYxNjEgLyogVGV4dFZpZXdTb3VyY2VQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdC
Qzg0QjMxMjM3MTE4MDAwMEM2MTYxIC8qIFRleHREb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0
eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdET01XaW5kb3cuaAppbmRleCAwYzQ1MGE1ZDdhZjU4NWJhNTU3YWI3OTZhOGU2MDEyZTkzYjQ2
Nzg2Li45NmI4YjlkNGU3NDVjY2U2YzRkMGIxZDJhZGZmYzc3OWViOTAxMjE5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKQEAgLTY1LDkgKzY1LDYgQEAg
cHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgcmF3RmVhdHVyZXMpOwogCi0gICAgLy8gRklYTUU6IFRoZXJlIHNob3Vs
ZCBiZSBhIHBsYWNlIGZvciBnZW5lcmljIGJpbmRpbmcgdXRpbGl0aWVzLgotICAgIHN0YXRpYyBL
VVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVS
TCk7Ci0KIHByaXZhdGU6CiAgICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb2Zmc2V0LCBm
cm9tIHRoZSBwYXJlbnQgY29udGVudCBhcmVhLAogICAgIC8vIGFyb3VuZCBuZXdseSBvcGVuZWQg
cG9wdXBzIHRoYXQgZG9uJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLgpAQCAtMjY4LDE4ICsyNjUsNiBA
QCBXZWJDb3JlOjpET01XaW5kb3cqIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46Om9wZW4oU3Rh
dGU8QmluZGluZz4qIHN0YXRlLAogICAgIHJldHVybiBmcmFtZS0+ZG9tV2luZG93KCk7CiB9CiAK
LXRlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgotS1VSTCBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+
Ojpjb21wbGV0ZVVSTChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCi17Ci0g
ICAgLy8gRm9yIGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJM
IHVzaW5nIHRoZQotICAgIC8vIGR5bmFtaWMgZnJhbWUuCi0gICAgRnJhbWUqIGZyYW1lID0gc3Rh
dGUtPmdldEZpcnN0RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gS1VS
TCgpOwotICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJM
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQmluZGluZ0RPTVdp
bmRvd19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1l
LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjFmZGM3OTQ1NmFjYzhiYjQ0ZjA0M2ZlNDZiNzRiZjBjNGIzN2U0OAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBCaW5kaW5nRnJhbWVfaAorI2RlZmluZSBCaW5kaW5nRnJhbWVfaAorCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorY2xhc3MgQmluZGluZ0ZyYW1l
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5k
aW5nPiosIEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0Jh
Y2tGb3J3YXJkTGlzdCk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmlu
ZGluZ0ZyYW1lPEJpbmRpbmc+OjpuYXZpZ2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5kaW5nPiogc3Rh
dGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29s
IGxvY2tCYWNrRm9yd2FyZExpc3QpCit7CisgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gc3RhdGUt
PmdldEFjdGl2ZUZyYW1lKCk7CisgICAgaWYgKCFhY3RpdmVGcmFtZSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCBzdGF0ZS0+YWxsb3dzQWNj
ZXNzRnJvbUZyYW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCkt
PnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBhY3RpdmVGcmFtZS0+bG9hZGVy
KCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3Qs
IHN0YXRlLT5wcm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEJpbmRpbmdGcmFtZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQmluZGluZ0xvY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E1MjgxNGE5ZDlmMTFlOWM3YjI4YWU3
NWI0OWM4ZDYzZWNmOWU3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nTG9jYXRpb24uaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCaW5kaW5nTG9j
YXRpb25faAorI2RlZmluZSBCaW5kaW5nTG9jYXRpb25faAorCisjaW5jbHVkZSAiQmluZGluZ1Nl
Y3VyaXR5LmgiCisjaW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRlICJMb2NhdGlv
bi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgor
Y2xhc3MgQmluZGluZ0xvY2F0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCByZXBsYWNl
KFN0YXRlPEJpbmRpbmc+KiwgTG9jYXRpb24qLCBjb25zdCBTdHJpbmcmIHVybCk7Cit9OworCit0
ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0xvY2F0aW9uPEJpbmRpbmc+Ojpy
ZXBsYWNlKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgTG9jYXRpb24qIGxvY2F0aW9uLCBjb25zdCBT
dHJpbmcmIHVybCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKKyAg
ICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBLVVJMIGZ1bGxVUkwgPSBjb21w
bGV0ZVVSTChzdGF0ZSwgdXJsKTsKKyAgICBpZiAoZnVsbFVSTC5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46OnNob3VsZEFsbG93
TmF2aWdhdGlvbihzdGF0ZSwgZnJhbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBCaW5kaW5n
OjpGcmFtZTo6bmF2aWdhdGVJZkFsbG93ZWQoc3RhdGUsIGZyYW1lLCBmdWxsVVJMLCB0cnVlLCB0
cnVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0xv
Y2F0aW9uX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmlu
ZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKaW5kZXgg
ZDAzMGI0NTg0MTcwZjAwMWYyNjY0M2JiZDhjZGFlZGNjNWMzNTI5NC4uOGJmMTM0Mzk4MWU2ZGIw
MmZiMWJiOTQ5YjJiZTYzMjU1YzA1YWJjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dl
bmVyaWNCaW5kaW5nLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpZm5kZWYgR2VuZXJpY0JpbmRpbmdf
aAogI2RlZmluZSBHZW5lcmljQmluZGluZ19oCiAKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVXNlZCB0byBp
bnN0YW50aWF0ZSBiaW5kaW5nIHRlbXBsYXRlcyBmb3IgYW55IG1ldGhvZHMgc2hhcmVkIGFtb25n
IGFsbApAQCAtNDcsNiArNTAsMTcgQEAgY2xhc3MgU3RhdGU8R2VuZXJpY0JpbmRpbmc+IHsKICAg
ICAvLyBBbnkgbWV0aG9kcyBzaGFyZWQgYWNyb3NzIGJpbmRpbmdzIGNhbiBnbyBoZXJlLgogfTsK
IAordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRp
bmc+KiBzdGF0ZSwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKK3sKKyAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCisg
ICAgLy8gZHluYW1pYyBmcmFtZS4KKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RG
cmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgcmV0
dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOworfQorCiB9CiAK
ICNlbmRpZiAvLyBHZW5lcmljQmluZGluZ19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNDJjOWJlYWRkNmE1ZTc3MWQxODg2OTQyNmY1ZmViMmIyNTAxYjBmCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApAQCAtMCwwICsxLDUxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBKU0JpbmRpbmdfaAorI2RlZmluZSBKU0JpbmRpbmdfaAorCisjaW5jbHVkZSAiQmlu
ZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAiQmluZGluZ0xvY2F0aW9uLmgiCisjaW5jbHVkZSAiQmlu
ZGluZ1NlY3VyaXR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gSW5zdGFudGlhdGUg
YmluZGluZyB0ZW1wbGF0ZSBjbGFzc2VzIGZvciBKU0MuCitjbGFzcyBKU0JpbmRpbmcgeworcHVi
bGljOgorICAgIHR5cGVkZWYgQmluZGluZ0ZyYW1lPEpTQmluZGluZz4gRnJhbWU7CisgICAgdHlw
ZWRlZiBCaW5kaW5nTG9jYXRpb248SlNCaW5kaW5nPiBMb2NhdGlvbjsKK307CisKK3R5cGVkZWYg
QmluZGluZ1NlY3VyaXR5PEpTQmluZGluZz4gSlNCaW5kaW5nU2VjdXJpdHk7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGluZ19oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIyZTQ0OTcxOGMxNzQzYjYzY2MyN2Uw
M2VjNTI5YzM1ODFjOGI3MS4uNmUxY2MxZTIzYmExYWY4MzRjZjM3OWUzM2JhNWJjZmViOTNhYmZl
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRy
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0F1ZGlvQ29uc3RydWN0b3IuY3BwIgorI2luY2x1ZGUg
IkpTQmluZGluZ1N0YXRlLmNwcCIKICNpbmNsdWRlICJKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0
Q3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA5NjM5NGVi
NzViZGJiMTJmZTQwN2YwMzIwMjJkYmQ1N2NjODY3YWEzLi43NGM4MTMxMTIzZjQzMDA1NDU4ODBj
NTgyMWFiOWRkODg3NDgyN2I3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBA
IC0zOCwxMSArMzgsMTQgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJKU0JpbmRpbmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkpT
RE9NQ29yZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5j
bHVkZSAiSlNEZWJ1Z1dyYXBwZXJTZXQuaCIKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmgi
CiAjaW5jbHVkZSAiSlNFeGNlcHRpb25CYXNlLmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlv
bi5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKQEAgLTYzOSw4ICs2
NDIsOCBAQCBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShFeGVjU3RhdGUqIGV4ZWMsIEZyYW1l
KiBmcmFtZSwgU3RyaW5nJiBtZXNzYWdlKQogCiBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBGcmFtZSogbGV4aWNhbEZyYW1l
ID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgcmV0dXJuIGxleGljYWxGcmFtZSAmJiBsZXhp
Y2FsRnJhbWUtPmxvYWRlcigpLT5zaG91bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpOworICAgIEpT
QmluZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOworICAgIHJldHVybiBKU0JpbmRpbmdTZWN1cml0eTo6
c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKCZzdGF0ZSwgZnJhbWUpOwogfQogCiBib29sIGFsbG93U2V0
dGluZ1NyY1RvSmF2YXNjcmlwdFVSTChFeGVjU3RhdGUqIGV4ZWMsIEVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSwyNiArNjc0
LDIzIEBAIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKIAogRnJhbWUqIHRvTGV4aWNhbEZyYW1lKEV4ZWNTdGF0ZSogZXhl
YykKIHsKLSAgICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCkpLT5pbXBsKCktPmZyYW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdl
dEFjdGl2ZUZyYW1lKCk7CiB9CiAKIEZyYW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgcmV0dXJuIGFzSlNET01XaW5kb3coZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVj
dCgpKS0+aW1wbCgpLT5mcmFtZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZShleGVjKS5n
ZXRGaXJzdEZyYW1lKCk7CiB9CiAKIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKIHsKLSAg
ICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisgICAg
cmV0dXJuIEpTQmluZGluZ1N0YXRlKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRl
KCkpLnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpOwogfQogCiBLVVJMIGNvbXBsZXRlVVJMKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICAvLyBGb3IgaGlz
dG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlIGR5
bmFtaWMgZnJhbWUuCi0gICAgRnJhbWUqIGZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKLSAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7CisgICAgSlNCaW5kaW5nU3RhdGUg
c3RhdGUoZXhlYyk7CisgICAgcmV0dXJuIGNvbXBsZXRlVVJMKCZzdGF0ZSwgcmVsYXRpdmVVUkwp
OwogfQogCiBKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA5OTE2NmNkOTE1N2NiMDlkODA2NWEx
MmRkN2M2NDc3Zjc0Njc3NDMzLi4wOWU3Mjk0YWEwZGY3NzYyYTg5ZDI5NmQ4ODI5NjA4YzMwMGJl
OTE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI3LDYg
KzI3LDggQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1
ZGUgIkpTQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC0xODYsMTIgKzE4
OCw4IEBAIHZvaWQgSlNMb2NhdGlvbjo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKCiAKIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZB
bGxvd2VkKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJv
b2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFtZSog
bGV4aWNhbEZyYW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFsZXhpY2FsRnJh
bWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJs
KSB8fCBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgZnJhbWUpKQotICAgICAgICBmcmFtZS0+
cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCks
IGxleGljYWxGcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3Rvcnks
IGxvY2tCYWNrRm9yd2FyZExpc3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICBKU0Jp
bmRpbmdTdGF0ZSBzdGF0ZShleGVjKTsKKyAgICBKU0JpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0ZUlm
QWxsb3dlZCgmc3RhdGUsIGZyYW1lLCB1cmwsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRM
aXN0KTsKIH0KIAogdm9pZCBKU0xvY2F0aW9uOjpzZXRIcmVmKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWx1ZSkKQEAgLTMwMywxOCArMzAxLDggQEAgdm9pZCBKU0xvY2F0aW9uOjpzZXRIYXNo
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0xvY2F0aW9uOjpy
ZXBsYWNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCktPmZy
YW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0K
LSAgICBLVVJMIHVybCA9IGNvbXBsZXRlVVJMKGV4ZWMsIHVzdHJpbmdUb1N0cmluZyhleGVjLT5h
cmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkpOwotICAgIGlmICh1cmwuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRp
b24oZXhlYywgZnJhbWUpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIG5h
dmlnYXRlSWZBbGxvd2VkKGV4ZWMsIGZyYW1lLCB1cmwsIHRydWUsIHRydWUpOworICAgIEpTQmlu
ZGluZ1N0YXRlIHN0YXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6TG9jYXRpb246OnJlcGxhY2Uo
JnN0YXRlLCBpbXBsKCksIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmlu
ZyhleGVjKSkpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk1MGI4MTMxOGY1NzdjMmUzYWUyYWE1YjM0MDcwNzMzM2YzMWNkOGEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0
YXRlLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpT
QmluZGluZ1N0YXRlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOwor
CitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0QWN0aXZlRnJhbWUoKQoreworICAgIHJldHVy
biBhc0pTRE9NV2luZG93KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5m
cmFtZSgpOworfQorCitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0Rmlyc3RGcmFtZSgpCit7
CisgICAgcmV0dXJuIGFzSlNET01XaW5kb3cobV9leGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkp
LT5pbXBsKCktPmZyYW1lKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6YWxsb3dzQWNjZXNz
RnJvbUZyYW1lKEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6YWxsb3dzQWNj
ZXNzRnJvbUZyYW1lKG1fZXhlYywgZnJhbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGlu
Z1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0
YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjY0MDE0MDFmNTZiOTY4YTFlNTZjYWQ1M2E5N2M4YmZmNDkzZTg4
MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24v
SlNCaW5kaW5nU3RhdGUuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdTdGF0ZV9o
CisjZGVmaW5lIEpTQmluZGluZ1N0YXRlX2gKKworI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgi
CisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVj
U3RhdGU7CisKK30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEZyYW1lOworCit0ZW1wbGF0ZSA8PgorY2xhc3MgU3RhdGU8SlNCaW5kaW5nPiA6IHB1Ymxp
YyBTdGF0ZTxHZW5lcmljQmluZGluZz4geworcHVibGljOgorICAgIGV4cGxpY2l0IFN0YXRlKEpT
Qzo6RXhlY1N0YXRlKiBleGVjKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgIHsKKyAgICB9
CisKKyAgICB2aXJ0dWFsIH5TdGF0ZSgpCisgICAgeworICAgIH0KKworICAgIEZyYW1lKiBnZXRB
Y3RpdmVGcmFtZSgpOworICAgIEZyYW1lKiBnZXRGaXJzdEZyYW1lKCk7CisKKyAgICBib29sIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpOworCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNo
YXJlZCBpbiBCaW5kaW5nU2VjdXJpdHkKKyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShG
cmFtZSopOworCitwcml2YXRlOgorICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7Cit9OworCit0
eXBlZGVmIFN0YXRlPEpTQmluZGluZz4gSlNCaW5kaW5nU3RhdGU7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGluZ1N0YXRlX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oCmluZGV4IDU4OTg5ZWQ4Y2Q1NDM4MDk1NGE5NzQ1ZGUxZjcwODI1ZDk4ODlmYjQuLjU2NmU4
YWM5YWM1MmU5OGZjNWU5MjFjZGQ1NGJkMDIyNDAwN2MzYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmcuaApAQCAtMzEsNiArMzEsOCBAQAogI2lmbmRlZiBWOEJpbmRpbmdfaAogI2RlZmluZSBWOEJp
bmRpbmdfaAogCisjaW5jbHVkZSAiQmluZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAiQmluZGluZ0xv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCiAjaW5jbHVkZSAiTWF0aEV4
dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC01MCwxNiArNTIsMTggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVmFsdWU7CiAgICAgICAgIHR5cGVkZWYgVjhCaW5kaW5nRE9NV2luZG93
IERPTVdpbmRvdzsKKyAgICAgICAgdHlwZWRlZiBCaW5kaW5nRnJhbWU8VjhCaW5kaW5nPiBGcmFt
ZTsKKyAgICAgICAgdHlwZWRlZiBCaW5kaW5nTG9jYXRpb248VjhCaW5kaW5nPiBMb2NhdGlvbjsK
IAogICAgICAgICBzdGF0aWMgVmFsdWUgZW1wdHlTY3JpcHRWYWx1ZSgpIHsgcmV0dXJuIHY4OjpM
b2NhbDx2ODo6VmFsdWU+KCk7IH0KICAgICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5
PFY4QmluZGluZz4gVjhCaW5kaW5nU2VjdXJpdHk7Ci0gICAgCisKICAgICBlbnVtIEV4dGVybmFs
TW9kZSB7CiAgICAgICAgIEV4dGVybmFsaXplLAogICAgICAgICBEb05vdEV4dGVybmFsaXplCiAg
ICAgfTsKLSAgICAKKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgogICAgIFN0
cmluZ1R5cGUgdjhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2
OFN0cmluZywgRXh0ZXJuYWxNb2RlIGV4dGVybmFsKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmNwcAppbmRleCAyZTVjZjhiMGY1Mjc2Zjc3NjNmZjM2OWM0ZTQwNTcyMzlmZGEwZGIwLi5l
NDk3MDcxZjI5OTUwY2Q3OGQ5NjEyZGUwMzMzYjFjZGIyODAxNGMyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlY4Qmlu
ZGluZy5oIgotI2luY2x1ZGUgIlY4QmluZGluZ0RPTVdpbmRvdy5oIiAvLyBGSVhNRTogcmVtb3Zl
IHdoZW4gY29tcGxldGVVUkwgbW92ZXMKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlY4UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBAIC0xMTIsMTYg
KzExMSwxMiBAQCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAKIEtV
UkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICByZXR1cm4g
VjhCaW5kaW5nRE9NV2luZG93Ojpjb21wbGV0ZVVSTChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBy
ZWxhdGl2ZVVSTCk7CisgICAgcmV0dXJuIGNvbXBsZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5
KCksIHJlbGF0aXZlVVJMKTsKIH0KIAogdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJh
bWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0Zvcndh
cmRMaXN0KQogewotICAgIEZyYW1lKiBjYWxsaW5nT3JFbnRlcmVkID0gY2FsbGluZ09yRW50ZXJl
ZEZyYW1lKCk7Ci0gICAgaWYgKCFjYWxsaW5nT3JFbnRlcmVkKQotICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IFNjcmlwdENvbnRyb2xsZXI6Omlz
U2FmZVNjcmlwdChmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5z
Y2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgY2FsbGluZ09yRW50ZXJlZC0+bG9h
ZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExp
c3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICByZXR1cm4gVjhCaW5kaW5nOjpGcmFt
ZTo6bmF2aWdhdGVJZkFsbG93ZWQoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwg
bG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYWMzMDVjOTdmMDA5YmMwZGFi
ZjFiNGE3ZGIwZWFhMmViYzI5ODZiNS4uNjA2OGFhMjFhMjYxZWY5NGJjYzFmMmRhMGFmM2VlMDQ3
NDRiOGVjZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlv
bkN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1
c3RvbS5jcHAKQEAgLTI5MiwxOSArMjkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9j
YXRpb246OnJlcGxhY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElO
Q19TVEFUUygiRE9NLkxvY2F0aW9uLnJlcGxhY2UiKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGhvbGRlciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgTG9jYXRpb24qIGltcCA9IFY4TG9jYXRp
b246OnRvTmF0aXZlKGhvbGRlcik7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7
Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQotICAg
IEtVUkwgdXJsID0gY29tcGxldGVVUkwodG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKLSAgICBp
ZiAodXJsLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAg
aWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpKQotICAgICAgICByZXR1cm4gdjg6OlVu
ZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1
ZSk7CisgICAgVjhCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZShWOEJpbmRpbmdTdGF0ZTo6T25s
eSgpLCBpbXAsIHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRl
ZmluZWQoKTsKIH0KIApAQCAtMzc4LDQgKzM2NiwzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0
b1Y4KExvY2F0aW9uKiBpbXBsKQogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRl
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUu
Y3BwCmluZGV4IGNjZGQ3YzhjZTcyNTZhNjRlMWE1N2ExNTVmYjZlNzA1MjA2MzgxODYuLjIxOTNj
OWYzMjgyYjEwMTdjMzE5NzUxMDNlNzE0OTlhMGE0OWFmMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCkBAIC04NCw0
ICs4NCw5IEBAIGJvb2wgU3RhdGU8VjhCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkK
ICAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9
CiAKK2Jvb2wgU3RhdGU8VjhCaW5kaW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKiBm
cmFtZSkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1l
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCmluZGV4IGJhYmEwYzYzYzA4OGZm
NzE0ODU4ZDRkMDZiOWRmZmNiYzA0MWE3MmMuLjE0MzA1Yjg4MjVmMzBhMjZlMjZiODVkZGYzMjFm
NjQxOWZmNDA3ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRp
b24vVjhCaW5kaW5nU3RhdGUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0
aW9uL1Y4QmluZGluZ1N0YXRlLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogCiAgICAgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBzaGFyZWQgaW4gQmluZGluZ1NlY3VyaXR5CisgICAgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tRnJh
bWUoRnJhbWUqKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdGF0ZSgpIHt9CiAgICAgflN0
YXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67127</attachid>
            <date>2010-09-09 17:53:23 -0700</date>
            <delta_ts>2010-09-09 22:07:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44891-20100910095321.patch</filename>
            <type>text/plain</type>
            <size>49074</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWJmNjE2NDFmZGE5NmFlMjRkZGMwMDIyMjY1YWU0NWQ1OTAxMzc1Yi4uODM3YjMzNWYyNGQ1NDE5
ZmQwNWEzMzYyOTIwZmY1N2FiNTRhZDM3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOS0wMSAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVD
b21tb24udnNwcm9wczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93Lmg6CisgICAg
ICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjo6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVwbGFjZSk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZy5o
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dG9MZXhpY2FsRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBsZXRlVVJM
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRp
b246OnJlcGxhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmlu
ZGluZ1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OmdldEFjdGl2ZUZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0Rmlyc3RGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
Ojo6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjo6OmFsbG93c0Fj
Y2Vzc0Zyb21GcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNC
aW5kaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmlu
ZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3Nw
ZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmg6CisKIDIwMTAtMDktMDkgIENocmlzIFJvZ2Vy
cyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1
c3NlbGwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQppbmRleCA1NzNiN2RiOWZiOTkyMWJlZTZmNDZhNmEyY2VhZTc1ODYzMTc2YTY5
Li5iYzQ1Njc4M2IzYWQ2YmUyODJjMTdkYjg5MzM4ZGRlN2Q3NDU0MzcwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTks
NiArOSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljIFwKIAkt
SSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2pzIFwKKwktSSQoc3JjZGlyKS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uIFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QgXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYnJpZGdlIFwKIAktSSQoc3JjZGlyKS9X
ZWJDb3JlL2JyaWRnZS9jIFwKQEAgLTYyMyw2ICs2MjQsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmggXAogCVdl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAogCVdlYkNvcmUv
YmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oIFwKKwlXZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ0ZyYW1lLmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5k
aW5nTG9jYXRpb24uaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0
eS5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAg
XAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmggXAorCVdl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBcCkBAIC03OTYsNiArODAzLDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL1N0cmluZ1NvdXJjZVByb3ZpZGVyLmggXAog
CVdlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUpTQ2xpZW50RGF0YS5oIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBcCisJV2ViQ29yZS9i
aW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oIFwKIAlXZWJDb3JlL2Jp
bmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9TY3Jp
cHRDb250cm9sbGVyQmFzZS5oIFwKIAlXZWJDb3JlL2JyaWRnZS9CcmlkZ2UuaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDgz
ODkwYjYzMjk5MTAwMzM2ZmM2M2M5MWQxZjQyODgxZDdkMWI0MmQuLmEwZTE2Y2M0MzQ0ODU5ODQ2
NWZlMDU1NjVhYjBlYjY2YTkxMjJhMTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MTIsNiArNTEyLDggQEAKICAgICAgICAg
ICAgICdiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nTG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5k
aW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2Vj
dXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2Vj
dXJpdHlCYXNlLmgnLApAQCAtNTMxLDYgKzUzMyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNBdHRyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNBdWRpb0Nv
bnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVj
dG9yLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQmluZGluZy5oJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCcs
CkBAIC03MTAsNiArNzEzLDggQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9XZWJDb3JlSlND
bGllbnREYXRhLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGlu
Z1N0YXRlLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNC
aW5kaW5nU3RhdGUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJh
c2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9DaGlsZFRocmVhZERPTURhdGEuY3BwJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGI5
ZDQwZmNkNzUzMTVjZDMxZjEwYmYwODYyYjAwY2VmNmE4NWFiN2IuLjcyN2FhOWNjOTVkZDljZGVk
MWJmNTg5YzBjODcwZTE0M2U3MTZhOTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTg0LDYgKzE4NCw3IEBAIFdFQkNPUkVfSU5D
TFVERVBBVEggPSBcCiAgICAgJCRQV0QvYmluZGluZ3MgXAogICAgICQkUFdEL2JpbmRpbmdzL2dl
bmVyaWMgXAogICAgICQkUFdEL2JpbmRpbmdzL2pzIFwKKyAgICAkJFBXRC9iaW5kaW5ncy9qcy9z
cGVjaWFsaXphdGlvbiBcCiAgICAgJCRQV0QvYnJpZGdlIFwKICAgICAkJFBXRC9icmlkZ2UvYyBc
CiAgICAgJCRQV0QvYnJpZGdlL2pzYyBcCkBAIC0zOTIsNiArMzkzLDcgQEAgU09VUkNFUyArPSBc
CiAgICAgYmluZGluZ3MvanMvU2NyaXB0VmFsdWUuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TY2hl
ZHVsZWRBY3Rpb24uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwIFwKKyAgICBiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAg
XAogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcCBcCiAgICAgYnJpZGdlL0lk
ZW50aWZpZXJSZXAuY3BwIFwKICAgICBicmlkZ2UvTlBfanNvYmplY3QuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI2Y2QyYzUyYjA5M2Y5OTQxODgxMjgwZDkw
NzIwMmNkNGI5ODA1MDguLmQ5YzRlYWIyMmMyY2QyNTJjMWFmMjAxYzE3YzA2YzVmZmFhZjczZTYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDIwNjMsMTAgKzQyMDYz
LDMwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xBY3RpdmVET01D
YWxsYmFjay5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQotCQkJPC9GaWx0ZXI+DQotCQkJPEZp
bHRlcg0KLQkJCQlOYW1lPSJnZW5lcmljIg0KLQkJCQk+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ0ZyYW1lLmgiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
Z2VuZXJpY1xCaW5kaW5nTG9jYXRpb24uaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1
cml0eS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmgiDQorCQkJCQk+DQorCQkJCTwvRmls
ZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xH
ZW5lcmljQmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAiDQogCQkJCQk+DQpAQCAtNDI0MjAsNiArNDI0NDAsMTAgQEAKIAkJCQkJPg0KIAkJCQk8
L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
QmluZGluZy5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTQmluZGluZ3NBbGxJbk9uZS5jcHAiDQogCQkJCQk+
DQogCQkJCTwvRmlsZT4NCkBAIC00OTcxNSw2ICs0OTczOSw2MiBAQAogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXFdvcmtlclNjcmlwdENvbnRyb2xsZXIuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdTdGF0ZS5jcHAiDQorCQkJCQk+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvblxKU0JpbmRpbmdT
dGF0ZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQogCQk8L0ZpbHRl
cj4NCiAJCTxGaWx0ZXINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmVDb21tb24udnNwcm9wcyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52
c3Byb3BzCmluZGV4IGM5OGUxM2I0ODhkNGExNzNlYzlhY2RjMGVjMmIyYjMxNTczYjViOWMuLjg2
NzdjMGViY2YxMDA2ZTA0Y2YxM2IyOGE2NzkzYzE3NmIxMTM4ZTcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCkBAIC03LDcgKzcsNyBAQAogCT4NCiAJ
PFRvb2wNCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxp
dHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2UmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2Vc
anNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxjc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGZpbGVhcGkmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRv
bSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9y
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVy
XGFyY2hpdmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmljYXRpb25z
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwYWdlXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNxbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2Ym
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVv
dDskKFdlYktpdE91dHB1dERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
dWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxz
dmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29ja2V0cyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XGluY2x1ZGVcemxpYiZxdW90OyINCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZx
dW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJp
bGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2MmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZWRpdGlu
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdc
c3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3Bl
Y2lhbGl6YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cZG9tXGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhp
c3RvcnkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGh0bWxcY2FudmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHBh
cnNlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxh
cHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbWF0aG1s
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXGFuaW1h
dGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9y
bVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVxncmFwaGljc1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcdHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cdGV4dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFu
c2NvZGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1
dERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFw
aGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZx
dW90OyINCiAJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfX1dJTjMyX187RElTQUJMRV8zRF9S
RU5ERVJJTkc7V0VCQ09SRV9DT05URVhUX01FTlVTIg0KIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9
IjIiDQogCQlQcmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCINCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwMjdmZWM3NjMxMWFl
Yjg0OTY3MGNkOWVmYjQzMjlkNzM5ZjY3NjEuLjU4NTEwMDM1OTU2MWRjZDE2NjMzYTg2OTUyNDU3
MjkzM2U4NGVkNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODQ1LDYgKzI4NDUsMTUgQEAKIAkJQTU5RTNDMUYxMTU4MEY1MTAwNzI5MjhFIC8qIEtl
eUV2ZW50SVBob25lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTU5RTNDMUQxMTU4MEY1MTAwNzI5MjhFIC8qIEtleUV2ZW50SVBob25lLm1tICovOyB9
OwogCQlBNUFGQjM0RjExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1QUZCMzREMTE1MTUxQTcwMEIw
NDVDQiAvKiBTdGVwUmFuZ2UuY3BwICovOyB9OwogCQlBNUFGQjM1MDExNTE1MUE3MDBCMDQ1Q0Ig
LyogU3RlcFJhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNUFGQjM0RTExNTE1MUE3MDBCMDQ1Q0IgLyogU3RlcFJhbmdlLmggKi87IH07CisJCUE2
MjJBOEVFMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBK
U0JpbmRpbmcuaCAqLzsgfTsKKwkJQTYyMkE4RjIxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGlu
Z1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgKi87IH07CisJ
CUE2MjJBOEYzMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjExMjJDNDQ0NTAwQTc4
NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi87IH07CisJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE2MjJBOEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24u
aCAqLzsgfTsKKwkJQTYyMkE4RkIxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjUx
MjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovOyB9OworCQlBNjIyQThGQzEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMg
LyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi87IH07CisJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1Nl
Y3VyaXR5QmFzZS5oICovOyB9OworCQlBNjIyQThGRTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGlu
Z1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTYyMkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLzsgfTsK
KwkJQTYyMkE4RkYxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGOTEyMkM0NEE2MDBB
Nzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLzsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2
RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBC
MkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyog
RHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZEMCAv
KiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3Bw
ICovOyB9OwpAQCAtODcyNSw2ICs4NzM0LDE1IEBACiAJCUE1QUZCMzRFMTE1MTUxQTcwMEIwNDVD
QiAvKiBTdGVwUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RlcFJh
bmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Qzk3NENGMTE0ODVGRjEwMDY2
RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEtleUV2ZW50Q29jb2EuaDsgcGF0aCA9IGNvY29hL0tleUV2ZW50Q29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBLZXlFdmVu
dENvY29hLm1tOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0JpbmRpbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0
YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmluZGluZ1N0
YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjExMjJDNDQ0NTAw
QTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTQmluZGluZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJB
OEY0MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ0xvY2F0aW9uLmg7IHBhdGggPSBnZW5lcmljL0JpbmRp
bmdMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNTEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eS5oOyBwYXRoID0gZ2VuZXJpYy9CaW5kaW5nU2VjdXJp
dHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHBhdGggPSBnZW5lcmljL0JpbmRp
bmdTZWN1cml0eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThG
NzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmg7IHBhdGggPSBnZW5lcmlj
L0JpbmRpbmdTZWN1cml0eUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYy
MkE4RjgxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQmluZGluZ1V0aWxpdGllcy5oOyBwYXRoID0gZ2VuZXJpYy9C
aW5kaW5nVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY5
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBHZW5lcmljQmluZGluZy5oOyBwYXRoID0gZ2VuZXJpYy9HZW5lcmljQmlu
ZGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBB
MTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJE
MDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4OUQ2RCAvKiBIVE1MTWV0ZXJFbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTWV0ZXJFbGVtZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDg2LDYgKzE0NTA0LDE1IEBACiAJCQluYW1l
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlBNjIyQThFRjEy
MkM0NDQ1MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUE2MjJBOEYwMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0Jp
bmRpbmdTdGF0ZS5jcHAgKi8sCisJCQkJQTYyMkE4RjExMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmlu
ZGluZ1N0YXRlLmggKi8sCisJCQkpOworCQkJcGF0aCA9IHNwZWNpYWxpemF0aW9uOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8q
IGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAt
MTYxMDMsNiArMTYxMzAsMTIgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUI1RDMxREY4MTFDRjYx
MEIwMDlGMjJCNCAvKiBBY3RpdmVET01DYWxsYmFjay5jcHAgKi8sCiAJCQkJQjVEMzFERjkxMUNG
NjEwQjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmggKi8sCisJCQkJQTYyMkE4RjQxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovLAorCQkJCUE2MjJBOEY1MTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKKwkJCQlBNjIyQThGNjEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCisJCQkJQTYyMkE4RjcxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNjIyQThGODEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovLAorCQkJCUE2MjJBOEY5MTIy
QzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBn
ZW5lcmljOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2MTQyLDYgKzE2MTc1LDcg
QEAKIAkJCQlCQ0NFNThBNzEwNjFFODJGMDA4RkIzNUEgLyogQ2FsbGJhY2sgT2JqZWN0cyAqLywK
IAkJCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3JzICovLAogCQkJCUJD
NEVERUY3MEMwOEY0MTQwMDdFREQ0OSAvKiBDdXN0b20gKi8sCisJCQkJQTYyMkE4RUYxMjJDNDQ0
NTAwQTc4NUIzIC8qIHNwZWNpYWxpemF0aW9uICovLAogCQkJCTE0REZCMzNGMEE3REY3NjMwMDE4
Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJQkNENTMzNjMwRUQ2ODQ4OTAwODg3NDY4
IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8sCiAJCQkJOTNGOEIzMDYwQTMwMEZF
QTAwRjYxQUI4IC8qIENvZGVHZW5lcmF0b3JKUy5wbSAqLywKQEAgLTE2MTU1LDYgKzE2MTg5LDcg
QEAKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIgLyogSURCQmluZGluZ1V0aWxpdGllcy5o
ICovLAogCQkJCTFDODFCQTAzMEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZyYW1l
LmNwcCAqLywKIAkJCQkxQzgxQkEwNDBFOTczNDgzMDAyNjZFMDcgLyogSmF2YVNjcmlwdENhbGxG
cmFtZS5oICovLAorCQkJCUE2MjJBOEVEMTIyQzQ0MkEwMEE3ODVCMyAvKiBKU0JpbmRpbmcuaCAq
LywKIAkJCQlCQzUzREFDNDExNDMyRkQ5MDAwRDgxN0UgLyogSlNEZWJ1Z1dyYXBwZXJTZXQuY3Bw
ICovLAogCQkJCUJDNTNEQUMxMTE0MzJFRUUwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5o
ICovLAogCQkJCTkzQjcwRDQ3MDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwICov
LApAQCAtMjA0NjcsNiArMjA1MDIsMTMgQEAKIAkJCQk5NzIwNUFCNjEyMzkyOTEwMDBCMTczODAg
LyogSW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQjgxMjM5MjkxMDAw
QjE3MzgwIC8qIE1lZGlhRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjA1QUJDMTIz
OTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYy
MkE4RUUxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTYyMkE4RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNjIyQThGQTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGRDEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkUxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZG
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MjkzNSw2ICsyMjk3Nyw4IEBACiAJCQkJOTcyMDVBQjUxMjM5MjkxMDAwQjE3MzgwIC8qIEltYWdl
RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQjcxMjM5MjkxMDAwQjE3Mzgw
IC8qIE1lZGlhRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTcyMDVBQkIxMjM5Mjky
NzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2MjJB
OEYyMTIyQzQ0NDUwMEE3ODVCMyAvKiBKU0JpbmRpbmdTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBNjIyQThGQzEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5k
aW5nRE9NV2luZG93LmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRv
dy5oCmluZGV4IDBjNDUwYTVkN2FmNTg1YmE1NTdhYjc5NmE4ZTYwMTJlOTNiNDY3ODYuLjk2Yjhi
OWQ0ZTc0NWNjZTZjNGQwYjFkMmFkZmZjNzc5ZWI5MDEyMTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdET01XaW5kb3cuaApAQCAtNjUsOSArNjUsNiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiByYXdGZWF0dXJlcyk7CiAKLSAgICAvLyBGSVhNRTogVGhlcmUgc2hvdWxkIGJlIGEgcGxh
Y2UgZm9yIGdlbmVyaWMgYmluZGluZyB1dGlsaXRpZXMuCi0gICAgc3RhdGljIEtVUkwgY29tcGxl
dGVVUkwoU3RhdGU8QmluZGluZz4qLCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKTsKLQogcHJp
dmF0ZToKICAgICAvLyBIb3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBvZmZzZXQsIGZyb20gdGhlIHBh
cmVudCBjb250ZW50IGFyZWEsCiAgICAgLy8gYXJvdW5kIG5ld2x5IG9wZW5lZCBwb3B1cHMgdGhh
dCBkb24ndCBzcGVjaWZ5IGEgbG9jYXRpb24uCkBAIC0yNjgsMTggKzI2NSw2IEBAIFdlYkNvcmU6
OkRPTVdpbmRvdyogQmluZGluZ0RPTVdpbmRvdzxCaW5kaW5nPjo6b3BlbihTdGF0ZTxCaW5kaW5n
Piogc3RhdGUsCiAgICAgcmV0dXJuIGZyYW1lLT5kb21XaW5kb3coKTsKIH0KIAotdGVtcGxhdGUg
PGNsYXNzIEJpbmRpbmc+Ci1LVVJMIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46OmNvbXBsZXRl
VVJMKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKLXsKLSAgICAvLyBGb3Ig
aGlzdG9yaWNhbCByZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhl
Ci0gICAgLy8gZHluYW1pYyBmcmFtZS4KLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmly
c3RGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBLVVJMKCk7Ci0gICAg
cmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBCaW5kaW5nRE9NV2luZG93X2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBiL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWZkYzc5NDU2
YWNjOGJiNDRmMDQzZmU0NmI3NGJmMGM0YjM3ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdGcmFtZS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEJpbmRpbmdGcmFtZV9oCisjZGVmaW5lIEJpbmRpbmdGcmFtZV9oCisKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5kaW5nRnJhbWUgeworcHVibGlj
OgorICAgIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiwgRnJh
bWUqLCBjb25zdCBLVVJMJiwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRM
aXN0KTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5nRnJhbWU8
QmluZGluZz46Om5hdmlnYXRlSWZBbGxvd2VkKFN0YXRlPEJpbmRpbmc+KiBzdGF0ZSwgRnJhbWUq
IGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tG
b3J3YXJkTGlzdCkKK3sKKyAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBzdGF0ZS0+Z2V0QWN0aXZl
RnJhbWUoKTsKKyAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgICAgICByZXR1cm47CisgICAgaWYg
KCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IHN0YXRlLT5hbGxvd3NBY2Nlc3NGcm9tRnJh
bWUoZnJhbWUpKQorICAgICAgICBmcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVM
b2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgc3RhdGUtPnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQmluZGluZ0ZyYW1lX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nTG9jYXRpb24uaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5n
TG9jYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTUyODE0YTlkOWYxMWU5YzdiMjhhZTc1YjQ5YzhkNjNl
Y2Y5ZTdiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdMb2NhdGlvbi5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJpbmRpbmdMb2NhdGlvbl9oCisj
ZGVmaW5lIEJpbmRpbmdMb2NhdGlvbl9oCisKKyNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIK
KyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGUgPGNsYXNzIEJpbmRpbmc+CitjbGFzcyBCaW5k
aW5nTG9jYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHJlcGxhY2UoU3RhdGU8Qmlu
ZGluZz4qLCBMb2NhdGlvbiosIGNvbnN0IFN0cmluZyYgdXJsKTsKK307CisKK3RlbXBsYXRlIDxj
bGFzcyBCaW5kaW5nPgordm9pZCBCaW5kaW5nTG9jYXRpb248QmluZGluZz46OnJlcGxhY2UoU3Rh
dGU8QmluZGluZz4qIHN0YXRlLCBMb2NhdGlvbiogbG9jYXRpb24sIGNvbnN0IFN0cmluZyYgdXJs
KQoreworICAgIEZyYW1lKiBmcmFtZSA9IGxvY2F0aW9uLT5mcmFtZSgpOworICAgIGlmICghZnJh
bWUpCisgICAgICAgIHJldHVybjsKKworICAgIEtVUkwgZnVsbFVSTCA9IGNvbXBsZXRlVVJMKHN0
YXRlLCB1cmwpOworICAgIGlmIChmdWxsVVJMLmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTxCaW5kaW5nPjo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9u
KHN0YXRlLCBmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIEJpbmRpbmc6OkZyYW1lOjpu
YXZpZ2F0ZUlmQWxsb3dlZChzdGF0ZSwgZnJhbWUsIGZ1bGxVUkwsIHRydWUsIHRydWUpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBCaW5kaW5nTG9jYXRpb25faApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaAppbmRleCBkMDMwYjQ1ODQx
NzBmMDAxZjI2NjQzYmJkOGNkYWVkY2M1YzM1Mjk0Li44YmYxMzQzOTgxZTZkYjAyZmIxYmI5NDli
MmJlNjMyNTVjMDVhYmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2Vu
ZXJpY0JpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRp
bmcuaApAQCAtMzEsNiArMzEsOSBAQAogI2lmbmRlZiBHZW5lcmljQmluZGluZ19oCiAjZGVmaW5l
IEdlbmVyaWNCaW5kaW5nX2gKIAorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBVc2VkIHRvIGluc3RhbnRpYXRl
IGJpbmRpbmcgdGVtcGxhdGVzIGZvciBhbnkgbWV0aG9kcyBzaGFyZWQgYW1vbmcgYWxsCkBAIC00
Nyw2ICs1MCwxNyBAQCBjbGFzcyBTdGF0ZTxHZW5lcmljQmluZGluZz4gewogICAgIC8vIEFueSBt
ZXRob2RzIHNoYXJlZCBhY3Jvc3MgYmluZGluZ3MgY2FuIGdvIGhlcmUuCiB9OwogCit0ZW1wbGF0
ZSA8Y2xhc3MgQmluZGluZz4KK0tVUkwgY29tcGxldGVVUkwoU3RhdGU8QmluZGluZz4qIHN0YXRl
LCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQoreworICAgIC8vIEZvciBoaXN0b3JpY2FsIHJl
YXNvbnMsIHdlIG5lZWQgdG8gY29tcGxldGUgdGhlIFVSTCB1c2luZyB0aGUKKyAgICAvLyBkeW5h
bWljIGZyYW1lLgorICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRlLT5nZXRGaXJzdEZyYW1lKCk7Cisg
ICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIEtVUkwoKTsKKyAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7Cit9CisKIH0KIAogI2VuZGlmIC8v
IEdlbmVyaWNCaW5kaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MmM5
YmVhZGQ2YTVlNzcxZDE4ODY5NDI2ZjVmZWIyYjI1MDFiMGYKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpT
QmluZGluZ19oCisjZGVmaW5lIEpTQmluZGluZ19oCisKKyNpbmNsdWRlICJCaW5kaW5nRnJhbWUu
aCIKKyNpbmNsdWRlICJCaW5kaW5nTG9jYXRpb24uaCIKKyNpbmNsdWRlICJCaW5kaW5nU2VjdXJp
dHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBJbnN0YW50aWF0ZSBiaW5kaW5nIHRl
bXBsYXRlIGNsYXNzZXMgZm9yIEpTQy4KK2NsYXNzIEpTQmluZGluZyB7CitwdWJsaWM6CisgICAg
dHlwZWRlZiBCaW5kaW5nRnJhbWU8SlNCaW5kaW5nPiBGcmFtZTsKKyAgICB0eXBlZGVmIEJpbmRp
bmdMb2NhdGlvbjxKU0JpbmRpbmc+IExvY2F0aW9uOworfTsKKwordHlwZWRlZiBCaW5kaW5nU2Vj
dXJpdHk8SlNCaW5kaW5nPiBKU0JpbmRpbmdTZWN1cml0eTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gSlNCaW5kaW5nX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAppbmRleCA5MjJlNDQ5NzE4YzE3NDNiNjNjYzI3ZTAzZWM1MjljMzU4
MWM4YjcxLi42ZTFjYzFlMjNiYTFhZjgzNGNmMzc5ZTMzYmE1YmNmZWI5M2FiZmU3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJKU0F0dHJDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTQXVkaW9Db25zdHJ1Y3Rvci5jcHAiCisjaW5jbHVkZSAiSlNCaW5kaW5n
U3RhdGUuY3BwIgogI2luY2x1ZGUgIkpTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU0NTU1J1bGVDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTQ1NTUnVsZUxpc3RDdXN0b20uY3Bw
IgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCmluZGV4IDk2Mzk0ZWI3NWJkYmIxMmZl
NDA3ZjAzMjAyMmRiZDU3Y2M4NjdhYTMuLjc0YzgxMzExMjNmNDMwMDU0NTg4MGM1ODIxYWI5ZGQ4
ODc0ODI3YjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKQEAgLTM4LDExICsz
OCwxNCBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJIVE1MU2NyaXB0RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTQmluZGlu
Zy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01Db3JlRXhj
ZXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0Rl
YnVnV3JhcHBlclNldC5oIgogI2luY2x1ZGUgIkpTRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRl
ICJKU0V4Y2VwdGlvbkJhc2UuaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIK
ICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1JhbmdlRXhjZXB0aW9uLmgiCiAjaW5j
bHVkZSAiSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIgpAQCAtNjM5LDggKzY0Miw4IEBAIGJv
b2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBT
dHJpbmcmIG1lc3NhZ2UpCiAKIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgRnJhbWUqIGZyYW1lKQogewotICAgIEZyYW1lKiBsZXhpY2FsRnJhbWUgPSB0b0xleGlj
YWxGcmFtZShleGVjKTsKLSAgICByZXR1cm4gbGV4aWNhbEZyYW1lICYmIGxleGljYWxGcmFtZS0+
bG9hZGVyKCktPnNob3VsZEFsbG93TmF2aWdhdGlvbihmcmFtZSk7CisgICAgSlNCaW5kaW5nU3Rh
dGUgc3RhdGUoZXhlYyk7CisgICAgcmV0dXJuIEpTQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxv
d05hdmlnYXRpb24oJnN0YXRlLCBmcmFtZSk7CiB9CiAKIGJvb2wgYWxsb3dTZXR0aW5nU3JjVG9K
YXZhc2NyaXB0VVJMKEV4ZWNTdGF0ZSogZXhlYywgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNjcxLDI2ICs2NzQsMjMgQEAgdm9p
ZCBwcmludEVycm9yTWVzc2FnZUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogCiBGcmFtZSogdG9MZXhpY2FsRnJhbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IHJldHVybiBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSktPmltcGwo
KS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gSlNCaW5kaW5nU3RhdGUoZXhlYykuZ2V0QWN0aXZlRnJh
bWUoKTsKIH0KIAogRnJhbWUqIHRvRHluYW1pY0ZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBs
KCktPmZyYW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdldEZpcnN0RnJh
bWUoKTsKIH0KIAogYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogewotICAgIHJldHVybiBT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKKyAgICByZXR1cm4gSlNC
aW5kaW5nU3RhdGUoSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSkucHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKIEtVUkwgY29tcGxldGVVUkwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQogewotICAgIC8vIEZvciBoaXN0b3JpY2FsIHJl
YXNvbnMsIHdlIG5lZWQgdG8gY29tcGxldGUgdGhlIFVSTCB1c2luZyB0aGUgZHluYW1pYyBmcmFt
ZS4KLSAgICBGcmFtZSogZnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTsKLSAgICBpZiAoIWZy
YW1lKQotICAgICAgICByZXR1cm4gS1VSTCgpOwotICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCkt
PmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKKyAgICBKU0JpbmRpbmdTdGF0ZSBzdGF0ZShleGVj
KTsKKyAgICByZXR1cm4gY29tcGxldGVVUkwoJnN0YXRlLCByZWxhdGl2ZVVSTCk7CiB9CiAKIEpT
VmFsdWUgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TG9jYXRpb25DdXN0b20uY3BwCmluZGV4IDk5MTY2Y2Q5MTU3Y2IwOWQ4MDY1YTEyZGQ3YzY0Nzdm
NzQ2Nzc0MzMuLjA5ZTcyOTRhYTBkZjc3NjJhODlkMjk2ZDg4Mjk2MDhjMzAwYmU5MTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcApAQCAtMjcsNiArMjcsOCBAQAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIktVUkwuaCIKQEAgLTE4NiwxMiArMTg4LDggQEAgdm9p
ZCBKU0xvY2F0aW9uOjpkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEoKIAogc3RhdGljIHZvaWQgbmF2aWdhdGVJZkFsbG93ZWQoRXhl
Y1N0YXRlKiBleGVjLCBGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlz
dG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIEZyYW1lKiBsZXhpY2FsRnJh
bWUgPSB0b0xleGljYWxGcmFtZShleGVjKTsKLSAgICBpZiAoIWxleGljYWxGcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKCFwcm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IGFsbG93
c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5yZWRpcmVjdFNj
aGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgbGV4aWNhbEZy
YW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tG
b3J3YXJkTGlzdCwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpOworICAgIEpTQmluZGluZ1N0YXRl
IHN0YXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6RnJhbWU6Om5hdmlnYXRlSWZBbGxvd2VkKCZz
dGF0ZSwgZnJhbWUsIHVybCwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQog
CiB2b2lkIEpTTG9jYXRpb246OnNldEhyZWYoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
KQpAQCAtMzAzLDE4ICszMDEsOCBAQCB2b2lkIEpTTG9jYXRpb246OnNldEhhc2goRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIHZhbHVlKQogCiBKU1ZhbHVlIEpTTG9jYXRpb246OnJlcGxhY2UoRXhl
Y1N0YXRlKiBleGVjKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+ZnJhbWUoKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIEtVUkwg
dXJsID0gY29tcGxldGVVUkwoZXhlYywgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDAp
LnRvU3RyaW5nKGV4ZWMpKSk7Ci0gICAgaWYgKHVybC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBpZiAoIXNob3VsZEFsbG93TmF2aWdhdGlvbihleGVjLCBm
cmFtZSkpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCi0gICAgbmF2aWdhdGVJZkFs
bG93ZWQoZXhlYywgZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAgSlNCaW5kaW5nU3RhdGUg
c3RhdGUoZXhlYyk7CisgICAgSlNCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZSgmc3RhdGUsIGlt
cGwoKSwgdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKSk7
CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUw
YjgxMzE4ZjU3N2MyZTNhZTJhYTViMzQwNzA3MzMzZjMxY2Q4YQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNCaW5kaW5nU3Rh
dGUuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKKyNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7CisKK0ZyYW1lKiBT
dGF0ZTxKU0JpbmRpbmc+OjpnZXRBY3RpdmVGcmFtZSgpCit7CisgICAgcmV0dXJuIGFzSlNET01X
aW5kb3cobV9leGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCktPmZyYW1lKCk7Cit9
CisKK0ZyYW1lKiBTdGF0ZTxKU0JpbmRpbmc+OjpnZXRGaXJzdEZyYW1lKCkKK3sKKyAgICByZXR1
cm4gYXNKU0RPTVdpbmRvdyhtX2V4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKSktPmltcGwoKS0+
ZnJhbWUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKQoreworICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKTsKK30KKworYm9vbCBTdGF0ZTxKU0JpbmRpbmc+OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUo
RnJhbWUqIGZyYW1lKQoreworICAgIHJldHVybiBXZWJDb3JlOjphbGxvd3NBY2Nlc3NGcm9tRnJh
bWUobV9leGVjLCBmcmFtZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NjQwMTQwMWY1NmI5NjhhMWU1NmNhZDUzYTk3YzhiZmY0OTNlODgwCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdT
dGF0ZS5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTQmluZGluZ1N0YXRlX2gKKyNkZWZpbmUg
SlNCaW5kaW5nU3RhdGVfaAorCisjaW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRl
ICJKU0JpbmRpbmcuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEV4ZWNTdGF0ZTsKKwor
fSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRnJhbWU7
CisKK3RlbXBsYXRlIDw+CitjbGFzcyBTdGF0ZTxKU0JpbmRpbmc+IDogcHVibGljIFN0YXRlPEdl
bmVyaWNCaW5kaW5nPiB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3RhdGUoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCisgICAgICAgIDogbV9leGVjKGV4ZWMpCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgflN0YXRlKCkKKyAgICB7CisgICAgfQorCisgICAgRnJhbWUqIGdldEFjdGl2ZUZyYW1l
KCk7CisgICAgRnJhbWUqIGdldEZpcnN0RnJhbWUoKTsKKworICAgIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIGluIEJp
bmRpbmdTZWN1cml0eQorICAgIGJvb2wgYWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKik7CisK
K3ByaXZhdGU6CisgICAgSlNDOjpFeGVjU3RhdGUqIG1fZXhlYzsKK307CisKK3R5cGVkZWYgU3Rh
dGU8SlNCaW5kaW5nPiBKU0JpbmRpbmdTdGF0ZTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gSlNCaW5kaW5nU3RhdGVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXgg
NTg5ODllZDhjZDU0MzgwOTU0YTk3NDVkZTFmNzA4MjVkOTg4OWZiNC4uNTY2ZThhYzlhYzUyZTk4
ZmM1ZTkyMWNkZDU0YmQwMjI0MDA3YzNiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0z
MSw2ICszMSw4IEBACiAjaWZuZGVmIFY4QmluZGluZ19oCiAjZGVmaW5lIFY4QmluZGluZ19oCiAK
KyNpbmNsdWRlICJCaW5kaW5nRnJhbWUuaCIKKyNpbmNsdWRlICJCaW5kaW5nTG9jYXRpb24uaCIK
ICNpbmNsdWRlICJCaW5kaW5nU2VjdXJpdHkuaCIKICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTUwLDE2ICs1MiwxOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWYWx1ZTsKICAgICAgICAgdHlwZWRlZiBWOEJpbmRpbmdET01XaW5kb3cgRE9NV2luZG93
OworICAgICAgICB0eXBlZGVmIEJpbmRpbmdGcmFtZTxWOEJpbmRpbmc+IEZyYW1lOworICAgICAg
ICB0eXBlZGVmIEJpbmRpbmdMb2NhdGlvbjxWOEJpbmRpbmc+IExvY2F0aW9uOwogCiAgICAgICAg
IHN0YXRpYyBWYWx1ZSBlbXB0eVNjcmlwdFZhbHVlKCkgeyByZXR1cm4gdjg6OkxvY2FsPHY4OjpW
YWx1ZT4oKTsgfQogICAgIH07CiAgICAgdHlwZWRlZiBCaW5kaW5nU2VjdXJpdHk8VjhCaW5kaW5n
PiBWOEJpbmRpbmdTZWN1cml0eTsKLSAgICAKKwogICAgIGVudW0gRXh0ZXJuYWxNb2RlIHsKICAg
ICAgICAgRXh0ZXJuYWxpemUsCiAgICAgICAgIERvTm90RXh0ZXJuYWxpemUKICAgICB9OwotICAg
IAorCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1R5cGU+CiAgICAgU3RyaW5nVHlwZSB2
OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4U3RyaW5nLCBF
eHRlcm5hbE1vZGUgZXh0ZXJuYWwpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4VXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwCmlu
ZGV4IDJlNWNmOGIwZjUyNzZmNzc2M2ZmMzY5YzRlNDA1NzIzOWZkYTBkYjAuLmU0OTcwNzFmMjk5
NTBjZDc4ZDk2MTJkZTAzMzNiMWNkYjI4MDE0YzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhVdGlsaXRpZXMuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRp
ZXMuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0j
aW5jbHVkZSAiVjhCaW5kaW5nRE9NV2luZG93LmgiIC8vIEZJWE1FOiByZW1vdmUgd2hlbiBjb21w
bGV0ZVVSTCBtb3ZlcwogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVjhQ
cm94eS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKQEAgLTExMiwxNiArMTExLDEyIEBA
IGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uKEZyYW1lKiBmcmFtZSkKIAogS1VSTCBjb21wbGV0
ZVVSTChjb25zdCBTdHJpbmcmIHJlbGF0aXZlVVJMKQogewotICAgIHJldHVybiBWOEJpbmRpbmdE
T01XaW5kb3c6OmNvbXBsZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJlbGF0aXZlVVJM
KTsKKyAgICByZXR1cm4gY29tcGxldGVVUkwoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgcmVsYXRp
dmVVUkwpOwogfQogCiB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFtZSwgY29uc3Qg
S1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7
Ci0gICAgRnJhbWUqIGNhbGxpbmdPckVudGVyZWQgPSBjYWxsaW5nT3JFbnRlcmVkRnJhbWUoKTsK
LSAgICBpZiAoIWNhbGxpbmdPckVudGVyZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIXBy
b3RvY29sSXNKYXZhU2NyaXB0KHVybCkgfHwgU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0
KGZyYW1lKSkKLSAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9j
YXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBjYWxsaW5nT3JFbnRlcmVkLT5sb2FkZXIoKS0+b3V0
Z29pbmdSZWZlcnJlcigpLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCkpOworICAgIHJldHVybiBWOEJpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0
ZUlmQWxsb3dlZChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBmcmFtZSwgdXJsLCBsb2NrSGlzdG9y
eSwgbG9ja0JhY2tGb3J3YXJkTGlzdCk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGdl
dFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBhYzMwNWM5N2YwMDliYzBkYWJmMWI0YTdkYjBl
YWEyZWJjMjk4NmI1Li42MDY4YWEyMWEyNjFlZjk0YmNjMWYyZGEwYWYzZWUwNDc0NGI4ZWNkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcApA
QCAtMjkyLDE5ICsyOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6cmVw
bGFjZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgSU5DX1NUQVRTKCJE
T00uTG9jYXRpb24ucmVwbGFjZSIpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVy
ID0gYXJncy5Ib2xkZXIoKTsKICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6dG9OYXRp
dmUoaG9sZGVyKTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IGltcC0+ZnJhbWUoKTsKLSAgICBpZiAo
IWZyYW1lKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgS1VSTCB1cmwg
PSBjb21wbGV0ZVVSTCh0b1dlYkNvcmVTdHJpbmcoYXJnc1swXSkpOwotICAgIGlmICh1cmwuaXNO
dWxsKCkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7Ci0KLSAgICBpZiAoIXNob3Vs
ZEFsbG93TmF2aWdhdGlvbihmcmFtZSkpCi0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7
Ci0KLSAgICBuYXZpZ2F0ZUlmQWxsb3dlZChmcmFtZSwgdXJsLCB0cnVlLCB0cnVlKTsKKyAgICBW
OEJpbmRpbmc6OkxvY2F0aW9uOjpyZXBsYWNlKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIGltcCwg
dG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwog
fQogCkBAIC0zNzgsNCArMzY2LDMgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTG9jYXRp
b24qIGltcGwpCiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKaW5kZXgg
Y2NkZDdjOGNlNzI1NmE2NGUxYTU3YTE1NWZiNmU3MDUyMDYzODE4Ni4uMjE5M2M5ZjMyODJiMTAx
N2MzMTk3NTEwM2U3MTQ5OWEwYTQ5YWYyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5jcHAKQEAgLTg0LDQgKzg0LDkgQEAg
Ym9vbCBTdGF0ZTxWOEJpbmRpbmc+Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQogICAgIHJldHVy
biBTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIH0KIAorYm9vbCBT
dGF0ZTxWOEJpbmRpbmc+OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUqIGZyYW1lKQorewor
ICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjppc1NhZmVTY3JpcHQoZnJhbWUpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L3Nw
ZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNp
YWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmgKaW5kZXggYmFiYTBjNjNjMDg4ZmY3MTQ4NThkNGQw
NmI5ZGZmY2JjMDQxYTcyYy4uMTQzMDViODgyNWYzMGEyNmUyNmI4NWRkZjMyMWY2NDE5ZmY0MDdm
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRp
bmdTdGF0ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5k
aW5nU3RhdGUuaApAQCAtNjAsNiArNjAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZSgpOwogCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNoYXJlZCBp
biBCaW5kaW5nU2VjdXJpdHkKKyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShGcmFtZSop
OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFN0YXRlKCkge30KICAgICB+U3RhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67152</attachid>
            <date>2010-09-09 22:07:48 -0700</date>
            <delta_ts>2010-09-09 22:10:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44891-20100910140746.patch</filename>
            <type>text/plain</type>
            <size>49303</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWZiYTBhYzlmNTIxODgzODMzYzY1YjFkNjQ1ZTZjMmI5MmQwMTEyOS4uOTdiODQwMWQ5YjI3NTAy
ZGIxZGFmNWE0NTNmYjU1NGIwNDRlZjgxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMC0wOS0wMSAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGlu
Z3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmljIGFuZAorICAgICAgICBpbnN0YW50aWF0ZXMg
aXQgZm9yIEpTQyBhbmQgVjguCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0ODkxCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlv
bi5yZXBsYWNlIHRlc3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmVD
b21tb24udnNwcm9wczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93Lmg6CisgICAg
ICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjo6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdMb2NhdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVwbGFjZSk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZy5o
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzaG91bGRBbGxvd05hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dG9MZXhpY2FsRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBsZXRlVVJM
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRp
b246OnJlcGxhY2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmlu
ZGluZ1N0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OmdldEFjdGl2ZUZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Z2V0Rmlyc3RGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
Ojo6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjo6OmFsbG93c0Fj
Y2Vzc0Zyb21GcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNC
aW5kaW5nU3RhdGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y29tcGxldGVVUkwpOgorICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgICogYmlu
ZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6OjphbGxvd3NBY2Nlc3NGcm9tRnJhbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L3Nw
ZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmg6CisKIDIwMTAtMDktMDkgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xh
emtvdi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IDMzZGFkMTBmODE1YjRjOTIyZmJkNmMzYTI1NWFhMzU1ZGM4MzU4MzQu
LjAxZDExY2YyYmY2NDZjMmE4ODEzMjc4MzVhYWY1YTE1MGUxNWZiYjMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtOSw2
ICs5LDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5IFwKIAktSSQoc3JjZGlyKS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMgXAogCS1J
JChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3MvanMgXAorCS1JJChzcmNkaXIpL1dlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24gXAogCS1JJChzcmNkaXIpL1dlYkNvcmUvYmluZGluZ3Mv
Z29iamVjdCBcCiAJLUkkKHNyY2RpcikvV2ViQ29yZS9icmlkZ2UgXAogCS1JJChzcmNkaXIpL1dl
YkNvcmUvYnJpZGdlL2MgXApAQCAtNjIzLDYgKzYyNCwxMiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAorCVdlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nRnJhbWUuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdMb2NhdGlvbi5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5
LmggXAorCVdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBc
CisJV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCBcCisJV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmggXAogCVdlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9DYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIFwKQEAgLTc5Niw2ICs4MDMsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmggXAogCVdlYkNvcmUvYmluZGluZ3MvanMvU3RyaW5nU291cmNlUHJvdmlkZXIuaCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlSlNDbGllbnREYXRhLmggXAorCVdlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwIFwKKwlXZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmggXAogCVdlYkNvcmUvYmlu
ZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL1Njcmlw
dENvbnRyb2xsZXJCYXNlLmggXAogCVdlYkNvcmUvYnJpZGdlL0JyaWRnZS5oIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjI4
Nzc2MGQ2Mzc2ZmRlNTU5ZDgzOGZmMDJmYzY4MTMwMTUyZWI1OC4uODhmMDE0OTNhNmVmNzg0Mjg4
NTZiMzZkYzlhMTBmYTU2ZGQ3NmZmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUxNCw2ICs1MTQsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdGcmFtZS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdMb2NhdGlvbi5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdTZWN1cml0eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1
cml0eUJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1
cml0eUJhc2UuaCcsCkBAIC01MzMsNiArNTM1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU0F0dHJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0
b3IuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNCaW5kaW5nLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwJywK
QEAgLTcxMiw2ICs3MTUsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dlYkNvcmVKU0Ns
aWVudERhdGEuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5n
U3RhdGUuY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0Jp
bmRpbmdTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFz
ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0NoaWxkVGhyZWFkRE9NRGF0YS5jcHAnLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNTdj
ZjUzMTNlMjliMzIxYzEzMjBjOWFlZWJiN2Q5YTg1YWFlZjlhNy4uMDFiZGM3NWM1ZTIyMzNiODdh
MjIyZDFlNWIyYjA0YTZlMWRjYjJlYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xODQsNiArMTg0LDcgQEAgV0VCQ09SRV9JTkNM
VURFUEFUSCA9IFwKICAgICAkJFBXRC9iaW5kaW5ncyBcCiAgICAgJCRQV0QvYmluZGluZ3MvZ2Vu
ZXJpYyBcCiAgICAgJCRQV0QvYmluZGluZ3MvanMgXAorICAgICQkUFdEL2JpbmRpbmdzL2pzL3Nw
ZWNpYWxpemF0aW9uIFwKICAgICAkJFBXRC9icmlkZ2UgXAogICAgICQkUFdEL2JyaWRnZS9jIFwK
ICAgICAkJFBXRC9icmlkZ2UvanNjIFwKQEAgLTM5Miw2ICszOTMsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBiaW5kaW5ncy9qcy9TY3JpcHRWYWx1ZS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NjaGVk
dWxlZEFjdGlvbi5jcHAgXAogICAgIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAgXAorICAgIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBc
CiAgICAgYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwIFwKICAgICBicmlkZ2UvSWRl
bnRpZmllclJlcC5jcHAgXAogICAgIGJyaWRnZS9OUF9qc29iamVjdC5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjZkOWUxYzZkYTczY2U3OWUzNTQ0NDdjMmM3
MWZhOTU0NDgxN2YyYi4uYTRhZGY4OGE4YzY2ODliOTE0NzEzODQ5YzJjMDUzMDc4OWFiNzAwMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MjA5MSwxMCArNDIwOTEs
MzAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEFjdGl2ZURPTUNh
bGxiYWNrLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCi0JCQk8L0ZpbHRlcj4NCi0JCQk8Rmls
dGVyDQotCQkJCU5hbWU9ImdlbmVyaWMiDQotCQkJCT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nRnJhbWUuaCINCisJCQkJCT4NCisJ
CQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xn
ZW5lcmljXEJpbmRpbmdMb2NhdGlvbi5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQmluZGluZ1NlY3Vy
aXR5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCINCisJCQkJ
CT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xnZW5lcmljXEJpbmRpbmdTZWN1cml0eUJhc2UuaCINCisJCQkJCT4NCisJCQkJPC9GaWxl
Pg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEdl
bmVyaWNCaW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmNwcCINCiAJCQkJCT4NCkBAIC00MjQ0OCw2ICs0MjQ2OCwxMCBAQAogCQkJCQk+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNC
aW5kaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNCaW5kaW5nc0FsbEluT25lLmNwcCINCiAJCQkJCT4N
CiAJCQkJPC9GaWxlPg0KQEAgLTQ5NzQzLDYgKzQ5NzY3LDYyIEBACiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcanNcV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIg0KIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XHNwZWNpYWxpemF0aW9uXEpTQmluZGluZ1N0YXRlLmNwcCINCisJCQkJCT4NCisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
CT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
CS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJ
CQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCS8+DQor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXHNwZWNpYWxpemF0aW9uXEpTQmluZGluZ1N0
YXRlLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCiAJCTwvRmlsdGVy
Pg0KIAkJPEZpbHRlcg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZUNvbW1vbi52c3Byb3BzIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZz
cHJvcHMKaW5kZXggYzk4ZTEzYjQ4OGQ0YTE3M2VjOWFjZGMwZWMyYjJiMzE1NzNiNWI5Yy4uODY3
N2MwZWJjZjEwMDZlMDRjZjEzYjI4YTY3OTNjMTc2YjExMzhlNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKQEAgLTcsNyArNyw3IEBACiAJPg0KIAk8
VG9vbA0KIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0
eVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxq
c2MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmlsZWFwaSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxyZW5kZXJpbmdcc3R5bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9t
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3Im
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJc
YXJjaGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cbW9jayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90
OyQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1
Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0
RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZh
dGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0
Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVx6bGliJnF1b3Q7Ig0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1
b3Q7JChQcm9qZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmls
aXR5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
cmlkZ2VcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5n
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xz
dHlsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVj
aWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlz
dG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFy
c2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXGxvYWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFw
cGNhY2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbW9jayZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XG5ldHdvcmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG5ldHdvcmtcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBs
YXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0
Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5z
Y29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0
RGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBo
aWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdG9yYWdlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxp
bmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
XHNxbGl0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1
b3Q7Ig0KIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JF
TkRFUklORztXRUJDT1JFX0NPTlRFWFRfTUVOVVMiDQogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0i
MiINCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIg0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmFhYjg5ZjhiYjQwMDU4
YmZkOWM2NjZmNTdiZDg1NmU4ODk5MTA5My4uODg5M2QwYWVlZjgxNTYxYjg2ZDllMWRmNWRhNmU0
ZmM1MzllYzNlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI4NTEsNiArMjg1MSwxNSBAQAogCQlBNTlFM0MxRjExNTgwRjUxMDA3MjkyOEUgLyogS2V5
RXZlbnRJUGhvbmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBNTlFM0MxRDExNTgwRjUxMDA3MjkyOEUgLyogS2V5RXZlbnRJUGhvbmUubW0gKi87IH07
CiAJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVBRkIzNEQxMTUxNTFBNzAwQjA0
NUNCIC8qIFN0ZXBSYW5nZS5jcHAgKi87IH07CiAJCUE1QUZCMzUwMTE1MTUxQTcwMEIwNDVDQiAv
KiBTdGVwUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE1QUZCMzRFMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuaCAqLzsgfTsKKwkJQTYy
MkE4RUUxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpT
QmluZGluZy5oICovOyB9OworCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5n
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmNwcCAqLzsgfTsKKwkJ
QTYyMkE4RjMxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmluZGluZ1N0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGMTEyMkM0NDQ1MDBBNzg1
QjMgLyogSlNCaW5kaW5nU3RhdGUuaCAqLzsgfTsKKwkJQTYyMkE4RkExMjJDNDRBNjAwQTc4NUIz
IC8qIEJpbmRpbmdMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTYyMkE4RjQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5o
ICovOyB9OworCQlBNjIyQThGQjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNjIyQThGNTEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi87IH07CisJCUE2MjJBOEZDMTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAv
KiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKKwkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmggKi87IH07CisJCUE2MjJBOEZFMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5n
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNjIyQThGODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovOyB9Owor
CQlBNjIyQThGRjEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY5MTIyQzQ0QTYwMEE3
ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovOyB9OwogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZF
Q0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIy
RDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBE
cmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5RDAwQTk4NkQwIC8q
IFJlbmRlclNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAg
Ki87IH07CkBAIC04NzM3LDYgKzg3NDYsMTUgQEAKIAkJQTVBRkIzNEUxMTUxNTFBNzAwQjA0NUNC
IC8qIFN0ZXBSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGVwUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTVDOTc0Q0YxMTQ4NUZGMTAwNjZG
MkFCIC8qIEtleUV2ZW50Q29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
S2V5RXZlbnRDb2NvYS5oOyBwYXRoID0gY29jb2EvS2V5RXZlbnRDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEtleUV2ZW50
Q29jb2EubW07IHBhdGggPSBjb2NvYS9LZXlFdmVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBNjIyQThFRDEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmluZGluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNjIyQThGMDEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCaW5kaW5nU3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGMTEyMkM0NDQ1MDBB
Nzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNCaW5kaW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4
RjQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nTG9jYXRpb24uaDsgcGF0aCA9IGdlbmVyaWMvQmluZGlu
Z0xvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY1MTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQmluZGluZ1NlY3VyaXR5Lmg7IHBhdGggPSBnZW5lcmljL0JpbmRpbmdTZWN1cml0
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2MjJBOEY3
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMv
QmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNjIy
QThGODEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCaW5kaW5nVXRpbGl0aWVzLmg7IHBhdGggPSBnZW5lcmljL0Jp
bmRpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTYyMkE4Rjkx
MjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEdlbmVyaWNCaW5kaW5nLmg7IHBhdGggPSBnZW5lcmljL0dlbmVyaWNCaW5k
aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3NjBEMEIyQTEyMDEwMEEx
NkVDRSAvKiBEcmFnQWN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
cmFnQWN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4Nzg4RjBCMkQw
NEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1l
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MDQsNiArMTQ1MjIsMTUgQEAKIAkJCW5hbWUg
PSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUE2MjJBOEVGMTIy
QzQ0NDUwMEE3ODVCMyAvKiBzcGVjaWFsaXphdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJQTYyMkE4RjAxMjJDNDQ0NTAwQTc4NUIzIC8qIEpTQmlu
ZGluZ1N0YXRlLmNwcCAqLywKKwkJCQlBNjIyQThGMTEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5k
aW5nU3RhdGUuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gc3BlY2lhbGl6YXRpb247CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyog
ZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0x
NjEyMSw2ICsxNjE0OCwxMiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQjVEMzFERjgxMUNGNjEw
QjAwOUYyMkI0IC8qIEFjdGl2ZURPTUNhbGxiYWNrLmNwcCAqLywKIAkJCQlCNUQzMURGOTExQ0Y2
MTBCMDA5RjIyQjQgLyogQWN0aXZlRE9NQ2FsbGJhY2suaCAqLywKKwkJCQlBNjIyQThGNDEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ0xvY2F0aW9uLmggKi8sCisJCQkJQTYyMkE4RjUxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovLAorCQkJCUE2MjJBOEY2MTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLywKKwkJCQlBNjIyQThGNzEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovLAorCQkJCUE2MjJBOEY4MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nVXRpbGl0aWVzLmggKi8sCisJCQkJQTYyMkE4RjkxMjJD
NDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGdl
bmVyaWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYxNjAsNiArMTYxOTMsNyBA
QAogCQkJCUJDQ0U1OEE3MTA2MUU4MkYwMDhGQjM1QSAvKiBDYWxsYmFjayBPYmplY3RzICovLAog
CQkJCUJDQ0U1OEI0MTA2MUU5MjUwMDhGQjM1QSAvKiBDb25zdHJ1Y3RvcnMgKi8sCiAJCQkJQkM0
RURFRjcwQzA4RjQxNDAwN0VERDQ5IC8qIEN1c3RvbSAqLywKKwkJCQlBNjIyQThFRjEyMkM0NDQ1
MDBBNzg1QjMgLyogc3BlY2lhbGl6YXRpb24gKi8sCiAJCQkJMTRERkIzM0YwQTdERjc2MzAwMThG
NzY5IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0Njgg
LyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLywKIAkJCQk5M0Y4QjMwNjBBMzAwRkVB
MDBGNjFBQjggLyogQ29kZUdlbmVyYXRvckpTLnBtICovLApAQCAtMTYxNzMsNiArMTYyMDcsNyBA
QAogCQkJCUM1ODVBNjYxMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmgg
Ki8sCiAJCQkJMUM4MUJBMDMwRTk3MzQ4MzAwMjY2RTA3IC8qIEphdmFTY3JpcHRDYWxsRnJhbWUu
Y3BwICovLAogCQkJCTFDODFCQTA0MEU5NzM0ODMwMDI2NkUwNyAvKiBKYXZhU2NyaXB0Q2FsbEZy
YW1lLmggKi8sCisJCQkJQTYyMkE4RUQxMjJDNDQyQTAwQTc4NUIzIC8qIEpTQmluZGluZy5oICov
LAogCQkJCUJDNTNEQUM0MTE0MzJGRDkwMDBEODE3RSAvKiBKU0RlYnVnV3JhcHBlclNldC5jcHAg
Ki8sCiAJCQkJQkM1M0RBQzExMTQzMkVFRTAwMEQ4MTdFIC8qIEpTRGVidWdXcmFwcGVyU2V0Lmgg
Ki8sCiAJCQkJOTNCNzBENDcwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgKi8s
CkBAIC0yMDQ4NSw2ICsyMDUyMCwxMyBAQAogCQkJCTk3MjA1QUI2MTIzOTI5MTAwMEIxNzM4MCAv
KiBJbWFnZURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCODEyMzkyOTEwMDBC
MTczODAgLyogTWVkaWFEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcyMDVBQkMxMjM5
MjkyNzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIy
QThFRTEyMkM0NDJBMDBBNzg1QjMgLyogSlNCaW5kaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NjIyQThGMzEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5nU3RhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE2MjJBOEZBMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUE2MjJBOEZCMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJp
dHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUE2MjJBOEZEMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNjIyQThGRTEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTYyMkE4RkYx
MjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4OTNDNDdBODEyMzg5MDhCMDAyQjNEODYgLyogRmlsZVdyaXRlckNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4OTNDNDdCODEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLApAQCAtMjI5NTcsNiArMjI5OTksOCBAQAogCQkJCTk3MjA1QUI1
MTIzOTI5MTAwMEIxNzM4MCAvKiBJbWFnZURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3MjA1QUI3MTIzOTI5MTAwMEIxNzM4MCAvKiBNZWRpYURvY3VtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3MjA1QUJCMTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5Eb2N1bWVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBNjIyQThGMjEyMkM0NDQ1MDBBNzg1QjMgLyogSlNCaW5kaW5n
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTYyMkE4RkMxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3QjcxMjM4
QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5
M0M0N0JCMTIzOEEwQTkwMDJCM0Q4NiAvKiBKU0ZpbGVXcml0ZXJDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdET01XaW5k
b3cuaAppbmRleCAwYzQ1MGE1ZDdhZjU4NWJhNTU3YWI3OTZhOGU2MDEyZTkzYjQ2Nzg2Li45NmI4
YjlkNGU3NDVjY2U2YzRkMGIxZDJhZGZmYzc3OWViOTAxMjE5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nRE9NV2luZG93LmgKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXaW5kb3dGZWF0
dXJlcyYgcmF3RmVhdHVyZXMpOwogCi0gICAgLy8gRklYTUU6IFRoZXJlIHNob3VsZCBiZSBhIHBs
YWNlIGZvciBnZW5lcmljIGJpbmRpbmcgdXRpbGl0aWVzLgotICAgIHN0YXRpYyBLVVJMIGNvbXBs
ZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCk7Ci0KIHBy
aXZhdGU6CiAgICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb2Zmc2V0LCBmcm9tIHRoZSBw
YXJlbnQgY29udGVudCBhcmVhLAogICAgIC8vIGFyb3VuZCBuZXdseSBvcGVuZWQgcG9wdXBzIHRo
YXQgZG9uJ3Qgc3BlY2lmeSBhIGxvY2F0aW9uLgpAQCAtMjY4LDE4ICsyNjUsNiBAQCBXZWJDb3Jl
OjpET01XaW5kb3cqIEJpbmRpbmdET01XaW5kb3c8QmluZGluZz46Om9wZW4oU3RhdGU8QmluZGlu
Zz4qIHN0YXRlLAogICAgIHJldHVybiBmcmFtZS0+ZG9tV2luZG93KCk7CiB9CiAKLXRlbXBsYXRl
IDxjbGFzcyBCaW5kaW5nPgotS1VSTCBCaW5kaW5nRE9NV2luZG93PEJpbmRpbmc+Ojpjb21wbGV0
ZVVSTChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVsYXRpdmVVUkwpCi17Ci0gICAgLy8gRm9y
IGhpc3RvcmljYWwgcmVhc29ucywgd2UgbmVlZCB0byBjb21wbGV0ZSB0aGUgVVJMIHVzaW5nIHRo
ZQotICAgIC8vIGR5bmFtaWMgZnJhbWUuCi0gICAgRnJhbWUqIGZyYW1lID0gc3RhdGUtPmdldEZp
cnN0RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gS1VSTCgpOwotICAg
IHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNvbXBsZXRlVVJMKHJlbGF0aXZlVVJMKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gQmluZGluZ0RPTVdpbmRvd19oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmggYi9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0ZyYW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFmZGM3OTQ1
NmFjYzhiYjQ0ZjA0M2ZlNDZiNzRiZjBjNGIzN2U0OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nRnJhbWUuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBCaW5kaW5nRnJhbWVfaAorI2RlZmluZSBCaW5kaW5nRnJhbWVfaAorCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJHZW5lcmljQmluZGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorY2xhc3MgQmluZGluZ0ZyYW1lIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5kaW5nPiosIEZy
YW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7Cit9OworCit0ZW1wbGF0ZSA8Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0ZyYW1l
PEJpbmRpbmc+OjpuYXZpZ2F0ZUlmQWxsb3dlZChTdGF0ZTxCaW5kaW5nPiogc3RhdGUsIEZyYW1l
KiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvY2tCYWNr
Rm9yd2FyZExpc3QpCit7CisgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gc3RhdGUtPmdldEFjdGl2
ZUZyYW1lKCk7CisgICAgaWYgKCFhY3RpdmVGcmFtZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlm
ICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCBzdGF0ZS0+YWxsb3dzQWNjZXNzRnJvbUZy
YW1lKGZyYW1lKSkKKyAgICAgICAgZnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxl
TG9jYXRpb25DaGFuZ2UodXJsLnN0cmluZygpLCBhY3RpdmVGcmFtZS0+bG9hZGVyKCktPm91dGdv
aW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHN0YXRlLT5w
cm9jZXNzaW5nVXNlckdlc3R1cmUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEJpbmRpbmdGcmFtZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQmluZGluZ0xvY2F0aW9uLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGlu
Z0xvY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E1MjgxNGE5ZDlmMTFlOWM3YjI4YWU3NWI0OWM4ZDYz
ZWNmOWU3YgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5k
aW5nTG9jYXRpb24uaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCaW5kaW5nTG9jYXRpb25faAor
I2RlZmluZSBCaW5kaW5nTG9jYXRpb25faAorCisjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5Lmgi
CisjaW5jbHVkZSAiR2VuZXJpY0JpbmRpbmcuaCIKKyNpbmNsdWRlICJMb2NhdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBCaW5kaW5nPgorY2xhc3MgQmlu
ZGluZ0xvY2F0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCByZXBsYWNlKFN0YXRlPEJp
bmRpbmc+KiwgTG9jYXRpb24qLCBjb25zdCBTdHJpbmcmIHVybCk7Cit9OworCit0ZW1wbGF0ZSA8
Y2xhc3MgQmluZGluZz4KK3ZvaWQgQmluZGluZ0xvY2F0aW9uPEJpbmRpbmc+OjpyZXBsYWNlKFN0
YXRlPEJpbmRpbmc+KiBzdGF0ZSwgTG9jYXRpb24qIGxvY2F0aW9uLCBjb25zdCBTdHJpbmcmIHVy
bCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBsb2NhdGlvbi0+ZnJhbWUoKTsKKyAgICBpZiAoIWZy
YW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBLVVJMIGZ1bGxVUkwgPSBjb21wbGV0ZVVSTChz
dGF0ZSwgdXJsKTsKKyAgICBpZiAoZnVsbFVSTC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk8QmluZGluZz46OnNob3VsZEFsbG93TmF2aWdhdGlv
bihzdGF0ZSwgZnJhbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBCaW5kaW5nOjpGcmFtZTo6
bmF2aWdhdGVJZkFsbG93ZWQoc3RhdGUsIGZyYW1lLCBmdWxsVVJMLCB0cnVlLCB0cnVlKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQmluZGluZ0xvY2F0aW9uX2gK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oIGIv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgKaW5kZXggZDAzMGI0NTg0
MTcwZjAwMWYyNjY0M2JiZDhjZGFlZGNjNWMzNTI5NC4uOGJmMTM0Mzk4MWU2ZGIwMmZiMWJiOTQ5
YjJiZTYzMjU1YzA1YWJjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dl
bmVyaWNCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5k
aW5nLmgKQEAgLTMxLDYgKzMxLDkgQEAKICNpZm5kZWYgR2VuZXJpY0JpbmRpbmdfaAogI2RlZmlu
ZSBHZW5lcmljQmluZGluZ19oCiAKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVXNlZCB0byBpbnN0YW50aWF0
ZSBiaW5kaW5nIHRlbXBsYXRlcyBmb3IgYW55IG1ldGhvZHMgc2hhcmVkIGFtb25nIGFsbApAQCAt
NDcsNiArNTAsMTcgQEAgY2xhc3MgU3RhdGU8R2VuZXJpY0JpbmRpbmc+IHsKICAgICAvLyBBbnkg
bWV0aG9kcyBzaGFyZWQgYWNyb3NzIGJpbmRpbmdzIGNhbiBnbyBoZXJlLgogfTsKIAordGVtcGxh
dGUgPGNsYXNzIEJpbmRpbmc+CitLVVJMIGNvbXBsZXRlVVJMKFN0YXRlPEJpbmRpbmc+KiBzdGF0
ZSwgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKK3sKKyAgICAvLyBGb3IgaGlzdG9yaWNhbCBy
ZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlCisgICAgLy8gZHlu
YW1pYyBmcmFtZS4KKyAgICBGcmFtZSogZnJhbWUgPSBzdGF0ZS0+Z2V0Rmlyc3RGcmFtZSgpOwor
ICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBLVVJMKCk7CisgICAgcmV0dXJuIGZyYW1l
LT5sb2FkZXIoKS0+Y29tcGxldGVVUkwocmVsYXRpdmVVUkwpOworfQorCiB9CiAKICNlbmRpZiAv
LyBHZW5lcmljQmluZGluZ19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDJj
OWJlYWRkNmE1ZTc3MWQxODg2OTQyNmY1ZmViMmIyNTAxYjBmCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmcuaApAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBK
U0JpbmRpbmdfaAorI2RlZmluZSBKU0JpbmRpbmdfaAorCisjaW5jbHVkZSAiQmluZGluZ0ZyYW1l
LmgiCisjaW5jbHVkZSAiQmluZGluZ0xvY2F0aW9uLmgiCisjaW5jbHVkZSAiQmluZGluZ1NlY3Vy
aXR5LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gSW5zdGFudGlhdGUgYmluZGluZyB0
ZW1wbGF0ZSBjbGFzc2VzIGZvciBKU0MuCitjbGFzcyBKU0JpbmRpbmcgeworcHVibGljOgorICAg
IHR5cGVkZWYgQmluZGluZ0ZyYW1lPEpTQmluZGluZz4gRnJhbWU7CisgICAgdHlwZWRlZiBCaW5k
aW5nTG9jYXRpb248SlNCaW5kaW5nPiBMb2NhdGlvbjsKK307CisKK3R5cGVkZWYgQmluZGluZ1Nl
Y3VyaXR5PEpTQmluZGluZz4gSlNCaW5kaW5nU2VjdXJpdHk7CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEpTQmluZGluZ19oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOTIyZTQ0OTcxOGMxNzQzYjYzY2MyN2UwM2VjNTI5YzM1
ODFjOGI3MS4uNmUxY2MxZTIzYmExYWY4MzRjZjM3OWUzM2JhNWJjZmViOTNhYmZlNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiSlNBdHRyQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU0F1ZGlvQ29uc3RydWN0b3IuY3BwIgorI2luY2x1ZGUgIkpTQmluZGlu
Z1N0YXRlLmNwcCIKICNpbmNsdWRlICJKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNDU1NSdWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0NTU1J1bGVMaXN0Q3VzdG9tLmNw
cCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAppbmRleCA5NjM5NGViNzViZGJiMTJm
ZTQwN2YwMzIwMjJkYmQ1N2NjODY3YWEzLi43NGM4MTMxMTIzZjQzMDA1NDU4ODBjNTgyMWFiOWRk
ODg3NDgyN2I3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0zOCwxMSAr
MzgsMTQgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0JpbmRp
bmcuaCIKKyNpbmNsdWRlICJKU0JpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29yZUV4
Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNE
ZWJ1Z1dyYXBwZXJTZXQuaCIKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNFeGNlcHRpb25CYXNlLmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgi
CiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5oIgogI2lu
Y2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKQEAgLTYzOSw4ICs2NDIsOCBAQCBi
b29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSwg
U3RyaW5nJiBtZXNzYWdlKQogCiBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBGcmFtZSogbGV4aWNhbEZyYW1lID0gdG9MZXhp
Y2FsRnJhbWUoZXhlYyk7Ci0gICAgcmV0dXJuIGxleGljYWxGcmFtZSAmJiBsZXhpY2FsRnJhbWUt
PmxvYWRlcigpLT5zaG91bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpOworICAgIEpTQmluZGluZ1N0
YXRlIHN0YXRlKGV4ZWMpOworICAgIHJldHVybiBKU0JpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxs
b3dOYXZpZ2F0aW9uKCZzdGF0ZSwgZnJhbWUpOwogfQogCiBib29sIGFsbG93U2V0dGluZ1NyY1Rv
SmF2YXNjcmlwdFVSTChFeGVjU3RhdGUqIGV4ZWMsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTY3MSwyNiArNjc0LDIzIEBAIHZv
aWQgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIAogRnJhbWUqIHRvTGV4aWNhbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICByZXR1cm4gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBs
KCktPmZyYW1lKCk7CisgICAgcmV0dXJuIEpTQmluZGluZ1N0YXRlKGV4ZWMpLmdldEFjdGl2ZUZy
YW1lKCk7CiB9CiAKIEZyYW1lKiB0b0R5bmFtaWNGcmFtZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgcmV0dXJuIGFzSlNET01XaW5kb3coZXhlYy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKS0+aW1w
bCgpLT5mcmFtZSgpOworICAgIHJldHVybiBKU0JpbmRpbmdTdGF0ZShleGVjKS5nZXRGaXJzdEZy
YW1lKCk7CiB9CiAKIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKIHsKLSAgICByZXR1cm4g
U2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CisgICAgcmV0dXJuIEpT
QmluZGluZ1N0YXRlKEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCkpLnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpOwogfQogCiBLVVJMIGNvbXBsZXRlVVJMKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICAvLyBGb3IgaGlzdG9yaWNhbCBy
ZWFzb25zLCB3ZSBuZWVkIHRvIGNvbXBsZXRlIHRoZSBVUkwgdXNpbmcgdGhlIGR5bmFtaWMgZnJh
bWUuCi0gICAgRnJhbWUqIGZyYW1lID0gdG9EeW5hbWljRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFm
cmFtZSkKLSAgICAgICAgcmV0dXJuIEtVUkwoKTsKLSAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigp
LT5jb21wbGV0ZVVSTChyZWxhdGl2ZVVSTCk7CisgICAgSlNCaW5kaW5nU3RhdGUgc3RhdGUoZXhl
Yyk7CisgICAgcmV0dXJuIGNvbXBsZXRlVVJMKCZzdGF0ZSwgcmVsYXRpdmVVUkwpOwogfQogCiBK
U1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1Zh
bHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA5OTE2NmNkOTE1N2NiMDlkODA2NWExMmRkN2M2NDc3
Zjc0Njc3NDMzLi4wOWU3Mjk0YWEwZGY3NzYyYTg5ZDI5NmQ4ODI5NjA4YzMwMGJlOTE2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTI3LDYgKzI3LDggQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkpTQmluZGluZy5oIgorI2luY2x1ZGUgIkpTQmlu
ZGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01X
aW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJLVVJMLmgiCkBAIC0xODYsMTIgKzE4OCw4IEBAIHZv
aWQgSlNMb2NhdGlvbjo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKCiAKIHN0YXRpYyB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEV4
ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgbG9ja0hp
c3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAgICBGcmFtZSogbGV4aWNhbEZy
YW1lID0gdG9MZXhpY2FsRnJhbWUoZXhlYyk7Ci0gICAgaWYgKCFsZXhpY2FsRnJhbWUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSB8fCBhbGxv
d3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgZnJhbWUpKQotICAgICAgICBmcmFtZS0+cmVkaXJlY3RT
Y2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZSh1cmwuc3RyaW5nKCksIGxleGljYWxG
cmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNr
Rm9yd2FyZExpc3QsIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICBKU0JpbmRpbmdTdGF0
ZSBzdGF0ZShleGVjKTsKKyAgICBKU0JpbmRpbmc6OkZyYW1lOjpuYXZpZ2F0ZUlmQWxsb3dlZCgm
c3RhdGUsIGZyYW1lLCB1cmwsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKIH0K
IAogdm9pZCBKU0xvY2F0aW9uOjpzZXRIcmVmKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1
ZSkKQEAgLTMwMywxOCArMzAxLDggQEAgdm9pZCBKU0xvY2F0aW9uOjpzZXRIYXNoKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIAogSlNWYWx1ZSBKU0xvY2F0aW9uOjpyZXBsYWNlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCktPmZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBLVVJM
IHVybCA9IGNvbXBsZXRlVVJMKGV4ZWMsIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgw
KS50b1N0cmluZyhleGVjKSkpOwotICAgIGlmICh1cmwuaXNOdWxsKCkpCi0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91bGRBbGxvd05hdmlnYXRpb24oZXhlYywg
ZnJhbWUpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQotICAgIG5hdmlnYXRlSWZB
bGxvd2VkKGV4ZWMsIGZyYW1lLCB1cmwsIHRydWUsIHRydWUpOworICAgIEpTQmluZGluZ1N0YXRl
IHN0YXRlKGV4ZWMpOworICAgIEpTQmluZGluZzo6TG9jYXRpb246OnJlcGxhY2UoJnN0YXRlLCBp
bXBsKCksIHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKSkp
OwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1
MGI4MTMxOGY1NzdjMmUzYWUyYWE1YjM0MDcwNzMzM2YzMWNkOGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcApA
QCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTQmluZGluZ1N0
YXRlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCisjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1lOworCitGcmFtZSog
U3RhdGU8SlNCaW5kaW5nPjo6Z2V0QWN0aXZlRnJhbWUoKQoreworICAgIHJldHVybiBhc0pTRE9N
V2luZG93KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpLT5mcmFtZSgpOwor
fQorCitGcmFtZSogU3RhdGU8SlNCaW5kaW5nPjo6Z2V0Rmlyc3RGcmFtZSgpCit7CisgICAgcmV0
dXJuIGFzSlNET01XaW5kb3cobV9leGVjLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCkt
PmZyYW1lKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkKK3sKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCk7Cit9CisKK2Jvb2wgU3RhdGU8SlNCaW5kaW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZyYW1l
KEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6YWxsb3dzQWNjZXNzRnJvbUZy
YW1lKG1fZXhlYywgZnJhbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjY0MDE0MDFmNTZiOTY4YTFlNTZjYWQ1M2E5N2M4YmZmNDkzZTg4MAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5n
U3RhdGUuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU0JpbmRpbmdTdGF0ZV9oCisjZGVmaW5l
IEpTQmluZGluZ1N0YXRlX2gKKworI2luY2x1ZGUgIkdlbmVyaWNCaW5kaW5nLmgiCisjaW5jbHVk
ZSAiSlNCaW5kaW5nLmgiCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBFeGVjU3RhdGU7CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZyYW1l
OworCit0ZW1wbGF0ZSA8PgorY2xhc3MgU3RhdGU8SlNCaW5kaW5nPiA6IHB1YmxpYyBTdGF0ZTxH
ZW5lcmljQmluZGluZz4geworcHVibGljOgorICAgIGV4cGxpY2l0IFN0YXRlKEpTQzo6RXhlY1N0
YXRlKiBleGVjKQorICAgICAgICA6IG1fZXhlYyhleGVjKQorICAgIHsKKyAgICB9CisKKyAgICB2
aXJ0dWFsIH5TdGF0ZSgpCisgICAgeworICAgIH0KKworICAgIEZyYW1lKiBnZXRBY3RpdmVGcmFt
ZSgpOworICAgIEZyYW1lKiBnZXRGaXJzdEZyYW1lKCk7CisKKyAgICBib29sIHByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpOworCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHNoYXJlZCBpbiBC
aW5kaW5nU2VjdXJpdHkKKyAgICBib29sIGFsbG93c0FjY2Vzc0Zyb21GcmFtZShGcmFtZSopOwor
Citwcml2YXRlOgorICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7Cit9OworCit0eXBlZGVmIFN0
YXRlPEpTQmluZGluZz4gSlNCaW5kaW5nU3RhdGU7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEpTQmluZGluZ1N0YXRlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhCaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4
IDU4OTg5ZWQ4Y2Q1NDM4MDk1NGE5NzQ1ZGUxZjcwODI1ZDk4ODlmYjQuLjU2NmU4YWM5YWM1MmU5
OGZjNWU5MjFjZGQ1NGJkMDIyNDAwN2MzYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAt
MzEsNiArMzEsOCBAQAogI2lmbmRlZiBWOEJpbmRpbmdfaAogI2RlZmluZSBWOEJpbmRpbmdfaAog
CisjaW5jbHVkZSAiQmluZGluZ0ZyYW1lLmgiCisjaW5jbHVkZSAiQmluZGluZ0xvY2F0aW9uLmgi
CiAjaW5jbHVkZSAiQmluZGluZ1NlY3VyaXR5LmgiCiAjaW5jbHVkZSAiTWF0aEV4dHJhcy5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC01MCwxNiArNTIsMTggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVmFsdWU7CiAgICAgICAgIHR5cGVkZWYgVjhCaW5kaW5nRE9NV2luZG93IERPTVdpbmRv
dzsKKyAgICAgICAgdHlwZWRlZiBCaW5kaW5nRnJhbWU8VjhCaW5kaW5nPiBGcmFtZTsKKyAgICAg
ICAgdHlwZWRlZiBCaW5kaW5nTG9jYXRpb248VjhCaW5kaW5nPiBMb2NhdGlvbjsKIAogICAgICAg
ICBzdGF0aWMgVmFsdWUgZW1wdHlTY3JpcHRWYWx1ZSgpIHsgcmV0dXJuIHY4OjpMb2NhbDx2ODo6
VmFsdWU+KCk7IH0KICAgICB9OwogICAgIHR5cGVkZWYgQmluZGluZ1NlY3VyaXR5PFY4QmluZGlu
Zz4gVjhCaW5kaW5nU2VjdXJpdHk7Ci0gICAgCisKICAgICBlbnVtIEV4dGVybmFsTW9kZSB7CiAg
ICAgICAgIEV4dGVybmFsaXplLAogICAgICAgICBEb05vdEV4dGVybmFsaXplCiAgICAgfTsKLSAg
ICAKKwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTdHJpbmdUeXBlPgogICAgIFN0cmluZ1R5cGUg
djhTdHJpbmdUb1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZywg
RXh0ZXJuYWxNb2RlIGV4dGVybmFsKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApp
bmRleCAyZTVjZjhiMGY1Mjc2Zjc3NjNmZjM2OWM0ZTQwNTcyMzlmZGEwZGIwLi5lNDk3MDcxZjI5
OTUwY2Q3OGQ5NjEyZGUwMzMzYjFjZGIyODAxNGMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgot
I2luY2x1ZGUgIlY4QmluZGluZ0RPTVdpbmRvdy5oIiAvLyBGSVhNRTogcmVtb3ZlIHdoZW4gY29t
cGxldGVVUkwgbW92ZXMKICNpbmNsdWRlICJWOEJpbmRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIlY4
UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCkBAIC0xMTIsMTYgKzExMSwxMiBA
QCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbihGcmFtZSogZnJhbWUpCiAKIEtVUkwgY29tcGxl
dGVVUkwoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCkKIHsKLSAgICByZXR1cm4gVjhCaW5kaW5n
RE9NV2luZG93Ojpjb21wbGV0ZVVSTChWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCByZWxhdGl2ZVVS
TCk7CisgICAgcmV0dXJuIGNvbXBsZXRlVVJMKFY4QmluZGluZ1N0YXRlOjpPbmx5KCksIHJlbGF0
aXZlVVJMKTsKIH0KIAogdm9pZCBuYXZpZ2F0ZUlmQWxsb3dlZChGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmIHVybCwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQog
ewotICAgIEZyYW1lKiBjYWxsaW5nT3JFbnRlcmVkID0gY2FsbGluZ09yRW50ZXJlZEZyYW1lKCk7
Ci0gICAgaWYgKCFjYWxsaW5nT3JFbnRlcmVkKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFw
cm90b2NvbElzSmF2YVNjcmlwdCh1cmwpIHx8IFNjcmlwdENvbnRyb2xsZXI6OmlzU2FmZVNjcmlw
dChmcmFtZSkpCi0gICAgICAgIGZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxv
Y2F0aW9uQ2hhbmdlKHVybC5zdHJpbmcoKSwgY2FsbGluZ09yRW50ZXJlZC0+bG9hZGVyKCktPm91
dGdvaW5nUmVmZXJyZXIoKSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKTsKKyAgICByZXR1cm4gVjhCaW5kaW5nOjpGcmFtZTo6bmF2aWdh
dGVJZkFsbG93ZWQoVjhCaW5kaW5nU3RhdGU6Ok9ubHkoKSwgZnJhbWUsIHVybCwgbG9ja0hpc3Rv
cnksIGxvY2tCYWNrRm9yd2FyZExpc3QpOwogfQogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBn
ZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggYWMzMDVjOTdmMDA5YmMwZGFiZjFiNGE3ZGIw
ZWFhMmViYzI5ODZiNS4uNjA2OGFhMjFhMjYxZWY5NGJjYzFmMmRhMGFmM2VlMDQ3NDRiOGVjZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAK
QEAgLTI5MiwxOSArMjkyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4TG9jYXRpb246OnJl
cGxhY2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgIElOQ19TVEFUUygi
RE9NLkxvY2F0aW9uLnJlcGxhY2UiKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRl
ciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgTG9jYXRpb24qIGltcCA9IFY4TG9jYXRpb246OnRvTmF0
aXZlKGhvbGRlcik7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSBpbXAtPmZyYW1lKCk7Ci0gICAgaWYg
KCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKLQotICAgIEtVUkwgdXJs
ID0gY29tcGxldGVVUkwodG9XZWJDb3JlU3RyaW5nKGFyZ3NbMF0pKTsKLSAgICBpZiAodXJsLmlz
TnVsbCgpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwotCi0gICAgaWYgKCFzaG91
bGRBbGxvd05hdmlnYXRpb24oZnJhbWUpKQotICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgp
OwotCi0gICAgbmF2aWdhdGVJZkFsbG93ZWQoZnJhbWUsIHVybCwgdHJ1ZSwgdHJ1ZSk7CisgICAg
VjhCaW5kaW5nOjpMb2NhdGlvbjo6cmVwbGFjZShWOEJpbmRpbmdTdGF0ZTo6T25seSgpLCBpbXAs
IHRvV2ViQ29yZVN0cmluZyhhcmdzWzBdKSk7CiAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsK
IH0KIApAQCAtMzc4LDQgKzM2NiwzIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KExvY2F0
aW9uKiBpbXBsKQogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCmluZGV4
IGNjZGQ3YzhjZTcyNTZhNjRlMWE1N2ExNTVmYjZlNzA1MjA2MzgxODYuLjIxOTNjOWYzMjgyYjEw
MTdjMzE5NzUxMDNlNzE0OTlhMGE0OWFmMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3RhdGUuY3BwCkBAIC04NCw0ICs4NCw5IEBA
IGJvb2wgU3RhdGU8VjhCaW5kaW5nPjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKICAgICByZXR1
cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCk7CiB9CiAKK2Jvb2wg
U3RhdGU8VjhCaW5kaW5nPjo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKEZyYW1lKiBmcmFtZSkKK3sK
KyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6aXNTYWZlU2NyaXB0KGZyYW1lKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9z
cGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9zcGVj
aWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oCmluZGV4IGJhYmEwYzYzYzA4OGZmNzE0ODU4ZDRk
MDZiOWRmZmNiYzA0MWE3MmMuLjE0MzA1Yjg4MjVmMzBhMjZlMjZiODVkZGYzMjFmNjQxOWZmNDA3
ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5k
aW5nU3RhdGUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L3NwZWNpYWxpemF0aW9uL1Y4Qmlu
ZGluZ1N0YXRlLmgKQEAgLTYwLDYgKzYwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKTsKIAorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzaGFyZWQg
aW4gQmluZGluZ1NlY3VyaXR5CisgICAgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoRnJhbWUq
KTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTdGF0ZSgpIHt9CiAgICAgflN0YXRlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>