<?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>210167</bug_id>
          
          <creation_ts>2020-04-07 17:15:18 -0700</creation_ts>
          <short_desc>Adopt interface AVAudioRoutingArbiter for Mac</short_desc>
          <delta_ts>2020-04-15 08:29:34 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638895</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-07 17:15:18 -0700</bug_when>
    <thetext>Adopt interface AVAudioRoutingArbiter for Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638897</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-07 17:16:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/59113994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638908</commentid>
    <comment_count>2</comment_count>
      <attachid>395764</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-07 18:20:01 -0700</bug_when>
    <thetext>Created attachment 395764
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639185</commentid>
    <comment_count>3</comment_count>
      <attachid>395847</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-08 11:42:14 -0700</bug_when>
    <thetext>Created attachment 395847
Fix unified build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640242</commentid>
    <comment_count>4</comment_count>
      <attachid>395847</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-10 10:21:18 -0700</bug_when>
    <thetext>Comment on attachment 395847
Fix unified build failures

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

Looks like WebGLLayer.mm was fixed since you uploaded this patch, so you&apos;ll need to rebase before landing.

&gt; Source/WebCore/platform/audio/mac/AudioSessionMac.mmSource/WebCore/platform/audio/mac/AudioSessionMac.cpp:121
&gt; +    [[PAL::getAVAudioRoutingArbiterClass() sharedRoutingArbiter] beginArbitrationWithCategory:arbitrationCategory completionHandler:[this](BOOL defaultDeviceChanged, NSError * _Nullable error) {

I know `this` is safe because the class is a singleton, but it still makes me nervous.  I don&apos;t really have a better suggestion though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640418</commentid>
    <comment_count>5</comment_count>
      <attachid>396133</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-10 16:37:38 -0700</bug_when>
    <thetext>Created attachment 396133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640717</commentid>
    <comment_count>6</comment_count>
      <attachid>396133</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-04-12 11:57:44 -0700</bug_when>
    <thetext>Comment on attachment 396133
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        Add a new XPC object, AudioSessionRouterAbitrator/Proxy which passes routing arbitration

I don&apos;t think you mean XPC here.

&gt; Source/WebKit/ChangeLog:12
&gt; +

Can you add a little bit of detail about what exactly audio routing arbitration is and why WebCore needs to be involved? I think that would aid reviewing the design here.

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:542
&gt; +#if HAVE(AVAUDIO_ROUTING_ARBITER)
&gt; +    UniqueRef&lt;AudioSessionRoutingArbitratorProxy&gt; m_routingArbitrator;
&gt; +#endif

Is there a way this can be made non-platform specific? The goal has been to try and create abstractions for things like this that other ports could then implement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640911</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-13 09:32:26 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; Comment on attachment 396133 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396133&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; +        Add a new XPC object, AudioSessionRouterAbitrator/Proxy which passes routing arbitration
&gt; 
&gt; I don&apos;t think you mean XPC here.

Sure, it&apos;s an object that facilitates XPC by bridging the UIProcess/WebContent process boundary. So, I guess it&apos;s a cross-process object pair.

&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.h:542
&gt; &gt; +#if HAVE(AVAUDIO_ROUTING_ARBITER)
&gt; &gt; +    UniqueRef&lt;AudioSessionRoutingArbitratorProxy&gt; m_routingArbitrator;
&gt; &gt; +#endif
&gt; 
&gt; Is there a way this can be made non-platform specific? The goal has been to
&gt; try and create abstractions for things like this that other ports could then
&gt; implement.

Sure, I&apos;ll make AudioSessionRoutingArbitratorProxy the abstraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640916</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-04-13 09:36:16 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #7)
&gt; (In reply to Sam Weinig from comment #6)
&gt; &gt; Comment on attachment 396133 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396133&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; &gt; +        Add a new XPC object, AudioSessionRouterAbitrator/Proxy which passes routing arbitration
&gt; &gt; 
&gt; &gt; I don&apos;t think you mean XPC here.
&gt; 
&gt; Sure, it&apos;s an object that facilitates XPC by bridging the
&gt; UIProcess/WebContent process boundary. So, I guess it&apos;s a cross-process
&gt; object pair.
&gt; 

I really just meant that &quot;XPC object&quot; has an existing meaning in Darwin of an instance of &quot;xpc_object_t&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640923</commentid>
    <comment_count>9</comment_count>
      <attachid>396295</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-13 09:42:41 -0700</bug_when>
    <thetext>Created attachment 396295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640927</commentid>
    <comment_count>10</comment_count>
      <attachid>396296</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-13 09:44:42 -0700</bug_when>
    <thetext>Created attachment 396296
Patch (with rename enabled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640991</commentid>
    <comment_count>11</comment_count>
      <attachid>396296</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-13 10:57:06 -0700</bug_when>
    <thetext>Comment on attachment 396296
Patch (with rename enabled)

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

&gt; Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp:29
&gt; +#if ENABLE(ROUTING_ARBITRATION) &amp;&amp; !HAVE(AVAUDIO_ROUTING_ARBITER)

Do we need to use both two macros here?

&gt; Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in:26
&gt; +    LeaveRoutingArbitration();

EndRoutingArbitration sounds better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641007</commentid>
    <comment_count>12</comment_count>
      <attachid>396311</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-13 11:26:42 -0700</bug_when>
    <thetext>Created attachment 396311
Patch (with rename enabled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641136</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-13 15:22:04 -0700</bug_when>
    <thetext>(In reply to Peng Liu from comment #11)
&gt; Comment on attachment 396296 [details]
&gt; Patch (with rename enabled)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396296&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.cpp:29
&gt; &gt; +#if ENABLE(ROUTING_ARBITRATION) &amp;&amp; !HAVE(AVAUDIO_ROUTING_ARBITER)
&gt; 
&gt; Do we need to use both two macros here?

Yes, because otherwise we will end up with duplicate symbols.

&gt; &gt; Source/WebKit/UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in:26
&gt; &gt; +    LeaveRoutingArbitration();
&gt; 
&gt; EndRoutingArbitration sounds better?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641152</commentid>
    <comment_count>14</comment_count>
      <attachid>396311</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-13 15:49:01 -0700</bug_when>
    <thetext>Comment on attachment 396311
Patch (with rename enabled)

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

&gt; Source/WebKit/UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:122
&gt; +            for (auto&amp; callback : m_enqueuedCallbacks)
&gt; +                callback(error ? RoutingArbitrationError::Failed : RoutingArbitrationError::None, defaultDeviceChanged ? DefaultRouteChanged::Yes : DefaultRouteChanged::No);
&gt; +
&gt; +            m_enqueuedCallbacks.clear();

Is there any chance that calling the callback could allow pending messages to be processed? If so, it would be safer to copy the callbacks to a new vector and clear m_enqueuedCallbacks first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641403</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-14 09:21:20 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #14)
&gt; Comment on attachment 396311 [details]
&gt; Patch (with rename enabled)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396311&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Media/cocoa/AudioSessionRoutingArbitratorProxyCocoa.mm:122
&gt; &gt; +            for (auto&amp; callback : m_enqueuedCallbacks)
&gt; &gt; +                callback(error ? RoutingArbitrationError::Failed : RoutingArbitrationError::None, defaultDeviceChanged ? DefaultRouteChanged::Yes : DefaultRouteChanged::No);
&gt; &gt; +
&gt; &gt; +            m_enqueuedCallbacks.clear();
&gt; 
&gt; Is there any chance that calling the callback could allow pending messages
&gt; to be processed? If so, it would be safer to copy the callbacks to a new
&gt; vector and clear m_enqueuedCallbacks first.

Since we&apos;re always clearing the callbacks afterwards, we should absolutely WTFMove them into a new vector first. Good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641447</commentid>
    <comment_count>16</comment_count>
      <attachid>396436</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-14 10:34:55 -0700</bug_when>
    <thetext>Created attachment 396436
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641542</commentid>
    <comment_count>17</comment_count>
      <attachid>396461</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-14 14:20:22 -0700</bug_when>
    <thetext>Created attachment 396461
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641569</commentid>
    <comment_count>18</comment_count>
      <attachid>396461</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-14 15:11:44 -0700</bug_when>
    <thetext>Comment on attachment 396461
Patch for landing

Previously failing wincairo bot succeeded. Landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641576</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-14 15:35:52 -0700</bug_when>
    <thetext>Committed r260102: &lt;https://trac.webkit.org/changeset/260102&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396461.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641700</commentid>
    <comment_count>20</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-15 00:13:45 -0700</bug_when>
    <thetext>Reopen this bug to fix a build failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641701</commentid>
    <comment_count>21</comment_count>
      <attachid>396508</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-15 00:17:09 -0700</bug_when>
    <thetext>Created attachment 396508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641806</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-15 08:29:33 -0700</bug_when>
    <thetext>Committed r260128: &lt;https://trac.webkit.org/changeset/260128&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396508.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395764</attachid>
            <date>2020-04-07 18:20:01 -0700</date>
            <delta_ts>2020-04-08 11:42:14 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>20291</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggY2VhNDUwZWFjMjEuLmJhOTU4OWI0ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA0LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQg
aW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWFjcm8gSEFWRV9BVkFVRElPX1JP
VVRJTkdfQVJCSVRFUi4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMC0w
NC0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VXBkYXRlIG1pbmltdW0gSUNVIHZlcnNpb24gdG8gNjAuMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRl
eCAzNmEzZjQ2NGE1OS4uZjg4MTA1NzMyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCkBAIC02NjEs
MyArNjYxLDcgQEAKICNpZiBQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEzMDQwMAogI2RlZmluZSBIQVZFX1VJU0NFTkVfQkFTRURfVklFV19TRVJW
SUNFX1NUQVRFX05PVElGSUNBVElPTlMgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZpbmUgSEFW
RV9BVkFVRElPX1JPVVRJTkdfQVJCSVRFUiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhZWM4YjVl
YzE1MS4uNTQxOGM1ZjVhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMC0wNC0w
NyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVy
ZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpjYXRlZ29yeU5hbWUpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9u
TWFjLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZSk6CisK
KyAgICAgICAgRml4IHVuaWZpZWQgYnVpbGQgZmFpbHVyZXMuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBkaXNw
bGF5XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3Rv
cmVXaXRoU2l6ZTp1c2luZ0FscGhhOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGJpbmRGcmFt
ZWJ1ZmZlclRvTmV4dEF2YWlsYWJsZVN1cmZhY2VdKToKKwogMjAyMC0wNC0wNiAgRGF2aWQgS2ls
emVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZS1hZnRlci1tb3ZlIG9mIFZl
Y3RvcjxNYW5pcHVsYXRpb25Ub2tlbj4gaW4gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Om9i
c2VydmVQYXJhZ3JhcGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGZhNTQzM2MyZWNjLi5iMGU1
MjhhZDA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMDcg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZh
Y2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzb2Z0bGluayBmb3IgQVZBdWRpb1JvdXRpbmdB
cmJpdGVyLgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6Cisg
ICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOgorCiAyMDIwLTA0LTA1
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHZhbHVlIG9m
IFtBVlBsYXllclZpZXdDb250cm9sbGVyIGlzUGljdHVyZUluUGljdHVyZVBvc3NpYmxlXSBpcyBO
TyBpbiB0aGUgZmlyc3QgYXR0ZW1wdCB0byBlbnRlciBQaVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCBlMWYyMTNlYTVl
ZC4uMTI3ODM1MzdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTc4LDYgKzc4LDEwIEBAIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXplcikKIFNPRlRfTElOS19DTEFTU19G
T1JfSEVBREVSKFBBTCwgQVZTcGVlY2hVdHRlcmFuY2UpCiAjZW5kaWYKIAorI2lmIEhBVkUoQVZB
VURJT19ST1VUSU5HX0FSQklURVIpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFW
QXVkaW9Sb3V0aW5nQXJiaXRlcikKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCiBT
T0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikKIFNPRlRfTElO
S19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1t
CmluZGV4IDUxYjY2MzZhYWUxLi5hMmNmYjdlNGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMDQsNiArMTA0
LDEwIEBAIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlNwZWVjaFN5bnRoZXNpemVyLCBQCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hVdHRlcmFuY2UsIFBBTF9F
WFBPUlQpCiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCitTT0ZU
X0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZB
dWRpb1JvdXRpbmdBcmJpdGVyLCBQQUxfRVhQT1JUKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0o
V0FUQ0hPUykKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlJvdXRlRGV0ZWN0b3IsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1Nf
Rk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRl
b1BlcmZvcm1hbmNlTWV0cmljcywgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IGZmYzYxYjQ4NjU1Li5hNGRlNWY2Y2E5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0xODEsNyArMTgxLDcgQEAgcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tCiBwbGF0
Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAKIHBsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0ZpbGVSZWFkZXJNYWMuY3BwCiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyTWFjLmNwcAotcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAK
K3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KIHBsYXRmb3JtL2F1ZGlvL21h
Yy9DQVJpbmdCdWZmZXIuY3BwCiBwbGF0Zm9ybS9hdWRpby9tYWMvRkZURnJhbWVNYWMuY3BwCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAzYWQ1M2NmNWQyZC4uMDU2MzMwZTI4ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTQ0LDcgKzEzOTQ0LDcgQEAK
IAkJQ0Q1MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q1NEE3NjAxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NEE3NjExODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25N
YWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9u
TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1NERFNDkxNzQ2OUM2RDAw
NUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJJT1Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY5MDE0NzVCNjc4MDAxRDBC
RDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU4OTQ5MzIxODc0MDY0MDA0RjQyNEEgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MTU1LDcgKzI5MTU1LDcgQEAKIAkJCQkwNzNCODc2MzFFNDM4
NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi8sCiAJCQkJMDczQjg3NjUx
RTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovLAogCQkJCTA3M0I4
NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8sCi0JCQkJ
Q0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8sCisJCQkJ
Q0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5tbSAqLywKIAkJCQkw
NzNCODc1NzFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmNwcCAq
LywKIAkJCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uLmggKi8sCiAJCQkJQ0RDNzM0MTIxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5j
cHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVk
aW9TZXNzaW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbQppbmRleCBjMjVhMGNhYTU3My4uOGQ3YmI5NDMzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpA
QCAtOTYsMjUgKzk2LDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhTE9H
X0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hhciogY2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQotewotI2RlZmluZSBDQVNFKGNhdGVnb3J5KSBjYXNlIEF1
ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnk6IHJldHVybiAjY2F0ZWdvcnkKLSAgICBzd2l0Y2ggKGNhdGVn
b3J5KSB7Ci0gICAgICAgIENBU0UoTm9uZSk7Ci0gICAgICAgIENBU0UoQW1iaWVudFNvdW5kKTsK
LSAgICAgICAgQ0FTRShTb2xvQW1iaWVudFNvdW5kKTsKLSAgICAgICAgQ0FTRShNZWRpYVBsYXli
YWNrKTsKLSAgICAgICAgQ0FTRShSZWNvcmRBdWRpbyk7Ci0gICAgICAgIENBU0UoUGxheUFuZFJl
Y29yZCk7Ci0gICAgICAgIENBU0UoQXVkaW9Qcm9jZXNzaW5nKTsKLSAgICB9Ci0gICAgCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOwotfQotI2VuZGlmCi0KIGNsYXNz
IEF1ZGlvU2Vzc2lvblByaXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgpAQCAtMTU1LDcgKzEzNiw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShD
YXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAgICAgICAg
IHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICNlbmRpZgogCi0g
ICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAl
cyIsIGNhdGVnb3J5TmFtZShuZXdDYXRlZ29yeSkpOworICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjb252ZXJ0RW51bWVyYXRpb25U
b1N0cmluZyhuZXdDYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAgaWYgKGNhdGVnb3J5
T3ZlcnJpZGUoKSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKICAgICAg
ICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0
LCBOT1QgY2hhbmdpbmciKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQpzaW1pbGFyaXR5IGluZGV4IDc0JQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcApy
ZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1h
Yy5tbQppbmRleCBjYzA0ZjBiZTMwOS4uNGRkYTY5ZjlkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KQEAgLTIzLDE3
ICsyMywxOSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uLmgiCiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQogCi0jaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5j
bHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8
Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9u
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2lt
cG9ydCA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2ltcG9ydCA8cGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTks
NiArNjEsMTAgQEAgcHVibGljOgogICAgICAgICA6IGxhc3RNdXRlZFN0YXRlKG11dGVkU3RhdGUp
IHsgfQogICAgIGJvb2wgbGFzdE11dGVkU3RhdGU7CiAgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyNpZiBIQVZFKEFWQVVESU9f
Uk9VVElOR19BUkJJVEVSKQorICAgIGJvb2wgc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxz
ZSB9OworI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeU92
ZXJyaWRlOwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQpAQCAtNzUsMTggKzgx
LDcxIEBAIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnko
KSBjb25zdAogCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNh
dGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKKyAgICBpZiAoY2F0ZWdvcnkgPT0gQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09
IFNvbG9BbWJpZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9Qcm9jZXNzaW5nKSB7CisgICAg
ICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChjYXRlZ29yeSA9PSBtX3ByaXZhdGUtPmNhdGVnb3J5KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZykgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoKSAtIGEgYmVnaW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeSBpcyBzdGlsbCBvbmdvaW5nIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSAh
PSBOb25lKQorICAgICAgICBbW1BBTDo6Z2V0QVZBdWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSBz
aGFyZWRSb3V0aW5nQXJiaXRlcl0gbGVhdmVBcmJpdHJhdGlvbl07CisKKyAgICBtX3ByaXZhdGUt
PmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgaWYgKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPT0gTm9u
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVn
b3J5IGFyYml0cmF0aW9uQ2F0ZWdvcnk7CisgICAgc3dpdGNoIChtX3ByaXZhdGUtPmNhdGVnb3J5
KSB7CisgICAgY2FzZSBNZWRpYVBsYXliYWNrOgorICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5
ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUmVjb3JkQXVkaW86CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkg
PSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFBsYXlBbmRSZWNvcmQ6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0
ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkVm9p
Y2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKworICAgIG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcg
PSB0cnVlOworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJl
ZFJvdXRpbmdBcmJpdGVyXSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVnb3J5OmFyYml0cmF0aW9u
Q2F0ZWdvcnkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKEJPT0wgZGVmYXVsdERldmljZUNoYW5n
ZWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgbV9wcml2YXRlLT5zZXR1
cEFyYml0cmF0aW9uT25nb2luZyA9IGZhbHNlOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29y
eSgpIC0gYmVnaW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeTolcyBmYWlsZWQgd2l0aCBlcnJvciAl
czolcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkpLmFz
Y2lpKCkuZGF0YSgpLCBbW2Vycm9yIGRvbWFpbl0gVVRGOFN0cmluZ10sIFtbZXJyb3IgbG9jYWxp
emVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIHJlc2V0IHNhbXBsZSByYXRl
IGFuZCBidWZmZXIgc2l6ZSBmb3IgdGhlIG5ldyBkZWZhdWx0IGRldmljZT8KKyAgICAgICAgaWYg
KGRlZmF1bHREZXZpY2VDaGFuZ2VkKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdERldmljZUNoYW5nZWQhIik7CisgICAgfV07Cisj
ZWxzZQogICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyNlbmRpZgogfQogCiBB
dWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUo
KSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE5vbmU7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRlOwogfQogCi12b2lkIEF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCit2b2lkIEF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGUgPT0g
Y2F0ZWdvcnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92
ZXJyaWRlID0gY2F0ZWdvcnk7CisgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRlU2hhcmlu
Z1BvbGljeTo6RGVmYXVsdCk7CiB9CiAKIGZsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxlUmF0ZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbQppbmRleCA3NzkxMWU1MzQ1MS4uYTkyNzNiNzRjMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpA
QCAtMTYzLDcgKzE2Myw3IEBAIC0gKHZvaWQpZGlzcGxheQogICAgICAgICBpZiAoX2xhdGNoZWRQ
YnVmZmVyKSB7CiAKICAgICAgICAgICAgIEdDR0xlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxh
dGZvcm1UZXh0dXJlKCk7Ci0gICAgICAgICAgICBnbDo6QmluZFRleHR1cmUoR3JhcGhpY3NDb250
ZXh0R0w6OklPU3VyZmFjZVRleHR1cmVUYXJnZXQsIHRleHR1cmUpOworICAgICAgICAgICAgZ2w6
OkJpbmRUZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpJT1N1cmZhY2VUZXh0dXJl
VGFyZ2V0LCB0ZXh0dXJlKTsKICAgICAgICAgICAgIGlmICghRUdMX1JlbGVhc2VUZXhJbWFnZShf
ZWdsRGlzcGxheSwgX2xhdGNoZWRQYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CiAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IHJlcG9ydCBlcnJvci4KICAgICAgICAgICAgICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpAQCAtMjIyLDcgKzIyMiw3IEBAIC0gKHZvaWQpYWxsb2NhdGVJT1N1cmZhY2VC
YWNraW5nU3RvcmVXaXRoU2l6ZTooV2ViQ29yZTo6SW50U2l6ZSlzaXplIHVzaW5nQWxwaGE6CiAg
ICAgICAgIEVHTF9XSURUSCwgc2l6ZS53aWR0aCgpLAogICAgICAgICBFR0xfSEVJR0hULCBzaXpl
LmhlaWdodCgpLAogICAgICAgICBFR0xfSU9TVVJGQUNFX1BMQU5FX0FOR0xFLCAwLAotICAgICAg
ICBFR0xfVEVYVFVSRV9UQVJHRVQsIEdyYXBoaWNzQ29udGV4dEdMOjpFR0xJT1N1cmZhY2VUZXh0
dXJlVGFyZ2V0LAorICAgICAgICBFR0xfVEVYVFVSRV9UQVJHRVQsIFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMOjpFR0xJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0LAogICAgICAgICBFR0xfVEVYVFVS
RV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUsIHVzaW5nQWxwaGEgPyBHTF9CR1JBX0VYVCA6IEdMX1JH
QiwKICAgICAgICAgRUdMX1RFWFRVUkVfRk9STUFULCBFR0xfVEVYVFVSRV9SR0JBLAogICAgICAg
ICBFR0xfVEVYVFVSRV9UWVBFX0FOR0xFLCBHTF9VTlNJR05FRF9CWVRFLApAQCAtMjU2LDcgKzI1
Niw3IEBAIC0gKHZvaWQpYmluZEZyYW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZQogI2Vs
aWYgVVNFKEFOR0xFKQogICAgIEdDR0xlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxhdGZvcm1U
ZXh0dXJlKCk7CiAKLSAgICBnbDo6QmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0w6OklPU3Vy
ZmFjZVRleHR1cmVUYXJnZXQsIHRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTDo6SU9TdXJmYWNlVGV4dHVyZVRhcmdldCwgdGV4dHVyZSk7CiAK
ICAgICBpZiAoX2xhdGNoZWRQYnVmZmVyKSB7CiAgICAgICAgIGlmICghRUdMX1JlbGVhc2VUZXhJ
bWFnZShfZWdsRGlzcGxheSwgX2xhdGNoZWRQYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGJkNDZjMmJjZDRlLi5kYWIxYTBkZWFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAyMC0wNC0wNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIFNob3VsZE1h
bmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5IGZvciBNYWMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXpl
R1BVUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVy
ZVNvdXJjZSk6CisKIDIwMjAtMDQtMDYgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBh
cHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgd2F5IHRvIHNpZ25hbCBpZiB0aGUgV0tBcHBC
b3VuZERvbWFpbnMgbGlzdCBpcyBlbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nl
c3MuY3BwCmluZGV4IGVmMjM5NWVjNTlmLi41YWFiOTU0NDFjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgR1BVUHJvY2Vz
czo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0
ZWQoKTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklU
RVIpCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nl
c3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQzNzZkZTgwNzM4Li4xNmZhNmVjMmQxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU0Nyw3
ICs1NDcsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICB1cGRhdGVQcmVmZXJlbmNl
cyhwYXJhbWV0ZXJzLnN0b3JlKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgfHwgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKICAgICBp
ZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkKICAgICAgICAg
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRl
Z29yeSh0cnVlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggOGE2ZDA5MWMzYTQu
LjQyODI1ZjhjMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTUxMCw3ICs1MTAsNyBAQCBD
YXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5
OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nl
c3MpCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7ICJBdWRpbyBjYXB0dXJl
IGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVudGVkIl9zIH07CiAjZW5kaWYKLSNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEhBVkUoQVZBVURJ
T19ST1VUSU5HX0FSQklURVIpCiAgICAgLy8gRklYTUU6IFJlbW92ZSBkaXNhYmxpbmcgb2YgdGhl
IGF1ZGlvIHNlc3Npb24gY2F0ZWdvcnkgbWFuYWdlbWVlbnQgb25jZSB3ZSBtb3ZlIGFsbCBtZWRp
YSBwbGF5aW5nIHRvIEdQVVByb2Nlc3MuCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcykKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VB
dWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCAxYjUyMzYwZmIzZi4uYTZhZGFmN2NhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0wNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9y
IE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisKIDIwMjAtMDQtMDYgIFJvc3MgS2lyc2xp
bmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVwZGF0ZSBtaW5pbXVtIElD
VSB2ZXJzaW9uIHRvIDYwLjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCBkMTE3NzdkYjZlMS4uNTFlM2FjYWY3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE0MjksNiArMTQyOSwxMCBAQCAtICh2b2lk
KV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1l
IGdyb3VwTmFtZTooTlNTdAogICAgICAgICAgICAgV2ViQ29yZTo6RGVwcmVjYXRlZEdsb2JhbFNl
dHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRp
ZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKKyAgICAgICAgV2ViQ29yZTo6
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRl
Z29yeSh0cnVlKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVPKQogICAgICAgICBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUNhY2hlRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChOU1RlbXBvcmFyeURpcmVjdG9yeSgpLCAiTWVkaWFDYWNo
ZS8iX3MpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDQzNDhjY2ZhYTYwLi5kNTA0YTU4YTA0YyAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0
LTA3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgaW50
ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3Igc29mdGxpbmsgb2YgQVZB
dWRpb1JvdXRpbmdBcmJpdGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIwLTA0LTA2ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1OTUzMT8pOiBbaU9TXSBUZXN0V2ViS2l0QVBJ
LldlYktpdExlZ2FjeS5TY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYSBpcyB0aW1pbmcgb3V0CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmtUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQppbmRleCA5OTI5NDBlNGUyOC4uYjMx
NDdiYjBkMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpAQCAtNzUs
NiArNzUsMTAgQEAgVEVTVChBVkZvdW5kYXRpb25Tb2Z0TGluaywgQ2xhc3NlcykKICAgICBFWFBF
Q1RfTkUoUEFMOjpnZXRBVlNwZWVjaFN5bnRoZXNpc1ZvaWNlQ2xhc3MoKSwgbnVsbHB0cik7CiAj
ZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisgICAgRVhQRUNUX05F
KFBBTDo6Z2V0QVZBdWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSwgbnVsbHB0cik7CisjZW5kaWYK
KwogI2lmIEhBVkUoTUVESUFfUExBWUVSKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKICAgICBFWFBF
Q1RfTkUoUEFMOjpnZXRBVlJvdXRlRGV0ZWN0b3JDbGFzcygpLCBudWxscHRyKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395847</attachid>
            <date>2020-04-08 11:42:14 -0700</date>
            <delta_ts>2020-04-10 16:37:37 -0700</delta_ts>
            <desc>Fix unified build failures</desc>
            <filename>WIP2.patch</filename>
            <type>text/plain</type>
            <size>21202</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggYWYzYTlhOGFmNWMuLjYyNDk2ZjQwZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIw
LTA0LTA4ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQg
aW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbWFjcm8gSEFWRV9BVkFVRElPX1JP
VVRJTkdfQVJCSVRFUi4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMC0w
NC0wOCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWFycmFuZ2UgYW5kIHNpbXBsaWZ5IHNvbWUgSlNDIGZlYXR1cmUgZmxhZ3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1I
YXZlLmgKaW5kZXggMTY2YTEzNWQ3ZTAuLjM3MTAyNWNlM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aApAQCAtNjY5LDMgKzY2OSw3IEBACiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRG
T1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjZGVm
aW5lIEhBVkVfSU9TX0pJVF9SRVNUUklDVElPTlMgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZp
bmUgSEFWRV9BVkFVRElPX1JPVVRJTkdfQVJCSVRFUiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1
OTYxNjEwMzYxNC4uMzU1ZTNiYmM5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAy
MC0wNC0wOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0
IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpjYXRlZ29yeU5hbWUp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMu
bW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlk
ZSk6CisKKyAgICAgICAgRml4IHVuaWZpZWQgYnVpbGQgZmFpbHVyZXMuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXll
ciBkaXNwbGF5XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZhY2VCYWNr
aW5nU3RvcmVXaXRoU2l6ZTp1c2luZ0FscGhhOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGJp
bmRGcmFtZWJ1ZmZlclRvTmV4dEF2YWlsYWJsZVN1cmZhY2VdKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKKwog
MjAyMC0wNC0wOCAgRG91ZyBLZWxseSAgPGRvdWdrQGFwcGxlLmNvbT4KIAogICAgICAgICBIaXQg
dGVzdCB3aXRoIGNsaXBQYXRoIHJlZmVyZW5jaW5nIHBhcmVudCBlbGVtZW50IGNhdXNlcyBpbmZp
bml0ZSByZWN1cnNpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDkwMjIzOGNhYjM1Li4xMDE3NWRh
YTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMDggIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2Ug
QVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzb2Z0bGluayBmb3IgQVZBdWRpb1JvdXRpbmdBcmJp
dGVyLgorCisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAg
ICAgICogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tOgorCiAyMDIwLTA0LTA3ICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gQ01ha2UgZmluZCBtb2R1bGUgZm9yIEdUSzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCBlMWYyMTNlYTVlZC4uMTI3
ODM1MzdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLmgKQEAgLTc4LDYgKzc4LDEwIEBAIFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXplcikKIFNPRlRfTElOS19DTEFTU19GT1JfSEVB
REVSKFBBTCwgQVZTcGVlY2hVdHRlcmFuY2UpCiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19S
T1VUSU5HX0FSQklURVIpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWQXVkaW9S
b3V0aW5nQXJiaXRlcikKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCiBTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmljcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4
IDUxYjY2MzZhYWUxLi5hMmNmYjdlNGM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMDQsNiArMTA0LDEwIEBA
IFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlNwZWVjaFN5bnRoZXNpemVyLCBQCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hVdHRlcmFuY2UsIFBBTF9FWFBPUlQp
CiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCitTT0ZUX0xJTktf
Q0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Jv
dXRpbmdBcmJpdGVyLCBQQUxfRVhQT1JUKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oV0FUQ0hP
UykKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVlJvdXRlRGV0ZWN0b3IsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZv
cm1hbmNlTWV0cmljcywgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGZm
YzYxYjQ4NjU1Li5hNGRlNWY2Y2E5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xODEs
NyArMTgxLDcgQEAgcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvQnVzTWFjLm1tCiBwbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b0ZpbGVSZWFkZXJNYWMuY3BwCiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9IYXJkd2FyZUxpc3Rl
bmVyTWFjLmNwcAotcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKK3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KIHBsYXRmb3JtL2F1ZGlvL21hYy9DQVJp
bmdCdWZmZXIuY3BwCiBwbGF0Zm9ybS9hdWRpby9tYWMvRkZURnJhbWVNYWMuY3BwCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
OTc5ZWMzMjZlNS4uN2MyNTJkZmQ1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTQ0LDcgKzEzOTQ0LDcgQEAKIAkJQ0Q1
MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q1NEE3NjAxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q1NEE3NjExODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlvVHJhY2tQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2
IC8qIEF1ZGlvU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY5MDE0NzVCNjc4MDAxRDBCRDAgLyog
QXVkaW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
ZGlvRmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU4OTQ5
MzIxODc0MDY0MDA0RjQyNEEgLyogSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI5MTU1LDcgKzI5MTU1LDcgQEAKIAkJCQkwNzNCODc2MzFFNDM4NTlEMDA3
MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi8sCiAJCQkJMDczQjg3NjUxRTQzODU5
RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICovLAogCQkJCTA3M0I4NzY0MUU0
Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2UubW0gKi8sCi0JCQkJQ0Q1NERF
NDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8sCisJCQkJQ0Q1NERF
NDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5tbSAqLywKIAkJCQkwNzNCODc1
NzFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmNwcCAqLywKIAkJ
CQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgg
Ki8sCiAJCQkJQ0RDNzM0MTIxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNz
aW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lv
bklPUy5tbQppbmRleCBjMjVhMGNhYTU3My4uOGQ3YmI5NDMzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtOTYs
MjUgKzk2LDYgQEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhTE9HX0RJU0FC
TEVECi1zdGF0aWMgY29uc3QgY2hhciogY2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KQotewotI2RlZmluZSBDQVNFKGNhdGVnb3J5KSBjYXNlIEF1ZGlvU2Vz
c2lvbjo6Y2F0ZWdvcnk6IHJldHVybiAjY2F0ZWdvcnkKLSAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7
Ci0gICAgICAgIENBU0UoTm9uZSk7Ci0gICAgICAgIENBU0UoQW1iaWVudFNvdW5kKTsKLSAgICAg
ICAgQ0FTRShTb2xvQW1iaWVudFNvdW5kKTsKLSAgICAgICAgQ0FTRShNZWRpYVBsYXliYWNrKTsK
LSAgICAgICAgQ0FTRShSZWNvcmRBdWRpbyk7Ci0gICAgICAgIENBU0UoUGxheUFuZFJlY29yZCk7
Ci0gICAgICAgIENBU0UoQXVkaW9Qcm9jZXNzaW5nKTsKLSAgICB9Ci0gICAgCi0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOwotfQotI2VuZGlmCi0KIGNsYXNzIEF1ZGlv
U2Vzc2lvblByaXZhdGUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtMTU1LDcgKzEzNiw3IEBAIHZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29y
eVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSBwb2xpCiAgICAgICAgIHBvbGlj
eSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6TG9uZ0Zvcm1BdWRpbzsKICNlbmRpZgogCi0gICAgTE9H
KE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNh
dGVnb3J5TmFtZShuZXdDYXRlZ29yeSkpOworICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmlu
ZyhuZXdDYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCkpOwogCiAgICAgaWYgKGNhdGVnb3J5T3ZlcnJp
ZGUoKSAmJiBjYXRlZ29yeU92ZXJyaWRlKCkgIT0gbmV3Q2F0ZWdvcnkpIHsKICAgICAgICAgTE9H
KE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1Qg
Y2hhbmdpbmciKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L0F1ZGlvU2Vzc2lvbk1hYy5tbQpzaW1pbGFyaXR5IGluZGV4IDc0JQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcApyZW5hbWUg
dG8gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQpp
bmRleCBjYzA0ZjBiZTMwOS4uNGRkYTY5ZjlkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KQEAgLTIzLDE3ICsyMywx
OSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJBdWRpb1Nlc3Npb24uaCIKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uLmgiCiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYg
UExBVEZPUk0oTUFDKQogCi0jaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8Q29yZUF1
ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisj
aW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCA8
Q29yZUF1ZGlvL0F1ZGlvSGFyZHdhcmUuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksNiArNjEs
MTAgQEAgcHVibGljOgogICAgICAgICA6IGxhc3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQog
ICAgIGJvb2wgbGFzdE11dGVkU3RhdGU7CiAgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
Y2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElO
R19BUkJJVEVSKQorICAgIGJvb2wgc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9Owor
I2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeU92ZXJyaWRl
OwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQpAQCAtNzUsMTggKzgxLDcxIEBA
IEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBjb25z
dAogCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5
LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRF
UikKKyAgICBpZiAoY2F0ZWdvcnkgPT0gQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9B
bWJpZW50U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgICAgIG1f
cHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGlmIChjYXRlZ29yeSA9PSBtX3ByaXZhdGUtPmNhdGVnb3J5KQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAobV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAt
IGEgYmVnaW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeSBpcyBzdGlsbCBvbmdvaW5nIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSAhPSBOb25l
KQorICAgICAgICBbW1BBTDo6Z2V0QVZBdWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSBzaGFyZWRS
b3V0aW5nQXJiaXRlcl0gbGVhdmVBcmJpdHJhdGlvbl07CisKKyAgICBtX3ByaXZhdGUtPmNhdGVn
b3J5ID0gY2F0ZWdvcnk7CisgICAgaWYgKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPT0gTm9uZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5IGFy
Yml0cmF0aW9uQ2F0ZWdvcnk7CisgICAgc3dpdGNoIChtX3ByaXZhdGUtPmNhdGVnb3J5KSB7Cisg
ICAgY2FzZSBNZWRpYVBsYXliYWNrOgorICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZB
dWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUmVjb3JkQXVkaW86CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1
ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBsYXlBbmRSZWNvcmQ6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkg
PSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkVm9pY2U7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgPSB0cnVl
OworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJlZFJvdXRp
bmdBcmJpdGVyXSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVnb3J5OmFyYml0cmF0aW9uQ2F0ZWdv
cnkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKEJPT0wgZGVmYXVsdERldmljZUNoYW5nZWQsIE5T
RXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgbV9wcml2YXRlLT5zZXR1cEFyYml0
cmF0aW9uT25nb2luZyA9IGZhbHNlOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0g
YmVnaW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeTolcyBmYWlsZWQgd2l0aCBlcnJvciAlczolcyIs
IGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkpLmFzY2lpKCku
ZGF0YSgpLCBbW2Vycm9yIGRvbWFpbl0gVVRGOFN0cmluZ10sIFtbZXJyb3IgbG9jYWxpemVkRGVz
Y3JpcHRpb25dIFVURjhTdHJpbmddKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIHJlc2V0IHNhbXBsZSByYXRlIGFuZCBi
dWZmZXIgc2l6ZSBmb3IgdGhlIG5ldyBkZWZhdWx0IGRldmljZT8KKyAgICAgICAgaWYgKGRlZmF1
bHREZXZpY2VDaGFuZ2VkKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeSgpIC0gZGVmYXVsdERldmljZUNoYW5nZWQhIik7CisgICAgfV07CisjZWxzZQog
ICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyNlbmRpZgogfQogCiBBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25z
dAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIE5vbmU7CisgICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRlOwogfQogCi12b2lkIEF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUpCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnlPdmVycmlkZShDYXRlZ29yeVR5cGUgY2F0ZWdvcnkpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBpZiAobV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGUgPT0gY2F0ZWdv
cnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRl
ID0gY2F0ZWdvcnk7CisgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGlj
eTo6RGVmYXVsdCk7CiB9CiAKIGZsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxlUmF0ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJH
TExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQppbmRleCA3NzkxMWU1MzQ1MS4uYTkyNzNiNzRjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtMTYz
LDcgKzE2Myw3IEBAIC0gKHZvaWQpZGlzcGxheQogICAgICAgICBpZiAoX2xhdGNoZWRQYnVmZmVy
KSB7CiAKICAgICAgICAgICAgIEdDR0xlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxhdGZvcm1U
ZXh0dXJlKCk7Ci0gICAgICAgICAgICBnbDo6QmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0w6
OklPU3VyZmFjZVRleHR1cmVUYXJnZXQsIHRleHR1cmUpOworICAgICAgICAgICAgZ2w6OkJpbmRU
ZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0
LCB0ZXh0dXJlKTsKICAgICAgICAgICAgIGlmICghRUdMX1JlbGVhc2VUZXhJbWFnZShfZWdsRGlz
cGxheSwgX2xhdGNoZWRQYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CiAgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IHJlcG9ydCBlcnJvci4KICAgICAgICAgICAgICAgICBub3RJbXBsZW1lbnRl
ZCgpOwpAQCAtMjIyLDcgKzIyMiw3IEBAIC0gKHZvaWQpYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5n
U3RvcmVXaXRoU2l6ZTooV2ViQ29yZTo6SW50U2l6ZSlzaXplIHVzaW5nQWxwaGE6CiAgICAgICAg
IEVHTF9XSURUSCwgc2l6ZS53aWR0aCgpLAogICAgICAgICBFR0xfSEVJR0hULCBzaXplLmhlaWdo
dCgpLAogICAgICAgICBFR0xfSU9TVVJGQUNFX1BMQU5FX0FOR0xFLCAwLAotICAgICAgICBFR0xf
VEVYVFVSRV9UQVJHRVQsIEdyYXBoaWNzQ29udGV4dEdMOjpFR0xJT1N1cmZhY2VUZXh0dXJlVGFy
Z2V0LAorICAgICAgICBFR0xfVEVYVFVSRV9UQVJHRVQsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMOjpFR0xJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0LAogICAgICAgICBFR0xfVEVYVFVSRV9JTlRF
Uk5BTF9GT1JNQVRfQU5HTEUsIHVzaW5nQWxwaGEgPyBHTF9CR1JBX0VYVCA6IEdMX1JHQiwKICAg
ICAgICAgRUdMX1RFWFRVUkVfRk9STUFULCBFR0xfVEVYVFVSRV9SR0JBLAogICAgICAgICBFR0xf
VEVYVFVSRV9UWVBFX0FOR0xFLCBHTF9VTlNJR05FRF9CWVRFLApAQCAtMjU2LDcgKzI1Niw3IEBA
IC0gKHZvaWQpYmluZEZyYW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZQogI2VsaWYgVVNF
KEFOR0xFKQogICAgIEdDR0xlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxhdGZvcm1UZXh0dXJl
KCk7CiAKLSAgICBnbDo6QmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0w6OklPU3VyZmFjZVRl
eHR1cmVUYXJnZXQsIHRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZShXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTDo6SU9TdXJmYWNlVGV4dHVyZVRhcmdldCwgdGV4dHVyZSk7CiAKICAgICBp
ZiAoX2xhdGNoZWRQYnVmZmVyKSB7CiAgICAgICAgIGlmICghRUdMX1JlbGVhc2VUZXhJbWFnZShf
ZWdsRGlzcGxheSwgX2xhdGNoZWRQYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oCmluZGV4IDE0ZGQ0ZDkx
NjcyLi4xZDdjZDk2YzhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZUNvY29hLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIFVTRShMSUJXRUJSVEMpCiAK
KyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJSZWFsdGlt
ZUluY29taW5nQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIK
ICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KQEAgLTM3LDggKzM4LDYgQEAg
dHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiAqQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzsKLQogY2xhc3MgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hPiBjcmVh
dGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVyZmFjZT4mJiwgU3Ry
aW5nJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA2NjQ4NDZjMDNhZC4uNzViMDFkMjM4N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMjAtMDQtMDggIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNv
bT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJs
ZSBTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSBmb3IgTWFjLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UpOgorCiAyMDIwLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMjU5NjEwKSBbUkJTVGFyZ2V0IHRhcmdl
dFdpdGhQaWQ6XSBtYXkgdGhyb3cgYSAnbXVzdCBzcGVjaWZ5IGEgdmFsaWQgcGlkJyBleGNlcHRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAppbmRleCBlZjIzOTVlYzU5
Zi4uNWFhYjk1NDQxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAK
QEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lkIEdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNz
KEdQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIFdURjo6VGhy
ZWFkOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7CiAgICAgQXRvbVN0cmluZzo6
aW5pdCgpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSB8fCBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQogICAgIERlcHJlY2F0ZWRHbG9i
YWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA0Mzc2ZGU4MDczOC4uMTZmYTZlYzJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NDcsNyArNTQ3LDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7CiAK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEhB
VkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCiAgICAgaWYgKCFtX3BhZ2UtPnNldHRpbmdzKCku
dXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCkpCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCmluZGV4IDhhNmQwOTFjM2E0Li40MjgyNWY4YzFlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuY3BwCkBAIC01MTAsNyArNTEwLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28K
ICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgeyAiQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBp
bXBsZW1lbnRlZCJfcyB9OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQogICAg
IC8vIEZJWE1FOiBSZW1vdmUgZGlzYWJsaW5nIG9mIHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5
IG1hbmFnZW1lZW50IG9uY2Ugd2UgbW92ZSBhbGwgbWVkaWEgcGxheWluZyB0byBHUFVQcm9jZXNz
LgogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYWNiMzM5NzUwM2UuLjYwNjJiYTEz
NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAt
MDQtMDggIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBp
bnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBO
YW1lOl0pOgorCiAyMDIwLTA0LTA4ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgdGhlIHVzZSBvZiBYQ0J1aWxkIGJ5IGRlZmF1bHQgaW4gQXBwbGUg
YnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
ZDExNzc3ZGI2ZTEuLjUxZTNhY2FmN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0xNDI5LDYgKzE0MjksMTAgQEAgLSAodm9pZClfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6
KE5TU3QKICAgICAgICAgICAgIFdlYkNvcmU6OkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIAorI2lmIEhB
VkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisgICAgICAgIFdlYkNvcmU6OkRlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykKICAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2V0TWVkaWFDYWNoZURpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSwgIk1lZGlhQ2FjaGUvIl9zKSk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBmYWFiODRmNzM2Ny4uNjNkZDllNTI4NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0wOCAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1
ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0aW5n
QXJiaXRlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW2xsZGItd2Via2l0XSBQcmV0dHktcHJpbnQgTlNFdmVudE1vZGlmaWVyRmxhZ3MKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGlua1Rlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCmluZGV4IDk5Mjk0MGU0ZTI4Li5iMzE0
N2JiMGQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBAIC03NSw2
ICs3NSwxMCBAQCBURVNUKEFWRm91bmRhdGlvblNvZnRMaW5rLCBDbGFzc2VzKQogICAgIEVYUEVD
VF9ORShQQUw6OmdldEFWU3BlZWNoU3ludGhlc2lzVm9pY2VDbGFzcygpLCBudWxscHRyKTsKICNl
bmRpZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKKyAgICBFWFBFQ1RfTkUo
UEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpLCBudWxscHRyKTsKKyNlbmRpZgor
CiAjaWYgSEFWRShNRURJQV9QTEFZRVIpICYmICFQTEFURk9STShXQVRDSE9TKQogICAgIEVYUEVD
VF9ORShQQUw6OmdldEFWUm91dGVEZXRlY3RvckNsYXNzKCksIG51bGxwdHIpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396133</attachid>
            <date>2020-04-10 16:37:38 -0700</date>
            <delta_ts>2020-04-13 09:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210167-20200410163738.patch</filename>
            <type>text/plain</type>
            <size>79137</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg1NTkwZjkyMDliNTRkNzY1MjAyODRi
YWNmMDQ0YTUxOWY1ZDQwZjkuLjczNjUwZDIzOWI2ODI1M2RhN2UyNTA1ODAyNWRmMWM4YjIxZDhm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJp
dGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA0LTEwICBBbGljaWEgQm95YSBHYXJjw61hICA8
YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1RGXSBEYXRhTXV0ZXg6IEFkZCBydW5Vbmxv
Y2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODFmODE1YmRjODVlYTAyOTlhNWNhMjYxMTQ5
MDYyYy4uNjA0Zjk0MGIzMDlhYWY5ZDQxYmZiNWVhM2FlNzg0N2YwYmJjYjlmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBm
b3IgTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OmNhdGVnb3J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKKworICAgICAgICBGaXggdW5pZmllZCBidWlsZCBm
YWlsdXJlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKKwogMjAyMC0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgcGxheWJhY2sgb2YgcmVtb3RlIGF1
ZGlvIHRyYWNrcyBpcyBzdGFibGUgZXZlbiBpZiBwYWdlcyBhcmUgdXNpbmcgd2ViYXVkaW8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDhiZjFlZjQwOTc2MWIzMjM0NTMxY2I4NmZiOGI3ZjI5ZDA4MmIw
NTYuLmYzZDkxYmRlOTlhMjE2MzBmMjMyZTQ0MjljNmNkYTk2OTRkMGQ3N2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJi
aXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKwogMjAyMC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVHJhY2sgZWRpdGFibGUgZWxlbWVudHMgb24gc2Ny
ZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGQ5YjQwNzY2OGJiNWFhM2U5ZWQ3ZDYzNWRjMWUyZWY0MjhkYzQ0OGMu
LjQwZDk2NWE1MmE5NzZlZGExMDVkZjc3M2ZlMzgyYjZjOGVjNzE3OWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTIgQEAKKzIwMjAtMDQtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBYUEMgb2JqZWN0LCBBdWRpb1Nl
c3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJvdXRpbmcgYXJiaXRyYXRp
b24KKyAgICAgICAgY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJUHJvY2Vzcy4gQmVjYXVz
ZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQgbXVsdGlwbGUgV2ViQ29udGVudAorICAgICAg
ICBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5nIGFyYml0cmF0aW9uIHJl
cXVlc3RzIGdsb2JhbGx5LgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVHUFVQcm9jZXNz
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlvbklkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJp
dHJhdG9yOjpzaGFyZWRJbnN0YW5jZSk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZEFyYml0cmF0
b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CisgICAgICAgIChXZWJL
aXQ6OlNoYXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRv
cik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KToKKyAgICAg
ICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0
aW5nQXJiaXRyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpX
ZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fcHJvY2Vz
c0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYktp
dDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9u
V2l0aENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3I6OmxlYXZlUm91dGluZ0Ficml0cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW46CisKIDIwMjAtMDQtMTAgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgV0FSTl9VTlVTRURfUkVUVVJOIHRvIGRlY29kZSBtZXRob2RzIGluIFdl
YkNvcmVBcmd1bWVudENvZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDc0ZGVk
OTY2ODdjOTY0OWIyYzFhNTQ4MzkxZDQxY2NkYjMxMDMxNWUuLjljNGI0MzJlMWMyZjA2M2RlMzA4
N2U3Mjk0YmMyNTc2NzliY2I5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wNC0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisKIDIwMjAtMDQtMDggIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU2ltcGxpZnkgTlNBcnJheSwgTlNEaWN0
aW9uYXJ5LCBhbmQgTlNOdW1iZXIgaWRpb21zIHRocm91Z2hvdXQgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCmluZGV4IDE2NmExMzVkN2UwNGRiM2E5NWE0MzE1Y2EwMzY2OTI0OGViNGI3NTAuLjM3
MTAyNWNlM2YzN2E5YWMwYTkyYWJiZDkyZjcyYmU0ZWYxYjg2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCkBAIC02NjksMyArNjY5LDcgQEAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExB
VEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICNk
ZWZpbmUgSEFWRV9JT1NfSklUX1JFU1RSSUNUSU9OUyAxCiAjZW5kaWYKKworI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNjAwKQorI2Rl
ZmluZSBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGUx
ZjIxM2VhNWVkMTgxZjI1NTU0NTgyYjg0MThjNWEyMzA5ZjRmZTMuLjEyNzgzNTM3YzRmMWYxZmM3
OGY5OGVhYTEzNjg3MTA3ZTNjYTQ4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTc4LDYgKzc4LDEwIEBAIFNPRlRf
TElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hTeW50aGVzaXplcikKIFNPRlRfTElO
S19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZTcGVlY2hVdHRlcmFuY2UpCiAjZW5kaWYKIAorI2lm
IEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURF
UihQQUwsIEFWQXVkaW9Sb3V0aW5nQXJiaXRlcikKKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKFdB
VENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWUm91dGVEZXRlY3RvcikK
IFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmlj
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLm1tCmluZGV4IDUxYjY2MzZhYWUxODJjZTQyMmQ5ZWJiYTZiNTAzYjA3NDRiNWNlNGQu
LmEyY2ZiN2U0YzU5NDQ4ODBhZjI0NTdhYzRiNjc0MTUxMzMzNDgyMmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQpAQCAt
MTA0LDYgKzEwNCwxMCBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hTeW50aGVzaXplciwgUAogU09GVF9MSU5LX0NMQVNT
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3BlZWNoVXR0ZXJh
bmNlLCBQQUxfRVhQT1JUKQogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJ
VEVSKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5k
YXRpb24sIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciwgUEFMX0VYUE9SVCkKKyNlbmRpZgorCiAjaWYg
IVBMQVRGT1JNKFdBVENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZSb3V0ZURldGVjdG9yLCBQQUxfRVhQT1JUKQogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MsIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAppbmRleCAwYmFmZDM2ZmE2NTg3NzYwMjM1OGY3ZmVmOWE3ZGI1NDJjMWQ2YmY5Li41
OGY1ZWQ4MTJiY2UwZTA2ZGVjNGQ0MTAyODM1YWNhNTdmYjk4ZGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKQEAgLTE4MSw3ICsxODEsNyBAQCBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNN
YWMubW0KIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAogcGxhdGZv
cm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJlYWRlck1hYy5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMuY3BwCi1wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNz
aW9uTWFjLmNwcAorcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQogcGxhdGZv
cm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZlci5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9GRlRGcmFt
ZU1hYy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGEyMWJkNTBlZTM4NTA4ZWNkNjNmYTcwNjRlNTM4OGNmYWM2NzgwZGYu
LjMwYzdmMzVmYTk4MDE5MWU2ZWY5ZmZlYTNiMTAyMWM5ZTU5NDJlYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOTQ3LDcg
KzEzOTQ3LDcgQEAKIAkJQ0Q1MzkzRDIxNzVFMDE4NjAwQzA3MTIzIC8qIEpTTWVtb3J5SW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NEE3NjAxODBGOUY3MDAwQjA3NkM5IC8qIEF1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NEE3NjExODBGOUY3MDAwQjA3NkM5IC8q
IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBB
dWRpb1Nlc3Npb25NYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXVkaW9TZXNzaW9uTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q1NERF
NDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NTk2OEYxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJl
YWRlcklPUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0Zp
bGVSZWFkZXJJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY5MDE0
NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDU4OTQ5MzIxODc0MDY0MDA0RjQyNEEgLyogSW1hZ2VCdWZmZXJVdGlsaXRp
ZXNDRy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MTYwLDcgKzI5MTYwLDcgQEAKIAkJCQkw
NzNCODc2MzFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVCdWZmZXJMaXN0LmggKi8sCiAJ
CQkJMDczQjg3NjUxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5oICov
LAogCQkJCTA3M0I4NzY0MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3VyY2Uu
bW0gKi8sCi0JCQkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5j
cHAgKi8sCisJCQkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5t
bSAqLywKIAkJCQkwNzNCODc1NzFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmNwcCAqLywKIAkJCQkwNzNCODc1ODFFNDBEQ0ZEMDA3MUMwRUMgLyogQ0FBdWRpb1N0
cmVhbURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQ0RDNzM0MTIxOTc3ODk2QzAwNDZCRkM1IC8qIENB
UmluZ0J1ZmZlci5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9BdWRpb1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9TZXNzaW9uLmNwcAppbmRleCA5YjJmYWU1NmRkMTVmMTVlYjRkNDg2MGNkYzExNmI5ODIyN2U0
ZWM5Li41MWE4ZDNhMjgyNjBjNjMzMzEwM2YxMDdlYmFkYzRlOTRjNWNkYjdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTIwMCw2ICsy
MDAsMzMgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlIGVudW1lcmF0aW9uVmFsdWUpCiAgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOwogICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07CiB9
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVudW1lcmF0aW9uVmFs
dWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFsdWVzW10g
PSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCisgICAgICAgIE1B
S0VfU1RBVElDX1NUUklOR19JTVBMKCJGYWlsZWQiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIkNhbmNlbGxlZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCghc3RhdGlj
X2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yOjpOb25lKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlv
bkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUgaXMgbm90IDAgYXMgZXhwZWN0
ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVk
KSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3I6OkZhaWxlZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGll
bnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQpLCAiQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Q2FuY2VsbGVk
IGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4o
ZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVy
biB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKK1N0
cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAg
ICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAg
ICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NU
UklOR19JTVBMKCJZZXMiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0
PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRl
Q2hhbmdlZDo6Tm8pLCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZh
dWx0Um91dGVDaGFuZ2VkOjpObyBpcyBub3QgZmFsc2UgYXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlv
bkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzIGlzIG5vdCB0cnVlIGFz
IGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRpb25W
YWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1ZXNbc3Rh
dGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKIH0KIAogI2VuZGlmIC8v
IFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1Nlc3Npb24uaAppbmRleCA2MzdkMjkzNWM5NGNlNDMzZTIwNmVlNjJhODM3OTBjNjhhYTI1YmRm
Li45MDcxODNiZGIyYmQ0MTNlZWFjNTY5NjdjYzAzMGUwNDA4NjZkNWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIFVTRShBVURJT19TRVNTSU9OKQogCiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CkBAIC00Niw2ICs0Nyw4IEBAIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhf
dCB7CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsKIAorY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OworCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Npb24gewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
ZGlvU2Vzc2lvbik7CkBAIC0xMTMsNiArMTE2LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmU7IH0KIAorICAgIHZvaWQgc2V0
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0aW9uQ2xpZW50PiYmIGNsaWVudCkgeyBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCA9IGNs
aWVudDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEF1
ZGlvU2Vzc2lvbj47CiAgICAgQXVkaW9TZXNzaW9uKCk7CkBAIC0xMjQsMTEgKzEyOSwyOCBAQCBw
cm90ZWN0ZWQ6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXZWFrSGFzaFNldDxJbnRl
cnJ1cHRpb25PYnNlcnZlcj4gbV9pbnRlcnJ1cHRpb25PYnNlcnZlcnM7CiAjZW5kaWYKKworICAg
IFdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50PiBtX3JvdXRpbmdB
cmJpdHJhdGlvbkNsaWVudDsKICAgICBib29sIG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBv
bmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5n
KFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUpOworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBl
bnVtIGNsYXNzIFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIDogdWludDhfdCB7IE5vbmUsIEZhaWxl
ZCwgQ2FuY2VsbGVkIH07CisgICAgZW51bSBjbGFzcyBEZWZhdWx0Um91dGVDaGFuZ2VkIDogYm9v
bCB7IE5vLCBZZXMgfTsKKworICAgIHZpcnR1YWwgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSA9IDA7CisK
KyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9u
Q2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVy
dEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUpOworV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IpOworV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZCk7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApAQCAtMTY0LDYgKzE4NiwyMyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok1heVJlc3VtZT4gewogICAgID47CiB9
OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yPiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJh
dGlvbkVycm9yOjpOb25lLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6OkZhaWxlZCwKKyAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yOjpDYW5jZWxsZWQKKyAgICA+OworfTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZh
dWx0Um91dGVDaGFuZ2VkPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAg
V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91
dGVDaGFuZ2VkLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNs
aWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpZZXMKKyAgICA+
OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KIHN0cnVjdCBMb2dBcmd1bWVudDsKIApA
QCAtMTgzLDYgKzIyMiwyMSBAQCBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGU+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IExv
Z0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6
Um91dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsKKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNv
bnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGlu
Z0FyYml0cmF0aW9uRXJyb3IgZXJyb3IpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcoZXJyb3IpOworICAgIH0KK307Cit0ZW1wbGF0ZSA8Pgorc3RydWN0
IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVu
dDo6RGVmYXVsdFJvdXRlQ2hhbmdlZD4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0
Um91dGVDaGFuZ2VkIGNoYW5nZWQpCisgICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoY2hhbmdlZCk7CisgICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RG
CiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCmluZGV4IGMyNWEwY2FhNTcz
MDc0OGQ3NTg1NjJkMGRjZmUwZDg0M2FkYTA1MjEuLjhkN2JiOTQzM2QzNjg3MDdiYzk0ZmEyMjY1
OTlmYzkyMTgzOTE1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQpAQCAtOTYsMjUgKzk2LDYgQEAgQGVuZAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhTE9HX0RJU0FCTEVECi1zdGF0aWMgY29uc3QgY2hhciog
Y2F0ZWdvcnlOYW1lKEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQotewotI2Rl
ZmluZSBDQVNFKGNhdGVnb3J5KSBjYXNlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnk6IHJldHVybiAj
Y2F0ZWdvcnkKLSAgICBzd2l0Y2ggKGNhdGVnb3J5KSB7Ci0gICAgICAgIENBU0UoTm9uZSk7Ci0g
ICAgICAgIENBU0UoQW1iaWVudFNvdW5kKTsKLSAgICAgICAgQ0FTRShTb2xvQW1iaWVudFNvdW5k
KTsKLSAgICAgICAgQ0FTRShNZWRpYVBsYXliYWNrKTsKLSAgICAgICAgQ0FTRShSZWNvcmRBdWRp
byk7Ci0gICAgICAgIENBU0UoUGxheUFuZFJlY29yZCk7Ci0gICAgICAgIENBU0UoQXVkaW9Qcm9j
ZXNzaW5nKTsKLSAgICB9Ci0gICAgCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuICIiOwotfQotI2VuZGlmCi0KIGNsYXNzIEF1ZGlvU2Vzc2lvblByaXZhdGUgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtMTU1LDcgKzEzNiw3IEBAIHZvaWQg
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgbmV3Q2F0ZWdvcnksIFJvdXRl
U2hhcmluZ1BvbGljeSBwb2xpCiAgICAgICAgIHBvbGljeSA9IFJvdXRlU2hhcmluZ1BvbGljeTo6
TG9uZ0Zvcm1BdWRpbzsKICNlbmRpZgogCi0gICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNhdGVnb3J5TmFtZShuZXdDYXRlZ29yeSkp
OworICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5
ID0gJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhuZXdDYXRlZ29yeSkuYXNjaWkoKS5k
YXRhKCkpOwogCiAgICAgaWYgKGNhdGVnb3J5T3ZlcnJpZGUoKSAmJiBjYXRlZ29yeU92ZXJyaWRl
KCkgIT0gbmV3Q2F0ZWdvcnkpIHsKICAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeSgpIC0gb3ZlcnJpZGUgc2V0LCBOT1QgY2hhbmdpbmciKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjMDRmMGJlMzA5NzQ5OGI4MzY2ZTkyNDIwNzNl
Y2UzZTE5NzVhYjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwyNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgotCi0jaWYgVVNFKEFVRElP
X1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKLQotI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5o
IgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2lu
Y2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1zdGF0aWMgQXVkaW9EZXZpY2VJRCBkZWZhdWx0RGV2aWNlKCkKLXsKLSAgICBBdWRp
b0RldmljZUlEIGRldmljZUlEID0ga0F1ZGlvRGV2aWNlVW5rbm93bjsKLSAgICBVSW50MzIgaW5m
b1NpemUgPSBzaXplb2YoZGV2aWNlSUQpOwotCi0gICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJl
c3MgZGVmYXVsdE91dHB1dERldmljZUFkZHJlc3MgPSB7Ci0gICAgICAgIGtBdWRpb0hhcmR3YXJl
UHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNlLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0
eVNjb3BlR2xvYmFsLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIg
fTsKLSAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShrQXVk
aW9PYmplY3RTeXN0ZW1PYmplY3QsICZkZWZhdWx0T3V0cHV0RGV2aWNlQWRkcmVzcywgMCwgMCwg
JmluZm9TaXplLCAodm9pZCopJmRldmljZUlEKTsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICBy
ZXR1cm4gMDsgLy8gZXJyb3IKLSAgICByZXR1cm4gZGV2aWNlSUQ7Ci19Ci0KLWNsYXNzIEF1ZGlv
U2Vzc2lvblByaXZhdGUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgot
ICAgIGV4cGxpY2l0IEF1ZGlvU2Vzc2lvblByaXZhdGUoYm9vbCBtdXRlZFN0YXRlKQotICAgICAg
ICA6IGxhc3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQotICAgIGJvb2wgbGFzdE11dGVkU3Rh
dGU7Ci0gICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Np
b246Ok5vbmUgfTsKLX07Ci0KLUF1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKLSAgICA6IG1f
cHJpdmF0ZShtYWtlVW5pcXVlPEF1ZGlvU2Vzc2lvblByaXZhdGU+KGlzTXV0ZWQoKSkpCi17Ci19
Ci0KLUF1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKLQotQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS0+Y2F0ZWdvcnk7Ci19Ci0KLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRD
YXRlZ29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKLXsKLSAg
ICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7Ci19Ci0KLUF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gTm9uZTsKLX0KLQotdm9pZCBBdWRpb1Nlc3Np
b246OnNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLWZsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxlUmF0ZSgpIGNvbnN0Ci17Ci0g
ICAgRmxvYXQ2NCBub21pbmFsU2FtcGxlUmF0ZTsKLSAgICBVSW50MzIgbm9taW5hbFNhbXBsZVJh
dGVTaXplID0gc2l6ZW9mKEZsb2F0NjQpOwotCi0gICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJl
c3Mgbm9taW5hbFNhbXBsZVJhdGVBZGRyZXNzID0gewotICAgICAgICBrQXVkaW9EZXZpY2VQcm9w
ZXJ0eU5vbWluYWxTYW1wbGVSYXRlLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3Bl
R2xvYmFsLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKLSAg
ICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZWZhdWx0RGV2
aWNlKCksICZub21pbmFsU2FtcGxlUmF0ZUFkZHJlc3MsIDAsIDAsICZub21pbmFsU2FtcGxlUmF0
ZVNpemUsICh2b2lkKikmbm9taW5hbFNhbXBsZVJhdGUpOwotICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIG5hcnJvd1ByZWNpc2lvblRvRmxvYXQobm9taW5h
bFNhbXBsZVJhdGUpOwotfQotCi1zaXplX3QgQXVkaW9TZXNzaW9uOjpidWZmZXJTaXplKCkgY29u
c3QKLXsKLSAgICBVSW50MzIgYnVmZmVyU2l6ZTsKLSAgICBVSW50MzIgYnVmZmVyU2l6ZVNpemUg
PSBzaXplb2YoYnVmZmVyU2l6ZSk7Ci0KLSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBi
dWZmZXJTaXplQWRkcmVzcyA9IHsKLSAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJG
cmFtZVNpemUsCi0gICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCi0gICAg
ICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwotICAgIE9TU3RhdHVzIHJl
c3VsdCA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwgJmJ1ZmZl
clNpemVBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVNpemUsICZidWZmZXJTaXplKTsKLQotICAg
IGlmIChyZXN1bHQpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBidWZmZXJTaXplOwot
fQotCi1zaXplX3QgQXVkaW9TZXNzaW9uOjpudW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3QK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi1ib29sIEF1ZGlv
U2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVJvdXRlU2hhcmluZ1BvbGljeSBBdWRpb1Nl
c3Npb246OnJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFJvdXRlU2hh
cmluZ1BvbGljeTo6RGVmYXVsdDsKLX0KLQotU3RyaW5nIEF1ZGlvU2Vzc2lvbjo6cm91dGluZ0Nv
bnRleHRVSUQoKSBjb25zdAotewotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQotCi1zaXpl
X3QgQXVkaW9TZXNzaW9uOjpwcmVmZXJyZWRCdWZmZXJTaXplKCkgY29uc3QKLXsKLSAgICBVSW50
MzIgYnVmZmVyU2l6ZTsKLSAgICBVSW50MzIgYnVmZmVyU2l6ZVNpemUgPSBzaXplb2YoYnVmZmVy
U2l6ZSk7Ci0KLSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcmVmZXJyZWRCdWZmZXJT
aXplQWRkcmVzcyA9IHsKLSAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNp
emUsCi0gICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCi0gICAgICAgIGtB
dWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwotICAgIE9TU3RhdHVzIHJlc3VsdCA9
IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwgJnByZWZlcnJlZEJ1
ZmZlclNpemVBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVNpemUsICZidWZmZXJTaXplKTsKLQot
ICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBidWZmZXJTaXpl
OwotfQotCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3Qg
YnVmZmVyU2l6ZSkKLXsKLSAgICBBdWRpb1ZhbHVlUmFuZ2UgYnVmZmVyU2l6ZVJhbmdlID0gezAs
IDB9OwotICAgIFVJbnQzMiBidWZmZXJTaXplUmFuZ2VTaXplID0gc2l6ZW9mKEF1ZGlvVmFsdWVS
YW5nZSk7Ci0gICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgYnVmZmVyU2l6ZVJhbmdlQWRk
cmVzcyA9IHsKLSAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNpemVSYW5n
ZSwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKLSAgICAgICAga0F1
ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyCi0gICAgfTsKLSAgICBPU1N0YXR1cyByZXN1
bHQgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZWZhdWx0RGV2aWNlKCksICZidWZmZXJT
aXplUmFuZ2VBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVJhbmdlU2l6ZSwgJmJ1ZmZlclNpemVS
YW5nZSk7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2l6ZV90IG1p
bkJ1ZmZlclNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ1ZmZlclNpemVSYW5nZS5tTWluaW11
bSk7Ci0gICAgc2l6ZV90IG1heEJ1ZmZlclNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ1ZmZl
clNpemVSYW5nZS5tTWF4aW11bSk7Ci0gICAgVUludDMyIGJ1ZmZlclNpemVPdXQgPSBzdGQ6Om1p
bihtYXhCdWZmZXJTaXplLCBzdGQ6Om1heChtaW5CdWZmZXJTaXplLCBidWZmZXJTaXplKSk7Ci0K
LSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcmVmZXJyZWRCdWZmZXJTaXplQWRkcmVz
cyA9IHsKLSAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNpemUsCi0gICAg
ICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCi0gICAgICAgIGtBdWRpb09iamVj
dFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwotCi0gICAgcmVzdWx0ID0gQXVkaW9PYmplY3RTZXRQ
cm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmcHJlZmVycmVkQnVmZmVyU2l6ZUFkZHJlc3Ms
IDAsIDAsIHNpemVvZihidWZmZXJTaXplT3V0KSwgKHZvaWQqKSZidWZmZXJTaXplT3V0KTsKLQot
I2lmIExPR19ESVNBQkxFRAotICAgIFVOVVNFRF9QQVJBTShyZXN1bHQpOwotI2Vsc2UKLSAgICBp
ZiAocmVzdWx0KQotICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldFByZWZlcnJl
ZEJ1ZmZlclNpemUoJXp1KSAtIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgYnVmZmVyU2l6ZSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXN1bHQpKTsKLSAgICBlbHNlCi0gICAgICAgIExPRyhNZWRpYSwgIkF1
ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSglenUpIiwgYnVmZmVyU2l6ZSk7Ci0j
ZW5kaWYKLX0KLQotYm9vbCBBdWRpb1Nlc3Npb246OmlzTXV0ZWQoKSBjb25zdAotewotICAgIFVJ
bnQzMiBtdXRlID0gMDsKLSAgICBVSW50MzIgbXV0ZVNpemUgPSBzaXplb2YobXV0ZSk7Ci0gICAg
QXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgbXV0ZUFkZHJlc3MgPSB7IGtBdWRpb0RldmljZVBy
b3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91dHB1dCwga0F1ZGlvT2JqZWN0
UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Ci0gICAgQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEo
ZGVmYXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIDAsIG51bGxwdHIsICZtdXRlU2l6ZSwgJm11
dGUpOwotICAgIAotICAgIHN3aXRjaCAobXV0ZSkgewotICAgIGNhc2UgMDoKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci19Ci0KLXN0YXRpYyBPU1N0YXR1cyBoYW5kbGVNdXRlUHJvcGVydHlDaGFuZ2UoQXVk
aW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyosIHZv
aWQqIGluQ2xpZW50RGF0YSkKLXsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtpbkNsaWVudERhdGFd
IHsKLSAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxBdWRpb1Nlc3Npb24qPihpbkNsaWVudERhdGEp
LT5oYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7Ci0gICAgfSk7Ci0gICAgcmV0dXJuIG5vRXJyOwot
fQotCi12b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpCi17Ci0gICAg
aWYgKCFtX3ByaXZhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGJvb2wgaXNDdXJyZW50bHlN
dXRlZCA9IGlzTXV0ZWQoKTsKLSAgICBpZiAobV9wcml2YXRlLT5sYXN0TXV0ZWRTdGF0ZSA9PSBp
c0N1cnJlbnRseU11dGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8qIG9ic2Vy
dmVyIDogbV9vYnNlcnZlcnMpCi0gICAgICAgIG9ic2VydmVyLT5oYXJkd2FyZU11dGVkU3RhdGVE
aWRDaGFuZ2UodGhpcyk7Ci0KLSAgICBtX3ByaXZhdGUtPmxhc3RNdXRlZFN0YXRlID0gaXNDdXJy
ZW50bHlNdXRlZDsKLX0KLQotdm9pZCBBdWRpb1Nlc3Npb246OmFkZE11dGVkU3RhdGVPYnNlcnZl
cihNdXRlZFN0YXRlT2JzZXJ2ZXIqIG9ic2VydmVyKQotewotICAgIG1fb2JzZXJ2ZXJzLmFkZChv
YnNlcnZlcik7Ci0KLSAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgpID4gMSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgbXV0ZUFkZHJlc3MgPSB7IGtB
dWRpb0RldmljZVByb3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91dHB1dCwg
a0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Ci0gICAgQXVkaW9PYmplY3RBZGRQ
cm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwgJm11dGVBZGRyZXNzLCBoYW5kbGVNdXRl
UHJvcGVydHlDaGFuZ2UsIHRoaXMpOwotfQotCi12b2lkIEF1ZGlvU2Vzc2lvbjo6cmVtb3ZlTXV0
ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIpCi17Ci0gICAgaWYg
KG1fb2JzZXJ2ZXJzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlB
ZGRyZXNzIG11dGVBZGRyZXNzID0geyBrQXVkaW9EZXZpY2VQcm9wZXJ0eU11dGUsIGtBdWRpb0Rl
dmljZVByb3BlcnR5U2NvcGVPdXRwdXQsIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3Rl
ciB9OwotICAgICAgICBBdWRpb09iamVjdFJlbW92ZVByb3BlcnR5TGlzdGVuZXIoZGVmYXVsdERl
dmljZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZSwgdGhpcyk7Ci0g
ICAgfQotCi0gICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKLX0KLQotfQotCi0jZW5k
aWYgLy8gVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk1ZGNjNjUxMDMwYjkwOTY3ODY0NmMyYzU5NGYwOTZkMGIzNjZjNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
Lm1tCkBAIC0wLDAgKzEsMzA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvbi5oIgorCisjaWYgVVNFKEFVRElPX1NFU1NJT04pICYm
IFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW1wb3J0ICJM
b2dnaW5nLmgiCisjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCA8Q29yZUF1ZGlv
L0F1ZGlvSGFyZHdhcmUuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIEF1ZGlvRGV2aWNlSUQg
ZGVmYXVsdERldmljZSgpCit7CisgICAgQXVkaW9EZXZpY2VJRCBkZXZpY2VJRCA9IGtBdWRpb0Rl
dmljZVVua25vd247CisgICAgVUludDMyIGluZm9TaXplID0gc2l6ZW9mKGRldmljZUlEKTsKKwor
ICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGRlZmF1bHRPdXRwdXREZXZpY2VBZGRyZXNz
ID0geworICAgICAgICBrQXVkaW9IYXJkd2FyZVByb3BlcnR5RGVmYXVsdE91dHB1dERldmljZSwK
KyAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKKyAgICAgICAga0F1ZGlv
T2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVk
aW9PYmplY3RHZXRQcm9wZXJ0eURhdGEoa0F1ZGlvT2JqZWN0U3lzdGVtT2JqZWN0LCAmZGVmYXVs
dE91dHB1dERldmljZUFkZHJlc3MsIDAsIDAsICZpbmZvU2l6ZSwgKHZvaWQqKSZkZXZpY2VJRCk7
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIDA7IC8vIGVycm9yCisgICAgcmV0dXJu
IGRldmljZUlEOworfQorCitjbGFzcyBBdWRpb1Nlc3Npb25Qcml2YXRlIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBBdWRpb1Nlc3Npb25Qcml2
YXRlKGJvb2wgbXV0ZWRTdGF0ZSkKKyAgICAgICAgOiBsYXN0TXV0ZWRTdGF0ZShtdXRlZFN0YXRl
KSB7IH0KKyAgICBib29sIGxhc3RNdXRlZFN0YXRlOworICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpOb25lIH07CisjaWYgSEFWRShBVkFVRElP
X1JPVVRJTkdfQVJCSVRFUikKKyAgICBib29sIHNldHVwQXJiaXRyYXRpb25PbmdvaW5nIHsgZmFs
c2UgfTsKKyNlbmRpZgorICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnlP
dmVycmlkZTsKK307CisKK0F1ZGlvU2Vzc2lvbjo6QXVkaW9TZXNzaW9uKCkKKyAgICA6IG1fcHJp
dmF0ZShtYWtlVW5pcXVlPEF1ZGlvU2Vzc2lvblByaXZhdGU+KGlzTXV0ZWQoKSkpCit7Cit9CisK
K0F1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigpID0gZGVmYXVsdDsKKworQXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcHJpdmF0ZS0+Y2F0ZWdvcnk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRl
Z29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkKK3sKKyNpZiBI
QVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQorICAgIGlmIChjYXRlZ29yeSA9PSBBbWJpZW50
U291bmQgfHwgY2F0ZWdvcnkgPT0gU29sb0FtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBBdWRp
b1Byb2Nlc3NpbmcpIHsKKyAgICAgICAgbV9wcml2YXRlLT5jYXRlZ29yeSA9IGNhdGVnb3J5Owor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNhdGVnb3J5ID09IG1fcHJpdmF0ZS0+
Y2F0ZWdvcnkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3ByaXZhdGUtPnNldHVwQXJi
aXRyYXRpb25PbmdvaW5nKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gYSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVnb3J5
IGlzIHN0aWxsIG9uZ29pbmciKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
bV9yb3V0aW5nQXJiaXRyYXRpb25DbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X3ByaXZhdGUtPmNhdGVnb3J5ICE9IE5vbmUpCisgICAgICAgIG1fcm91dGluZ0FyYml0cmF0aW9u
Q2xpZW50LT5sZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpOworCisgICAgbV9wcml2YXRlLT5jYXRl
Z29yeSA9IGNhdGVnb3J5OworICAgIGlmIChtX3ByaXZhdGUtPmNhdGVnb3J5ID09IE5vbmUpCisg
ICAgICAgIHJldHVybjsKKworICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yID0gQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJv
cjsKKyAgICB1c2luZyBEZWZhdWx0Um91dGVDaGFuZ2VkID0gQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOworCisgICAgbV9yb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQtPmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KG1fcHJp
dmF0ZS0+Y2F0ZWdvcnksIFt0aGlzXSAoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIERl
ZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkgeworICAgICAgICBtX3ByaXZh
dGUtPnNldHVwQXJiaXRyYXRpb25PbmdvaW5nID0gZmFsc2U7CisgICAgICAgIGlmIChlcnJvciAh
PSBSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSkgeworICAgICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBiZWdpbkFyYml0
cmF0aW9uV2l0aENhdGVnb3J5OiVzIGZhaWxlZCB3aXRoIGVycm9yICVzIiwgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcobV9wcml2YXRlLT5jYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCksIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKGVycm9yKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBy
ZXNldCBzYW1wbGUgcmF0ZSBhbmQgYnVmZmVyIHNpemUgZm9yIHRoZSBuZXcgZGVmYXVsdCBkZXZp
Y2U/CisgICAgICAgIGlmIChkZWZhdWx0Um91dGVDaGFuZ2VkID09IERlZmF1bHRSb3V0ZUNoYW5n
ZWQ6OlllcykKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdv
cnkoKSAtIGRlZmF1bHRSb3V0ZUNoYW5nZWQhIik7CisgICAgfSk7CisjZWxzZQorICAgIG1fcHJp
dmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyNlbmRpZgorfQorCitBdWRpb1Nlc3Npb246OkNh
dGVnb3J5VHlwZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUoKSBjb25zdAoreworICAg
IHJldHVybiBtX3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKK30KKwordm9pZCBBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQoreworICAg
IGlmIChtX3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZSA9PSBjYXRlZ29yeSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGUgPSBjYXRlZ29yeTsK
KyAgICBzZXRDYXRlZ29yeShjYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsK
K30KKworZmxvYXQgQXVkaW9TZXNzaW9uOjpzYW1wbGVSYXRlKCkgY29uc3QKK3sKKyAgICBGbG9h
dDY0IG5vbWluYWxTYW1wbGVSYXRlOworICAgIFVJbnQzMiBub21pbmFsU2FtcGxlUmF0ZVNpemUg
PSBzaXplb2YoRmxvYXQ2NCk7CisKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBub21p
bmFsU2FtcGxlUmF0ZUFkZHJlc3MgPSB7CisgICAgICAgIGtBdWRpb0RldmljZVByb3BlcnR5Tm9t
aW5hbFNhbXBsZVJhdGUsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWws
CisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OworICAgIE9TU3Rh
dHVzIHJlc3VsdCA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwg
Jm5vbWluYWxTYW1wbGVSYXRlQWRkcmVzcywgMCwgMCwgJm5vbWluYWxTYW1wbGVSYXRlU2l6ZSwg
KHZvaWQqKSZub21pbmFsU2FtcGxlUmF0ZSk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICByZXR1cm4gbmFycm93UHJlY2lzaW9uVG9GbG9hdChub21pbmFsU2FtcGxl
UmF0ZSk7Cit9CisKK3NpemVfdCBBdWRpb1Nlc3Npb246OmJ1ZmZlclNpemUoKSBjb25zdAorewor
ICAgIFVJbnQzMiBidWZmZXJTaXplOworICAgIFVJbnQzMiBidWZmZXJTaXplU2l6ZSA9IHNpemVv
ZihidWZmZXJTaXplKTsKKworICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGJ1ZmZlclNp
emVBZGRyZXNzID0geworICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6
ZSwKKyAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKKyAgICAgICAga0F1
ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgT1NTdGF0dXMgcmVzdWx0ID0g
QXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmYnVmZmVyU2l6ZUFk
ZHJlc3MsIDAsIDAsICZidWZmZXJTaXplU2l6ZSwgJmJ1ZmZlclNpemUpOworCisgICAgaWYgKHJl
c3VsdCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGJ1ZmZlclNpemU7Cit9CisKK3Np
emVfdCBBdWRpb1Nlc3Npb246Om51bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQXVkaW9TZXNzaW9u
Ojp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworUm91dGVTaGFyaW5nUG9saWN5IEF1ZGlvU2Vzc2lvbjo6
cm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gUm91dGVTaGFyaW5nUG9s
aWN5OjpEZWZhdWx0OworfQorCitTdHJpbmcgQXVkaW9TZXNzaW9uOjpyb3V0aW5nQ29udGV4dFVJ
RCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKK3NpemVfdCBBdWRp
b1Nlc3Npb246OnByZWZlcnJlZEJ1ZmZlclNpemUoKSBjb25zdAoreworICAgIFVJbnQzMiBidWZm
ZXJTaXplOworICAgIFVJbnQzMiBidWZmZXJTaXplU2l6ZSA9IHNpemVvZihidWZmZXJTaXplKTsK
KworICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByZWZlcnJlZEJ1ZmZlclNpemVBZGRy
ZXNzID0geworICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZSwKKyAg
ICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKKyAgICAgICAga0F1ZGlvT2Jq
ZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9P
YmplY3RHZXRQcm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmcHJlZmVycmVkQnVmZmVyU2l6
ZUFkZHJlc3MsIDAsIDAsICZidWZmZXJTaXplU2l6ZSwgJmJ1ZmZlclNpemUpOworCisgICAgaWYg
KHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGJ1ZmZlclNpemU7Cit9CisK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJT
aXplKQoreworICAgIEF1ZGlvVmFsdWVSYW5nZSBidWZmZXJTaXplUmFuZ2UgPSB7MCwgMH07Cisg
ICAgVUludDMyIGJ1ZmZlclNpemVSYW5nZVNpemUgPSBzaXplb2YoQXVkaW9WYWx1ZVJhbmdlKTsK
KyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBidWZmZXJTaXplUmFuZ2VBZGRyZXNzID0g
eworICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZVJhbmdlLAorICAg
ICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLAorICAgICAgICBrQXVkaW9PYmpl
Y3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIKKyAgICB9OworICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1
ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwgJmJ1ZmZlclNpemVSYW5n
ZUFkZHJlc3MsIDAsIDAsICZidWZmZXJTaXplUmFuZ2VTaXplLCAmYnVmZmVyU2l6ZVJhbmdlKTsK
KyAgICBpZiAocmVzdWx0KQorICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgbWluQnVmZmVy
U2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oYnVmZmVyU2l6ZVJhbmdlLm1NaW5pbXVtKTsKKyAg
ICBzaXplX3QgbWF4QnVmZmVyU2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oYnVmZmVyU2l6ZVJh
bmdlLm1NYXhpbXVtKTsKKyAgICBVSW50MzIgYnVmZmVyU2l6ZU91dCA9IHN0ZDo6bWluKG1heEJ1
ZmZlclNpemUsIHN0ZDo6bWF4KG1pbkJ1ZmZlclNpemUsIGJ1ZmZlclNpemUpKTsKKworICAgIEF1
ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIHByZWZlcnJlZEJ1ZmZlclNpemVBZGRyZXNzID0gewor
ICAgICAgICBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZSwKKyAgICAgICAga0F1
ZGlvT2JqZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKKyAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVy
dHlFbGVtZW50TWFzdGVyIH07CisKKyAgICByZXN1bHQgPSBBdWRpb09iamVjdFNldFByb3BlcnR5
RGF0YShkZWZhdWx0RGV2aWNlKCksICZwcmVmZXJyZWRCdWZmZXJTaXplQWRkcmVzcywgMCwgMCwg
c2l6ZW9mKGJ1ZmZlclNpemVPdXQpLCAodm9pZCopJmJ1ZmZlclNpemVPdXQpOworCisjaWYgTE9H
X0RJU0FCTEVECisgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CisjZWxzZQorICAgIGlmIChyZXN1
bHQpCisgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVy
U2l6ZSglenUpIC0gZmFpbGVkIHdpdGggZXJyb3IgJWQiLCBidWZmZXJTaXplLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJlc3VsdCkpOworICAgIGVsc2UKKyAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKCV6dSkiLCBidWZmZXJTaXplKTsKKyNlbmRpZgor
fQorCitib29sIEF1ZGlvU2Vzc2lvbjo6aXNNdXRlZCgpIGNvbnN0Cit7CisgICAgVUludDMyIG11
dGUgPSAwOworICAgIFVJbnQzMiBtdXRlU2l6ZSA9IHNpemVvZihtdXRlKTsKKyAgICBBdWRpb09i
amVjdFByb3BlcnR5QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNlUHJvcGVydHlN
dXRlLCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LCBrQXVkaW9PYmplY3RQcm9wZXJ0
eUVsZW1lbnRNYXN0ZXIgfTsKKyAgICBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZWZhdWx0
RGV2aWNlKCksICZtdXRlQWRkcmVzcywgMCwgbnVsbHB0ciwgJm11dGVTaXplLCAmbXV0ZSk7Cisg
ICAgCisgICAgc3dpdGNoIChtdXRlKSB7CisgICAgY2FzZSAwOgorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgY2FzZSAxOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
K30KKworc3RhdGljIE9TU3RhdHVzIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZShBdWRpb09iamVj
dElELCBVSW50MzIsIGNvbnN0IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzKiwgdm9pZCogaW5D
bGllbnREYXRhKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoW2luQ2xpZW50RGF0YV0geworICAg
ICAgICByZWludGVycHJldF9jYXN0PEF1ZGlvU2Vzc2lvbio+KGluQ2xpZW50RGF0YSktPmhhbmRs
ZU11dGVkU3RhdGVDaGFuZ2UoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gbm9FcnI7Cit9CisKK3Zv
aWQgQXVkaW9TZXNzaW9uOjpoYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCkKK3sKKyAgICBpZiAoIW1f
cHJpdmF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBpc0N1cnJlbnRseU11dGVkID0g
aXNNdXRlZCgpOworICAgIGlmIChtX3ByaXZhdGUtPmxhc3RNdXRlZFN0YXRlID09IGlzQ3VycmVu
dGx5TXV0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5n
ZSh0aGlzKTsKKworICAgIG1fcHJpdmF0ZS0+bGFzdE11dGVkU3RhdGUgPSBpc0N1cnJlbnRseU11
dGVkOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6YWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVk
U3RhdGVPYnNlcnZlciogb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVy
KTsKKworICAgIGlmIChtX29ic2VydmVycy5zaXplKCkgPiAxKQorICAgICAgICByZXR1cm47CisK
KyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsga0F1ZGlvRGV2
aWNlUHJvcGVydHlNdXRlLCBrQXVkaW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LCBrQXVkaW9P
YmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKKyAgICBBdWRpb09iamVjdEFkZFByb3BlcnR5
TGlzdGVuZXIoZGVmYXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0
eUNoYW5nZSwgdGhpcyk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpyZW1vdmVNdXRlZFN0YXRl
T2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9ic2VydmVyKiBvYnNlcnZlcikKK3sKKyAgICBpZiAobV9vYnNl
cnZlcnMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3Mg
bXV0ZUFkZHJlc3MgPSB7IGtBdWRpb0RldmljZVByb3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJv
cGVydHlTY29wZU91dHB1dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Cisg
ICAgICAgIEF1ZGlvT2JqZWN0UmVtb3ZlUHJvcGVydHlMaXN0ZW5lcihkZWZhdWx0RGV2aWNlKCks
ICZtdXRlQWRkcmVzcywgaGFuZGxlTXV0ZVByb3BlcnR5Q2hhbmdlLCB0aGlzKTsKKyAgICB9CisK
KyAgICBtX29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOworfQorCit9CisKKyNlbmRpZiAvLyBV
U0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaAppbmRleCAxNGRkNGQ5MTY3MjBhMzA1Y2UzZTcz
NWQyNWEwYmY4OTZiY2RkODVjLi4xZDdjZDk2YzhiNGI1MzhkYzU5ZmY1YzQ3MmVjZThmYjMyYWEw
NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
aApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2luY2x1ZGUgIkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZS5oIgogI2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPENv
cmVBdWRpby9Db3JlQXVkaW9UeXBlcy5oPgpAQCAtMzcsOCArMzgsNiBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0aW9uUmVm
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDOwotCiBjbGFzcyBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYSBmaW5hbCA6
IHB1YmxpYyBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UgewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2E+IGNyZWF0ZShydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcmJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggOGY0OTY4
OGE2NzkzZTg5OTJmZjg1NjE0YzAxNzhkMTQ4YjIzNDFhNy4uNzA3M2ZjMDA0NzJiYjQzN2M5YzNh
NzVkODZkNzIyYmU2NWM5NTc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtODUsNiArODUsNyBAQCAkKFBST0pFQ1RfRElSKS9TaGFyZWQv
V2ViQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwKICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRp
b24uanNvbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9Db2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9VSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNTM1YTY3ZDdkMTVhYzI2NGZlZTYxNWEy
ZDlhNjQ2MDExYzE0MGEwNi4uZDEwMDQ2MzM5ZmU0YzM2OTQ5MjZhODc4YTJlYjFjZDA4YjE3MDgw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CkBAIC0xLDQgKzEsNyBAQAogIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0
ZS14Y2ZpbGVsaXN0cyBzY3JpcHQuCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRp
b25NYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQppbmRleCAyZDU5ZDg2YmMyYTA4NGExNWFhOTU0NjExODc2OWE0NTQy
ZDNlNWExLi5jZDhmZDE5YzU2N2Q4M2VhNDgyMjZmYWMzZDRhNTMzZjYzY2MzNDUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTAsNiArMTEwLDcgQEAgZWxzZQogZW5kaWYKIAog
TUVTU0FHRV9SRUNFSVZFUlMgPSBcCisJQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSBcCiAgICAgQXV0aGVudGljYXRpb25NYW5hZ2VyIFwKICAgICBBdXhpbGlhcnlQcm9jZXNzIFwK
ICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVQcm9jZXNzLmNwcAppbmRleCBlZjIzOTVlYzU5Zjc1NTliMTUxOGI2OTZlZjM2NTgyNDZj
OTNkMjk2Li41YWFiOTU0NDFjZDg1ZTkxN2ZiNzc2NGQ1OTM2NDExZDUxMDFhZGQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9p
ZCBHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2VzcyhHUFVQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBXVEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElz
VXNlckluaXRpYXRlZCgpOwogICAgIEF0b21TdHJpbmc6OmluaXQoKTsKIAotI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgSEFWRShBVkFVRElPX1JP
VVRJTkdfQVJCSVRFUikKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1h
bmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDE5NWQwNjgxOTg5OWRlMzMwNjRhODcz
MDk0ZGE2MDk1YTFiOTljCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCkBAIC0wLDAgKzEs
NjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoQVZBVURJT19ST1VU
SU5HX0FSQklURVIpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisKK2NsYXNzIEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkKKyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KFdlYlByb2Nlc3NQcm94eSYpOwor
ICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkoKTsKKworICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KCkgY29uc3QgeyBy
ZXR1cm4gbV9jYXRlZ29yeTsgfQorCisgICAgc3RhdGljIHVpbnQ2NF90IGRlc3RpbmF0aW9uSWQo
KSB7IHJldHVybiAxOyB9CisKKyAgICB1c2luZyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvciA9IFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0
cmF0aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsK
KyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+OworCitwcml2YXRl
OgorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIC8vIE1lc3Nh
Z2VzCisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQXJiaXRyYXRpb25DYWxsYmFjayYmKTsKKyAg
ICB2b2lkIGxlYXZlUm91dGluZ0FyYml0cmF0aW9uKCk7CisKKyAgICBXZWJQcm9jZXNzUHJveHkm
IG1fcHJvY2VzczsKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2Nh
dGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpOb25lIH07Cit9OworCit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjAzYjYxNDU2NjIwYzY1OWM2Mzc5MzU2ZTAwNzZjZmZhNzRkZjE4MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgSEFWRShBVkFVRElPX1JP
VVRJTkdfQVJCSVRFUikKK21lc3NhZ2VzIC0+IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0
ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNh
dGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5n
ZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkgQXN5bmMKKyAgICBMZWF2ZVJvdXRpbmdBcmJpdHJhdGlv
bigpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTBlMTVmYjFiNTc4ZjU1OTA0OTFlNjVlMWU0MGJjZWI5YjI1NjZkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5tbQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5oIgorCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKKworI2ltcG9ydCAi
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJM
b2dnaW5nLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQ
cm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorCisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitjbGFzcyBTaGFyZWRBcmJpdHJhdG9yIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU2hhcmVkQXJi
aXRyYXRvciYgc2hhcmVkSW5zdGFuY2UoKTsKKworICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJi
aXRyYXRpb25FcnJvcjsKKyAgICB1c2luZyBEZWZhdWx0Um91dGVDaGFuZ2VkID0gQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOworICAgIHVz
aW5nIEFyYml0cmF0aW9uQ2FsbGJhY2sgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5OjpBcmJpdHJhdGlvbkNhbGxiYWNrOworCisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJh
dGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSYsIEFy
Yml0cmF0aW9uQ2FsbGJhY2smJik7CisgICAgdm9pZCBsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbkZv
ckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSYpOworCitwcml2
YXRlOgorICAgIE9wdGlvbmFsPEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlPiBtX2N1cnJlbnRD
YXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworICAgIFdlYWtIYXNoU2V0PEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+IG1fYXJiaXRyYXRvcnM7CisgICAgVmVjdG9yPEFy
Yml0cmF0aW9uQ2FsbGJhY2s+IG1fZW5xdWV1ZWRDYWxsYmFja3M7CisgICAgYm9vbCBtX3NldHVw
QXJiaXRyYXRpb25PbmdvaW5nIHsgZmFsc2UgfTsKK307CisKK1NoYXJlZEFyYml0cmF0b3ImIFNo
YXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U2hhcmVkQXJiaXRyYXRvcj4gaW5zdGFuY2U7CisgICAgcmV0dXJuIGluc3RhbmNlOwor
fQorCit2b2lkIFNoYXJlZEFyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJi
aXRyYXRvcihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5JiBwcm94eSwgQXJiaXRy
YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIEFTU0VSVCghbV9hcmJpdHJhdG9ycy5j
b250YWlucyhwcm94eSkpOworICAgIG1fYXJiaXRyYXRvcnMuYWRkKHByb3h5KTsKKworICAgIGlm
IChtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nKSB7CisgICAgICAgIG1fZW5xdWV1ZWRDYWxsYmFj
a3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGF1dG8gcmVxdWVzdGVkQ2F0ZWdvcnkgPSBwcm94eS5jYXRlZ29yeSgpOworCisgICAgaWYg
KG1fY3VycmVudENhdGVnb3J5KSB7CisgICAgICAgIGlmICgqbV9jdXJyZW50Q2F0ZWdvcnkgPj0g
cmVxdWVzdGVkQ2F0ZWdvcnkpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFJvdXRpbmdBcmJpdHJh
dGlvbkVycm9yOjpOb25lLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBbW1BBTDo6Z2V0QVZBdWRpb1JvdXRpbmdBcmJp
dGVyQ2xhc3MoKSBzaGFyZWRSb3V0aW5nQXJiaXRlcl0gbGVhdmVBcmJpdHJhdGlvbl07CisgICAg
fQorCisgICAgbV9jdXJyZW50Q2F0ZWdvcnkgPSByZXF1ZXN0ZWRDYXRlZ29yeTsKKworICAgIEFW
QXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeSBhcmJpdHJhdGlvbkNhdGVnb3J5OworICAg
IHN3aXRjaCAocmVxdWVzdGVkQ2F0ZWdvcnkpIHsKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6TWVk
aWFQbGF5YmFjazoKKyAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5n
QXJiaXRyYXRpb25DYXRlZ29yeVBsYXliYWNrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEF1
ZGlvU2Vzc2lvbjo6UmVjb3JkQXVkaW86CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBB
VkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEF1ZGlvU2Vzc2lvbjo6UGxheUFuZFJlY29yZDoKKyAgICAgICAgYXJi
aXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeVBsYXlB
bmRSZWNvcmRWb2ljZTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgbV9zZXR1cEFyYml0cmF0aW9uT25nb2lu
ZyA9IHRydWU7CisgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFj
aykpOworCisgICAgW1tQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVk
Um91dGluZ0FyYml0ZXJdIGJlZ2luQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnk6YXJiaXRyYXRpb25D
YXRlZ29yeSBjb21wbGV0aW9uSGFuZGxlcjpbdGhpc10oQk9PTCBkZWZhdWx0RGV2aWNlQ2hhbmdl
ZCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCBkZWZhdWx0RGV2aWNlQ2hhbmdlZCwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3IpXSB7
CisgICAgICAgICAgICBtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nID0gZmFsc2U7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEs
ICJTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3I6
ICVzIGZhaWxlZCB3aXRoIGVycm9yICVzOiVzIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmco
Km1fY3VycmVudENhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSwgW1tlcnJvciBkb21haW5dIFVURjhT
dHJpbmddLCBbW2Vycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3RyaW5nXSk7CisKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIHJlc2V0IHNhbXBsZSByYXRlIGFuZCBi
dWZmZXIgc2l6ZSBmb3IgdGhlIG5ldyBkZWZhdWx0IGRldmljZT8KKyAgICAgICAgICAgIGlmIChk
ZWZhdWx0RGV2aWNlQ2hhbmdlZCkKKyAgICAgICAgICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nl
c3Npb246OnNldENhdGVnb3J5KCkgLSBkZWZhdWx0RGV2aWNlQ2hhbmdlZCEiKTsKKworICAgICAg
ICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fZW5xdWV1ZWRDYWxsYmFja3MpCisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soZXJyb3IgPyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVk
IDogUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsIGRlZmF1bHREZXZpY2VDaGFuZ2VkID8g
RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzIDogRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworCisg
ICAgICAgICAgICBtX2VucXVldWVkQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAgICAgIH0pOworICAg
IH1dOworfQorCit2b2lkIFNoYXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9u
Rm9yQXJiaXRyYXRvcihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5JiBwcm94eSkK
K3sKKyAgICBBU1NFUlQobV9hcmJpdHJhdG9ycy5jb250YWlucyhwcm94eSkpOworICAgIG1fYXJi
aXRyYXRvcnMucmVtb3ZlKHByb3h5KTsKKworICAgIGlmICghbV9hcmJpdHJhdG9ycy5jb21wdXRl
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBt
X2VucXVldWVkQ2FsbGJhY2tzKQorICAgICAgICBjYWxsYmFjayhSb3V0aW5nQXJiaXRyYXRpb25F
cnJvcjo6Q2FuY2VsbGVkLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7CisKKyAgICBtX2VucXVl
dWVkQ2FsbGJhY2tzLmNsZWFyKCk7CisgICAgbV9jdXJyZW50Q2F0ZWdvcnkucmVzZXQoKTsKKyAg
ICBbW1BBTDo6Z2V0QVZBdWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSBzaGFyZWRSb3V0aW5nQXJi
aXRlcl0gbGVhdmVBcmJpdHJhdGlvbl07Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHk6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkoV2ViUHJvY2Vzc1By
b3h5JiBwcm94eSkKKyAgICA6IG1fcHJvY2Vzcyhwcm94eSkKK3sKKyAgICBtX3Byb2Nlc3MuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9uSWQoKSwgKnRoaXMpOworfQor
CitBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklkKCkpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBBcmJpdHJhdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgbV9jYXRlZ29yeSA9IGNhdGVnb3J5OworICAg
IFNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkuYmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25Gb3JBcmJpdHJhdG9yKCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKK3ZvaWQgQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24o
KQoreworICAgIFNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkubGVhdmVSb3V0aW5n
QXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKCp0aGlzKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CmluZGV4IDE3YjViZGM3Y2VmMzc1YmM3MjhlYzQ0NDliZjgwNzNhNzY1MjNhNDUuLjZmZjdjYzdl
ZWYwNmNjOWMwMmRiYzdjZDIyNGZjYTZiYTA1YjAxMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMjU2LDcgKzI1
Niw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbWVkaWFSZWxhdGVkTWFjaFNlcnZp
Y2VzKCkKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgICAg
ICAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiLCAiY29tLmFwcGxlLmNv
cmVtZWRpYS5lbmRwb2ludHBsYXliYWNrc2Vzc2lvbi54cGMiLAogICAgICAgICAiY29tLmFwcGxl
LmNvcmVtZWRpYS5lbmRwb2ludHJlbW90ZWNvbnRyb2xzZXNzaW9uLnhwYyIsICJjb20uYXBwbGUu
Y29yZW1lZGlhLnZpZGVvZGVjb2RlciIsCi0gICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLnZp
ZGVvZW5jb2RlciIKKyAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIiwg
ImNvbS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyIKICNlbmRpZgogICAgIH0pOwogICAgIHJldHVy
biBzZXJ2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggOTcx
MzZkNTAxYjQwYWE1ODA5NzU5YzU3ZTYyNzVjZGY1ZjkyODYzMy4uNzg1NjA5NThkYzg4ODAwNjkx
OGM1NjYxNjAwOTM1ZDFkZTg3MTY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTI3MSw2ICsyNzEsNyBAQCBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgeworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxl
cjsKIGNsYXNzIEdhbWVwYWREYXRhOwpAQCAtMjc3NSw2ICsyNzc2LDEwIEBAIHByaXZhdGU6CiAg
ICAgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9t
QXBwQm91bmREb21haW4geyBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9Owog
ICAgIGJvb2wgbV9pZ25vcmVzQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1f
dXNlclNjcmlwdHNOb3RpZmllZCB7IGZhbHNlIH07CisKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElO
R19BUkJJVEVSKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5PiBtX3JvdXRpbmdBcmJpdHJhdG9yOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDJhZWRkYWQwMTc0YTllNjk5NTY1ZDJmZjE4ZWFiNTBmNjNjODY2ZTQuLjUxNDAyYmI3
MmQzNTU2YWI4ZTU5ZmViNzI5MGMxMWZhNGE2MTNiZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODcsNiArODcsMTAgQEAKICNpbmNsdWRlICJT
ZWNJdGVtU2hpbVByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FS
QklURVIpCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgor
I2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tf
QkFTRShhc3NlcnRpb24sIGNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19VUkwo
dXJsKSBNRVNTQUdFX0NIRUNLX0JBU0UoY2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKHVy
bCksIGNvbm5lY3Rpb24oKSkKIApAQCAtMTg3LDYgKzE5MSw5IEBAIFdlYlByb2Nlc3NQcm94eTo6
V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFT
dG9yZSoKICAgICAsIG1fbWF5SGF2ZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihm
YWxzZSkKICAgICAsIG1fbnVtYmVyT2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQo
MCkKICAgICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBwcm9jZXNzUG9vbC5zaG91bGRUYWtlVUlCYWNr
Z3JvdW5kQXNzZXJ0aW9uKCkpCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKKyAg
ICAsIG1fcm91dGluZ0FyYml0cmF0b3IobWFrZVVuaXF1ZVJlZjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5PigqdGhpcykpCisjZW5kaWYKICAgICAsIG1faXNSZXNwb25zaXZlKE5v
T3JNYXliZTo6TWF5YmUpCiAgICAgLCBtX3Zpc2libGVQYWdlQ291bnRlcihbdGhpc10oUmVmQ291
bnRlckV2ZW50KSB7IHVwZGF0ZUJhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyKCk7IH0pCiAg
ICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMjExYmI0NTVlNWUxNTcyZWIyMDBhMjBi
ZGJlNTE2OTM1OWM4OTNiMi4uMTU1YmI3YWU1ZTQ1ZDQyYjE5NWY5OTNjZmEzM2FiZTljMjEzMGI3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTc3LDYg
Kzc3LDcgQEAgZW51bSBjbGFzcyBUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIDogdWludDhf
dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgT2JqQ09iamVj
dEdyYXBoOwogY2xhc3MgUGFnZUNsaWVudDsKQEAgLTUzNiw2ICs1MzcsMTAgQEAgcHJpdmF0ZToK
ICAgICBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJh
Y2tncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAKKyNpZiBIQVZFKEFW
QVVESU9fUk9VVElOR19BUkJJVEVSKQorICAgIFVuaXF1ZVJlZjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5PiBtX3JvdXRpbmdBcmJpdHJhdG9yOworI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmls
aXR5U2VydmVyIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tQ
cmVmZXJlbmNlU2VydmljZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYWNlOWUyNzIzM2M0ZWY3YWZlNTVmOGI1OWU5
NjEzNjIyZTk1YjAxLi44ZGM3YzM5MjRjY2U4MzcwMTY4NGZiNmVjN2UyMDlmYTYxNGJkZjgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE3MDcsNiArMTcwNyw5IEBACiAJCUNEMTlEMkVBMjA0NjQwNkYwMDE3MDc0QSAvKiBGdWxsc2Ny
ZWVuVG91Y2hTZWNoZXVyaXN0aWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMTlEMkU4MjA0NjQwNkYwMDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91Y2hT
ZWNoZXVyaXN0aWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4
NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi87IH07
CiAJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4NjVF
RDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovOyB9Owor
CQlDRDQ1NzBDRTI0NDBGQkM5MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENDU3MENEMjQ0MEZCOTIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5Lm1tICovOyB9OworCQlDRDQ1NzBEMzI0NDExM0I1MDBBM0RDRUIgLyogQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ1NzBEMDI0NDEwMTRBMDBBM0RD
RUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi87IH07CisJCUNENDU3MEQ0MjQ0MTFEMEYwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDQ1NzBDQjI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwICovOyB9OwogCQlDRDQ2NjE4MzI0MDEwQTY3MDA0N0NBMzUgLyogUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDY2MTgxMjQwMTA1NjQwMDQ3Q0EzNSAvKiBS
ZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDQ5
MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjA2MUU3MEQwNUYw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovOyB9OwogCQlDRDQ5MUIwRDFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFC
MEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKQEAgLTUwMzIsNiArNTAzNSwxNCBAQAogCQlDRDE5RDJFOTIwNDY0MDZG
MDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNj
cmVlbi9GdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBD
QTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcw
Q0MyNDQwRkI5MjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBDRDI0NDBGQjkyMDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNENDU3MENGMjQ0MEZEOTYwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENDU3MEQwMjQ0MTAxNEEwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBEMTI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDQ1NzBEMjI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTdGMjQwMTA0NTgwMDQ3Q0EzNSAvKiBSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNz
aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ2NjE4MDI0
MDEwNTY0MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VzUmVwbGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ2NjE4MTI0MDEwNTY0MDA0N0NB
MzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjU3LDYgKzYyNjgsOSBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1N0ZEMzE2QjIyQjMzNjdFMDA4RDBF
OEIgLyogU09BdXRob3JpemF0aW9uICovLAorCQkJCUNENDU3MENDMjQ0MEZCOTIwMEEzRENFQiAv
KiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmggKi8sCisJCQkJQ0Q0NTcwQ0Qy
NDQwRkI5MjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubW0g
Ki8sCisJCQkJQ0Q0NTcwQ0YyNDQwRkQ5NjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJOTlDODFENTUxQzIwREZCRTAwNUM0
QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCAqLywKIAkJCQk5OUM4MUQ1NjFDMjBERkJFMDA1QzRD
ODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSAqLywKIAkJCQk5OTBEMjhCNzFDNjUzOUEwMDA5ODY5
NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLywKQEAgLTgzMjAsNiArODMzNCw4IEBA
CiAJCQkJNTJENUExQjQxQzU3NDlGMjAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0gKi8sCiAJCQkJRUNBNjgwRDcxRTY5MERGODAwNzMxRDIwIC8qIFdlYlByb2Nlc3NDb2NvYS5o
ICovLAogCQkJCTdDNkU3MEY5MThCMkQ0QTAwMEYyNEUyRSAvKiBXZWJQcm9jZXNzQ29jb2EubW0g
Ki8sCisJCQkJQ0Q0NTcwQ0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmggKi8sCisJCQkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTg5Niw2ICs5OTEyLDkgQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMkQ3REVCRTIyMTI2OUU0QjAwQjlGNzND
IC8qIHVuaWZpZWQtc291cmNlcyAqLywKKwkJCQlDRDQ1NzBEMDI0NDEwMTRBMDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJQ0Q0NTcwRDEyNDQxMDE0QjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUNENDU3MEQyMjQ0MTAxNEIwMEEzRENFQiAv
KiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8s
CiAJCQkJNTEyRjU4QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTEyRjU4QTExMkE4ODNBRDAwNjI5NTMwIC8qIEF1
dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJOTk1NUE2RjAxQzc5ODY2NDAw
RUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovLApAQCAtMTI3MTIs
NiArMTI3MzEsNyBAQAogCQkJCTJEMTFCNzY0MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291
cmNlMTAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3NjMyMTI2QTI4MjAwNkY4ODc4IC8q
IFVuaWZpZWRTb3VyY2UxMC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzY1MjEyNkEy
ODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMTEtbW0ubW0gaW4gU291cmNlcyAqLywKKwkJCQlD
RDQ1NzBDRTI0NDBGQkM5MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzY2MjEyNkEyODIwMDZGODg3OCAvKiBV
bmlmaWVkU291cmNlMTEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3NjcyMTI2QTI4MjAw
NkY4ODc4IC8qIFVuaWZpZWRTb3VyY2UxMi1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFC
NzY4MjEyNkEyODIwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMTIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xMjg3OCw2ICsxMjg5OCw3IEBACiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODE5QkExMTg2Mjgw
MEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDU3MEQzMjQ0MTEzQjUwMEEzRENFQiAvKiBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTI2ODQwNTUyMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0
Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTYwMjI0QzE4QzE2
QjlGMDBDM0U4QzkgLyogVmlzaXRlZExpbmtTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMjg5Nyw2
ICsxMjkxOCw3IEBACiAJCQkJMkQ5MkE3ODkyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDcz
QkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMwRTYwNjExMkQ2QkE5MTAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzBFNjE4MjEyRDZDQjFEMDAxMkE3MkEg
LyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEwNTIzNzUxQzczRDM4RjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjY3ZjI3OTJiNWVkYzcxNzcx
OGM4YzE2YWY0NzU4NDQ3YmI5MmU5MC4uYjBjMWE0YWZhNjdkZmI2Nzg4Mjk4NjI0NDJmMTY0NGIw
ZTE5N2VjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTU2MCw3ICs1NjAsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICB1cGRh
dGVQcmVmZXJlbmNlcyhwYXJhbWV0ZXJzLnN0b3JlKTsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJC
SVRFUikKICAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWEo
KSkKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRp
b1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDBiOWRkZGI3YTYxZGYxMjU5ZGM4YWMzNzY1YjcyYWFkMTk2OTQ2
N2IuLjUwNTcyYmYwNWQ5M2FlYzc4YzAxNGE5MGFmMThjZmM3MzhkMWUwOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE4NCw2ICsxODQsMTAgQEAKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaCIKICNlbmRpZgogCisjaWYgSEFWRShBVkFV
RElPX1JPVVRJTkdfQVJCSVRFUikKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCAobV9zZXNz
aW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAjZGVmaW5lIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25M
b2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lvbklEPSUiIFBSSXU2NCAiXSBX
ZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCwgIyNfX1ZBX0FS
R1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQs
IC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNo
YW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdlYlByb2Nlc3M6OiIgZm10LCB0
aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJHU19fKQpAQCAtMjU5LDYgKzI2
MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRTdXBwbGVtZW50PFJlbW90
ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKIAorI2lmIEhBVkUoQVZBVURJT19ST1VUSU5H
X0FSQklURVIpCisgICAgYWRkU3VwcGxlbWVudDxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cj4oKTsKKyNlbmRpZgorCiAgICAgR2lnYWNhZ2U6OmZvcmJpZERpc2FibGluZ1ByaW1pdGl2ZUdp
Z2FjYWdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg3OThmMWQzZDMwODU2ZWNkNTcwODEzNTA5NzQ0NGVkZTUxYWFkZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCIKKworI2lm
IEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcihXZWJQcm9jZXNzJiBwcm9jZXNzKQorICAg
IDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgQXVkaW9TZXNzaW9uOjpzaGFyZWRTZXNzaW9u
KCkuc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KG1ha2VXZWFrUHRyKHRoaXMpKTsKK30KKwor
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvcigpID0gZGVmYXVsdDsKKworY29uc3QgY2hhciogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3I6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1cm4gIkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yIjsKK30KKwordm9pZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6
YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgY2F0ZWdvcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUm91dGluZ0FyYml0cmF0aW9u
RXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPiYmIGNhbGxiYWNrKQoreworICAgIG1fcHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KGNhdGVnb3J5KSwgV1RGTW92ZShjYWxsYmFjayksIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQoKSk7Cit9CisKK3ZvaWQgQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCkKK3sK
KyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6TGVhdmVSb3V0aW5nQXJiaXRyYXRp
b24oKSwgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6ZGVzdGluYXRpb25JZCgp
KTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTdjYTRlZjM3ZmM3OGYxMGFlNzRmOGFlMDM1OGQ3ODA2ODg0MTU3ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBy
b2Nlc3M7CisKK2NsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yIGZpbmFsCisgICAg
OiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcj4geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisK
KyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OworCitwcml2YXRlOgorICAgIC8vIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
YnJpdHJhdG9yCisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYpIGZpbmFs
OworICAgIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSBmaW5hbDsKKworICAgIFdlYlBy
b2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApp
bmRleCAwMDRiODU0Y2NkZDU0MDRjYTY1N2NjZTgzY2MwZWFlMWJmNjQ0YTI3Li44YWY2YzAyZDYx
YTA3MTRlNWFlYzg5OTg2NzcwYzFjOTA1NjNiMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAg
LTUyMSw3ICs1MjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgIGlmIChtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
ciB7ICJBdWRpbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVudGVkIl9zIH07
CiAjZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpIHx8IEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCiAgICAgLy8gRklYTUU6IFJlbW92
ZSBkaXNhYmxpbmcgb2YgdGhlIGF1ZGlvIHNlc3Npb24gY2F0ZWdvcnkgbWFuYWdlbWVlbnQgb25j
ZSB3ZSBtb3ZlIGFsbCBtZWRpYSBwbGF5aW5nIHRvIEdQVVByb2Nlc3MuCiAgICAgaWYgKG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgppbmRleCA1
YjMwNTRmNDM4YmUzYTk5YTQzMTE2MjNiZmY1Y2IzMDA1ZTUxYTllLi4zNTVlM2JhMTExMTJiZmY1
ZmE3MDdkZTQzZGE0ZTcyMzQzZjE3ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC05MDUsNiArOTA1LDcgQEAKICAg
ICAgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgogICAgICAgICAgICAgImNvbS5h
cHBsZS50Y2NkIgogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFwZGIiCisgICAgICAgICAg
ICAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgogCiAgICAgICAgICAgICA7OzsgRklYTUUo
MjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJv
Y2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBv
bmVudFJlZ2lzdHJhciIgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnQueHBjIiAiY29tLmFw
cGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggOTVkMGYzZThkNjdhODM0MDEyYWQwN2Y2M2VkZGNl
MjkwNjczYWZmNS4uYTIwMGE4YWRjNWUxN2EyYjhiZTdjYTBiZWVlNDg0ODU1YmUyZGQxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTQyOSw2ICsx
NDI5LDEwIEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNT
dHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAgICAgICAgICAgICBXZWJDb3JlOjpE
ZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVn
b3J5KHRydWUpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQor
ICAgICAgICBXZWJDb3JlOjpEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldFNob3VsZE1hbmFn
ZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOworI2VuZGlmCisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhQ2FjaGVEaXJlY3Rv
cnkoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KE5TVGVtcG9yYXJ5RGlyZWN0
b3J5KCksICJNZWRpYUNhY2hlLyJfcykpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmFkMDE3NTA1MGUzZWRhNjhkZGY3YTFhNjZi
YTJjZDJiMjU5NzM0Mi4uMmYwMjdjMTk5ODRjZmJkM2RhYTZlMmYwN2ZiYmE5MDMzNjgzOWE3ZiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCBm
b3Igc29mdGxpbmsgb2YgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA0LTEwICBBbGljaWEgQm95
YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1RGXSBEYXRhTXV0ZXg6
IEFkZCBydW5VbmxvY2tlZCgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQpp
bmRleCA5OTI5NDBlNGUyODZjODg3Yjg5MTg2MGMwMzQ3MTBmNzdjODFjM2UxLi5iMzE0N2JiMGQw
OWQzNjEyOWY0NTVjYWYxODAzN2NkNDY2MmI2NDdlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGlua1Rlc3QubW0KQEAgLTc1LDYgKzc1LDEwIEBAIFRFU1QoQVZGb3VuZGF0aW9uU29mdExp
bmssIENsYXNzZXMpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZTcGVlY2hTeW50aGVzaXNWb2lj
ZUNsYXNzKCksIG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19B
UkJJVEVSKQorICAgIEVYUEVDVF9ORShQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNz
KCksIG51bGxwdHIpOworI2VuZGlmCisKICNpZiBIQVZFKE1FRElBX1BMQVlFUikgJiYgIVBMQVRG
T1JNKFdBVENIT1MpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZSb3V0ZURldGVjdG9yQ2xhc3Mo
KSwgbnVsbHB0cik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396295</attachid>
            <date>2020-04-13 09:42:41 -0700</date>
            <delta_ts>2020-04-13 09:44:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210167-20200413094240.patch</filename>
            <type>text/plain</type>
            <size>83197</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5ODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg1NTkwZjkyMDliNTRkNzY1MjAyODRi
YWNmMDQ0YTUxOWY1ZDQwZjkuLjczNjUwZDIzOWI2ODI1M2RhN2UyNTA1ODAyNWRmMWM4YjIxZDhm
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJp
dGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA0LTEwICBBbGljaWEgQm95YSBHYXJjw61hICA8
YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1RGXSBEYXRhTXV0ZXg6IEFkZCBydW5Vbmxv
Y2tlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODFmODE1YmRjODVlYTAyOTlhNWNhMjYxMTQ5
MDYyYy4uNjA0Zjk0MGIzMDlhYWY5ZDQxYmZiNWVhM2FlNzg0N2YwYmJjYjlmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBm
b3IgTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OmNhdGVnb3J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Np
b246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKKworICAgICAgICBGaXggdW5pZmllZCBidWlsZCBm
YWlsdXJlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKKwogMjAyMC0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgcGxheWJhY2sgb2YgcmVtb3RlIGF1
ZGlvIHRyYWNrcyBpcyBzdGFibGUgZXZlbiBpZiBwYWdlcyBhcmUgdXNpbmcgd2ViYXVkaW8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IDhiZjFlZjQwOTc2MWIzMjM0NTMxY2I4NmZiOGI3ZjI5ZDA4MmIw
NTYuLmYzZDkxYmRlOTlhMjE2MzBmMjMyZTQ0MjljNmNkYTk2OTRkMGQ3N2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJi
aXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTAxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKwogMjAyMC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVHJhY2sgZWRpdGFibGUgZWxlbWVudHMgb24gc2Ny
ZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGQ5YjQwNzY2OGJiNWFhM2U5ZWQ3ZDYzNWRjMWUyZWY0MjhkYzQ0OGMu
LmRlNzg5NWViMGFhYjkyODQ2YzVlMTM4YTY2ZmM0NmMxZWRjOTI0ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTggQEAKKzIwMjAtMDQtMTAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBjcm9zcy1wcm9jZXNzIG9iamVj
dCBwYWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJv
dXRpbmcKKyAgICAgICAgYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJ
UHJvY2Vzcy4gQmVjYXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQKKyAgICAgICAgbXVs
dGlwbGUgV2ViQ29udGVudCBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5n
IGFyYml0cmF0aW9uIHJlcXVlc3RzIGdsb2JhbGx5LgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRp
YWxpemVHUFVQcm9jZXNzKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bWVk
aWFSZWxhdGVkTWFjaFNlcnZpY2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJv
dXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6Y2F0ZWdvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlvbklkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlNoYXJl
ZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkQXJi
aXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKyAgICAgICAg
KFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJp
dHJhdG9yKToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgor
ICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpsZWF2
ZVJvdXRpbmdBcmJpdHJhdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6
YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3Iu
aDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRp
b0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKKwogMjAyMC0wNC0xMCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXQVJOX1VOVVNFRF9SRVRVUk4g
dG8gZGVjb2RlIG1ldGhvZHMgaW4gV2ViQ29yZUFyZ3VtZW50Q29kZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggNmEzYTUxNzQ0MDY3ZmMyYjgwZmQ0OWRiZTEzOTNmMzI4
NWIwYjRjYy4uOGFlZmRhNjg0MTc2OThlZjU5YWRmYWE4OWI4Y2IwNTdhZWJmMDNmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMjg0LDMgKzI4NCw3IEBACiAjaWYgIWRl
ZmluZWQoRU5BQkxFX1NJR0lMTF9DUkFTSF9BTkFMWVpFUikgJiYgKFBMQVRGT1JNKElPU19GQU1J
TFkpICYmICFQTEFURk9STShXQVRDSE9TKSkKICNkZWZpbmUgRU5BQkxFX1NJR0lMTF9DUkFTSF9B
TkFMWVpFUiAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNjAwKQorI2RlZmluZSBFTkFCTEVfUk9VVElOR19BUkJJ
VFJBVElPTiAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMTY2YTEzNWQ3ZTA0ZGIz
YTk1YTQzMTVjYTAzNjY5MjQ4ZWI0Yjc1MC4uMzcxMDI1Y2UzZjM3YTlhYzBhOTJhYmJkOTJmNzJi
ZTRlZjFiODZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY2OSwzICs2NjksNyBAQAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBIQVZFX0lPU19KSVRfUkVTVFJJQ1RJ
T05TIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE2MDApCisjZGVmaW5lIEhBVkVfQVZBVURJT19ST1VUSU5HX0FS
QklURVIgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmgKaW5kZXggZTFmMjEzZWE1ZWQxODFmMjU1NTQ1ODJiODQxOGM1
YTIzMDlmNGZlMy4uMTI3ODM1MzdjNGYxZjFmYzc4Zjk4ZWFhMTM2ODcxMDdlM2NhNDhmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaApAQCAtNzgsNiArNzgsMTAgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBB
VlNwZWVjaFN5bnRoZXNpemVyKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlNw
ZWVjaFV0dGVyYW5jZSkKICNlbmRpZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRF
UikKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBdWRpb1JvdXRpbmdBcmJpdGVy
KQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKFBBTCwgQVZSb3V0ZURldGVjdG9yKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIo
UEFMLCBBVlZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggNTFiNjYzNmFhZTE4
MmNlNDIyZDllYmJhNmI1MDNiMDc0NGI1Y2U0ZC4uYTJjZmI3ZTRjNTk0NDg4MGFmMjQ1N2FjNGI2
NzQxNTEzMzM0ODIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xMDQsNiArMTA0LDEwIEBAIFNPRlRfTElOS19D
TEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNwZWVjaFN5
bnRoZXNpemVyLCBQCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZTcGVlY2hVdHRlcmFuY2UsIFBBTF9FWFBPUlQpCiAjZW5kaWYKIAor
I2lmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1JvdXRpbmdBcmJpdGVy
LCBQQUxfRVhQT1JUKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElO
S19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRl
RGV0ZWN0b3IsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05B
TF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZWaWRlb1BlcmZvcm1hbmNlTWV0cmlj
cywgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDBiYWZkMzZmYTY1ODc3
NjAyMzU4ZjdmZWY5YTdkYjU0MmMxZDZiZjkuLjU4ZjVlZDgxMmJjZTBlMDZkZWM0ZDQxMDI4MzVh
Y2E1N2ZiOThkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMTgxLDcgKzE4MSw3IEBA
IHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0J1c01hYy5tbQogcGxhdGZvcm0vYXVkaW8vbWFjL0F1
ZGlvRGVzdGluYXRpb25NYWMuY3BwCiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVy
TWFjLmNwcAogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAK
LXBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCitwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9TZXNzaW9uTWFjLm1tCiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNw
cAogcGxhdGZvcm0vYXVkaW8vbWFjL0ZGVEZyYW1lTWFjLmNwcAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTIxYmQ1MGVlMzg1
MDhlY2Q2M2ZhNzA2NGU1Mzg4Y2ZhYzY3ODBkZi4uMzBjN2YzNWZhOTgwMTkxZTZlZjlmZmVhM2Ix
MDIxYzllNTk0MmViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTM5NDcsNyArMTM5NDcsNyBAQAogCQlDRDUzOTNEMjE3NUUw
MTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0
QTc2MDE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDU0QTc2MTE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFja1By
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
Q0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVkaW9T
ZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVk
aW9TZXNzaW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY4RjE0
NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVS
ZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9GaWxlUmVh
ZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTg5NDkzMjE4NzQwNjQw
MDRGNDI0QSAvKiBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjkxNjAsNyArMjkxNjAsNyBAQAogCQkJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAvKiBB
dWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLywKIAkJCQkwNzNCODc2NTFFNDM4NTlEMDA3MUMwRUMg
LyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi8sCiAJCQkJMDczQjg3NjQxRTQzODU5RDAwNzFD
MEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLywKLQkJCQlDRDU0REU0OTE3NDY5QzZE
MDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLywKKwkJCQlDRDU0REU0OTE3NDY5QzZE
MDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLm1tICovLAogCQkJCTA3M0I4NzU3MUU0MERDRkQw
MDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwICovLAogCQkJCTA3M0I4NzU4
MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKIAkJCQlD
REM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IDliMmZhZTU2
ZGQxNWYxNWViNGQ0ODYwY2RjMTE2Yjk4MjI3ZTRlYzkuLjUxYThkM2EyODI2MGM2MzMzMTAzZjEw
N2ViYWRjNGU5NGM1Y2RiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9TZXNzaW9uLmNwcApAQCAtMjAwLDYgKzIwMCwzMyBAQCBTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgZW51bWVyYXRpb25WYWx1
ZSkKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdU
Rl9BUlJBWV9MRU5HVEgodmFsdWVzKSk7CiAgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxz
aXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpXTsKIH0KKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3IgZW51bWVyYXRpb25WYWx1ZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RS
SU5HX0lNUEwoIk5vbmUiKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIkZhaWxl
ZCIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiQ2FuY2VsbGVkIiksCisgICAg
fTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUpLCAi
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25F
cnJvcjo6Tm9uZSBpcyBub3QgMCBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJv
dXRpbmdBcmJpdHJhdGlvbkVycm9yOjpGYWlsZWQpLCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkIGlzIG5vdCAxIGFz
IGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6
OkNhbmNlbGxlZCksICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQgaXMgbm90IDIgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJB
WV9MRU5HVEgodmFsdWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+
KGVudW1lcmF0aW9uVmFsdWUpXTsKK30KKworU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3Ry
aW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hh
bmdlZCBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgi
Tm8iKSwKKyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlllcyIpLAorICAgIH07Cisg
ICAgc3RhdGljX2Fzc2VydCghc3RhdGljX2Nhc3Q8Ym9vbD4oQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyksICJBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vIGlzIG5vdCBm
YWxzZSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8Ym9vbD4o
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2Vk
OjpZZXMpLCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91
dGVDaGFuZ2VkOjpZZXMgaXMgbm90IHRydWUgYXMgZXhwZWN0ZWQiKTsKKyAgICBBU1NFUlQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKSA8IFdURl9BUlJBWV9MRU5HVEgodmFs
dWVzKSk7CisgICAgcmV0dXJuIHZhbHVlc1tzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9u
VmFsdWUpXTsKK30KKwogfQogCiAjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCmluZGV4IDYzN2QyOTM1Yzk0
Y2U0MzNlMjA2ZWU2MmE4Mzc5MGM2OGFhMjViZGYuLjkwNzE4M2JkYjJiZDQxM2VlYWM1Njk2N2Nj
MDMwZTA0MDg2NmQ1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlv
U2Vzc2lvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKICNp
bmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ2LDYgKzQ3LDggQEAgZW51bSBjbGFz
cyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1aW50OF90IHsKICAgICBMb25nRm9ybVZpZGVvCiB9Owog
CitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ7CisKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lvbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXVkaW9TZXNzaW9uKTsKQEAgLTExMyw2ICsxMTYs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVy
biBtX2FjdGl2ZTsgfQogCisgICAgdm9pZCBzZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQoV2Vh
a1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ+JiYgY2xpZW50KSB7IG1f
cm91dGluZ0FyYml0cmF0aW9uQ2xpZW50ID0gY2xpZW50OyB9CisKIHByb3RlY3RlZDoKICAgICBm
cmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Np
b24oKTsKQEAgLTEyNCwxMSArMTI5LDI4IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIFdlYWtIYXNoU2V0PEludGVycnVwdGlvbk9ic2VydmVyPiBtX2ludGVycnVw
dGlvbk9ic2VydmVyczsKICNlbmRpZgorCisgICAgV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ+IG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OwogICAgIGJvb2wg
bV9hY3RpdmUgeyBmYWxzZSB9OyAvLyBVc2VkIG9ubHkgZm9yIHRlc3RpbmcuCiB9OwogCi1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsKLVN0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7
CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlv
bkNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIGVudW0gY2xhc3MgUm91dGluZ0FyYml0cmF0aW9u
RXJyb3IgOiB1aW50OF90IHsgTm9uZSwgRmFpbGVkLCBDYW5jZWxsZWQgfTsKKyAgICBlbnVtIGNs
YXNzIERlZmF1bHRSb3V0ZUNoYW5nZWQgOiBib29sIHsgTm8sIFllcyB9OworCisgICAgdmlydHVh
bCB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6
Q2F0ZWdvcnlUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVy
cm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsZWF2
ZVJvdXRpbmdBYnJpdHJhdGlvbigpID0gMDsKKworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsK
K1dFQkNPUkVfRVhQT1JUIFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nl
c3Npb246OkNhdGVnb3J5VHlwZSk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0
aW5nQXJiaXRyYXRpb25FcnJvcik7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZh
dWx0Um91dGVDaGFuZ2VkKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC0xNjQsNiAr
MTg2LDIzIEBAIHRlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6TWF5UmVzdW1lPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsCisgICAgV2ViQ29y
ZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRp
b25FcnJvcjo6RmFpbGVkLAorICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6OkNhbmNlbGxlZAorICAgID47Cit9
OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQsCisgICAgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpO
bywKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRl
ZmF1bHRSb3V0ZUNoYW5nZWQ6OlllcworICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
eXBlPgogc3RydWN0IExvZ0FyZ3VtZW50OwogCkBAIC0xODMsNiArMjIyLDIxIEBAIHN0cnVjdCBM
b2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gewogICAgIH0K
IH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcj4gewor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvcikKKyAg
ICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcik7Cisg
ICAgfQorfTsKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkPiB7Cisg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgY2hhbmdlZCkKKyAgICB7
CisgICAgICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhjaGFuZ2VkKTsKKyAg
ICB9Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNT
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nl
c3Npb25JT1MubW0KaW5kZXggYzI1YTBjYWE1NzMwNzQ4ZDc1ODU2MmQwZGNmZTBkODQzYWRhMDUy
MS4uOGQ3YmI5NDMzZDM2ODcwN2JjOTRmYTIyNjU5OWZjOTIxODM5MTU5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBA
IC05NiwyNSArOTYsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0df
RElTQUJMRUQKLXN0YXRpYyBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUoQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi17Ci0jZGVmaW5lIENBU0UoY2F0ZWdvcnkpIGNhc2UgQXVk
aW9TZXNzaW9uOjpjYXRlZ29yeTogcmV0dXJuICNjYXRlZ29yeQotICAgIHN3aXRjaCAoY2F0ZWdv
cnkpIHsKLSAgICAgICAgQ0FTRShOb25lKTsKLSAgICAgICAgQ0FTRShBbWJpZW50U291bmQpOwot
ICAgICAgICBDQVNFKFNvbG9BbWJpZW50U291bmQpOwotICAgICAgICBDQVNFKE1lZGlhUGxheWJh
Y2spOwotICAgICAgICBDQVNFKFJlY29yZEF1ZGlvKTsKLSAgICAgICAgQ0FTRShQbGF5QW5kUmVj
b3JkKTsKLSAgICAgICAgQ0FTRShBdWRpb1Byb2Nlc3NpbmcpOwotICAgIH0KLSAgICAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7Ci19Ci0jZW5kaWYKLQogY2xhc3Mg
QXVkaW9TZXNzaW9uUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC0xNTUsNyArMTM2LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENh
dGVnb3J5VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICAgICAgICAg
cG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOwogI2VuZGlmCiAKLSAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRlZ29yeSA9ICVz
IiwgY2F0ZWdvcnlOYW1lKG5ld0NhdGVnb3J5KSk7CisgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKG5ld0NhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICBpZiAoY2F0ZWdvcnlP
dmVycmlkZSgpICYmIGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQs
IE5PVCBjaGFuZ2luZyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Y2MwNGYwYmUzMDk3NDk4YjgzNjZlOTI0MjA3M2VjZTNlMTk3NWFiNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXVk
aW9TZXNzaW9uLmgiCi0KLSNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQot
Ci0jaW5jbHVkZSAiRmxvYXRDb252ZXJzaW9uLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSA8Q29yZUF1ZGlvL0F1ZGlvSGFyZHdh
cmUuaD4KLSNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBBdWRpb0RldmljZUlE
IGRlZmF1bHREZXZpY2UoKQotewotICAgIEF1ZGlvRGV2aWNlSUQgZGV2aWNlSUQgPSBrQXVkaW9E
ZXZpY2VVbmtub3duOwotICAgIFVJbnQzMiBpbmZvU2l6ZSA9IHNpemVvZihkZXZpY2VJRCk7Ci0K
LSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBkZWZhdWx0T3V0cHV0RGV2aWNlQWRkcmVz
cyA9IHsKLSAgICAgICAga0F1ZGlvSGFyZHdhcmVQcm9wZXJ0eURlZmF1bHRPdXRwdXREZXZpY2Us
Ci0gICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCi0gICAgICAgIGtBdWRp
b09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwotICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1
ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGtBdWRpb09iamVjdFN5c3RlbU9iamVjdCwgJmRlZmF1
bHRPdXRwdXREZXZpY2VBZGRyZXNzLCAwLCAwLCAmaW5mb1NpemUsICh2b2lkKikmZGV2aWNlSUQp
OwotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIHJldHVybiAwOyAvLyBlcnJvcgotICAgIHJldHVy
biBkZXZpY2VJRDsKLX0KLQotY2xhc3MgQXVkaW9TZXNzaW9uUHJpdmF0ZSB7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgQXVkaW9TZXNzaW9uUHJp
dmF0ZShib29sIG11dGVkU3RhdGUpCi0gICAgICAgIDogbGFzdE11dGVkU3RhdGUobXV0ZWRTdGF0
ZSkgeyB9Ci0gICAgYm9vbCBsYXN0TXV0ZWRTdGF0ZTsKLSAgICBBdWRpb1Nlc3Npb246OkNhdGVn
b3J5VHlwZSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OwotfTsKLQotQXVkaW9TZXNz
aW9uOjpBdWRpb1Nlc3Npb24oKQotICAgIDogbV9wcml2YXRlKG1ha2VVbmlxdWU8QXVkaW9TZXNz
aW9uUHJpdmF0ZT4oaXNNdXRlZCgpKSkKLXsKLX0KLQotQXVkaW9TZXNzaW9uOjp+QXVkaW9TZXNz
aW9uKCkgPSBkZWZhdWx0OwotCi1BdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBBdWRpb1Nlc3Np
b246OmNhdGVnb3J5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5jYXRlZ29yeTsK
LX0KLQotdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENhdGVnb3J5VHlwZSBjYXRlZ29y
eSwgUm91dGVTaGFyaW5nUG9saWN5KQotewotICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRl
Z29yeTsKLX0KLQotQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRl
Z29yeU92ZXJyaWRlKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBOb25lOwotfQotCi12b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZShDYXRl
Z29yeVR5cGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotZmxvYXQgQXVkaW9TZXNz
aW9uOjpzYW1wbGVSYXRlKCkgY29uc3QKLXsKLSAgICBGbG9hdDY0IG5vbWluYWxTYW1wbGVSYXRl
OwotICAgIFVJbnQzMiBub21pbmFsU2FtcGxlUmF0ZVNpemUgPSBzaXplb2YoRmxvYXQ2NCk7Ci0K
LSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBub21pbmFsU2FtcGxlUmF0ZUFkZHJlc3Mg
PSB7Ci0gICAgICAgIGtBdWRpb0RldmljZVByb3BlcnR5Tm9taW5hbFNhbXBsZVJhdGUsCi0gICAg
ICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCi0gICAgICAgIGtBdWRpb09iamVj
dFByb3BlcnR5RWxlbWVudE1hc3RlciB9OwotICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT2Jq
ZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZpY2UoKSwgJm5vbWluYWxTYW1wbGVSYXRlQWRk
cmVzcywgMCwgMCwgJm5vbWluYWxTYW1wbGVSYXRlU2l6ZSwgKHZvaWQqKSZub21pbmFsU2FtcGxl
UmF0ZSk7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4g
bmFycm93UHJlY2lzaW9uVG9GbG9hdChub21pbmFsU2FtcGxlUmF0ZSk7Ci19Ci0KLXNpemVfdCBB
dWRpb1Nlc3Npb246OmJ1ZmZlclNpemUoKSBjb25zdAotewotICAgIFVJbnQzMiBidWZmZXJTaXpl
OwotICAgIFVJbnQzMiBidWZmZXJTaXplU2l6ZSA9IHNpemVvZihidWZmZXJTaXplKTsKLQotICAg
IEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIGJ1ZmZlclNpemVBZGRyZXNzID0gewotICAgICAg
ICBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZSwKLSAgICAgICAga0F1ZGlvT2Jq
ZWN0UHJvcGVydHlTY29wZUdsb2JhbCwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVt
ZW50TWFzdGVyIH07Ci0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0
eURhdGEoZGVmYXVsdERldmljZSgpLCAmYnVmZmVyU2l6ZUFkZHJlc3MsIDAsIDAsICZidWZmZXJT
aXplU2l6ZSwgJmJ1ZmZlclNpemUpOwotCi0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgcmV0dXJuIGJ1ZmZlclNpemU7Ci19Ci0KLXNpemVfdCBBdWRpb1Nlc3Npb246Om51
bWJlck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIDA7Ci19Ci0KLWJvb2wgQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVy
bmFsKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotUm91dGVTaGFyaW5nUG9saWN5IEF1ZGlvU2Vzc2lvbjo6cm91dGVTaGFyaW5nUG9saWN5KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0OwotfQotCi1T
dHJpbmcgQXVkaW9TZXNzaW9uOjpyb3V0aW5nQ29udGV4dFVJRCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXNpemVfdCBBdWRpb1Nlc3Npb246OnByZWZlcnJlZEJ1
ZmZlclNpemUoKSBjb25zdAotewotICAgIFVJbnQzMiBidWZmZXJTaXplOwotICAgIFVJbnQzMiBi
dWZmZXJTaXplU2l6ZSA9IHNpemVvZihidWZmZXJTaXplKTsKLQotICAgIEF1ZGlvT2JqZWN0UHJv
cGVydHlBZGRyZXNzIHByZWZlcnJlZEJ1ZmZlclNpemVBZGRyZXNzID0gewotICAgICAgICBrQXVk
aW9EZXZpY2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZSwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJv
cGVydHlTY29wZUdsb2JhbCwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFz
dGVyIH07Ci0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9PYmplY3RHZXRQcm9wZXJ0eURhdGEo
ZGVmYXVsdERldmljZSgpLCAmcHJlZmVycmVkQnVmZmVyU2l6ZUFkZHJlc3MsIDAsIDAsICZidWZm
ZXJTaXplU2l6ZSwgJmJ1ZmZlclNpemUpOwotCi0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgcmV0dXJuIGJ1ZmZlclNpemU7Ci19Ci0KLXZvaWQgQXVkaW9TZXNzaW9uOjpz
ZXRQcmVmZXJyZWRCdWZmZXJTaXplKHNpemVfdCBidWZmZXJTaXplKQotewotICAgIEF1ZGlvVmFs
dWVSYW5nZSBidWZmZXJTaXplUmFuZ2UgPSB7MCwgMH07Ci0gICAgVUludDMyIGJ1ZmZlclNpemVS
YW5nZVNpemUgPSBzaXplb2YoQXVkaW9WYWx1ZVJhbmdlKTsKLSAgICBBdWRpb09iamVjdFByb3Bl
cnR5QWRkcmVzcyBidWZmZXJTaXplUmFuZ2VBZGRyZXNzID0gewotICAgICAgICBrQXVkaW9EZXZp
Y2VQcm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZVJhbmdlLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9w
ZXJ0eVNjb3BlR2xvYmFsLAotICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0
ZXIKLSAgICB9OwotICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlE
YXRhKGRlZmF1bHREZXZpY2UoKSwgJmJ1ZmZlclNpemVSYW5nZUFkZHJlc3MsIDAsIDAsICZidWZm
ZXJTaXplUmFuZ2VTaXplLCAmYnVmZmVyU2l6ZVJhbmdlKTsKLSAgICBpZiAocmVzdWx0KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBzaXplX3QgbWluQnVmZmVyU2l6ZSA9IHN0YXRpY19jYXN0PHNp
emVfdD4oYnVmZmVyU2l6ZVJhbmdlLm1NaW5pbXVtKTsKLSAgICBzaXplX3QgbWF4QnVmZmVyU2l6
ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oYnVmZmVyU2l6ZVJhbmdlLm1NYXhpbXVtKTsKLSAgICBV
SW50MzIgYnVmZmVyU2l6ZU91dCA9IHN0ZDo6bWluKG1heEJ1ZmZlclNpemUsIHN0ZDo6bWF4KG1p
bkJ1ZmZlclNpemUsIGJ1ZmZlclNpemUpKTsKLQotICAgIEF1ZGlvT2JqZWN0UHJvcGVydHlBZGRy
ZXNzIHByZWZlcnJlZEJ1ZmZlclNpemVBZGRyZXNzID0gewotICAgICAgICBrQXVkaW9EZXZpY2VQ
cm9wZXJ0eUJ1ZmZlckZyYW1lU2l6ZSwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29w
ZUdsb2JhbCwKLSAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Ci0K
LSAgICByZXN1bHQgPSBBdWRpb09iamVjdFNldFByb3BlcnR5RGF0YShkZWZhdWx0RGV2aWNlKCks
ICZwcmVmZXJyZWRCdWZmZXJTaXplQWRkcmVzcywgMCwgMCwgc2l6ZW9mKGJ1ZmZlclNpemVPdXQp
LCAodm9pZCopJmJ1ZmZlclNpemVPdXQpOwotCi0jaWYgTE9HX0RJU0FCTEVECi0gICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7Ci0jZWxzZQotICAgIGlmIChyZXN1bHQpCi0gICAgICAgIExPRyhNZWRp
YSwgIkF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSglenUpIC0gZmFpbGVkIHdp
dGggZXJyb3IgJWQiLCBidWZmZXJTaXplLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCkpOwotICAg
IGVsc2UKLSAgICAgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZm
ZXJTaXplKCV6dSkiLCBidWZmZXJTaXplKTsKLSNlbmRpZgotfQotCi1ib29sIEF1ZGlvU2Vzc2lv
bjo6aXNNdXRlZCgpIGNvbnN0Ci17Ci0gICAgVUludDMyIG11dGUgPSAwOwotICAgIFVJbnQzMiBt
dXRlU2l6ZSA9IHNpemVvZihtdXRlKTsKLSAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBt
dXRlQWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNlUHJvcGVydHlNdXRlLCBrQXVkaW9EZXZpY2VQcm9w
ZXJ0eVNjb3BlT3V0cHV0LCBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIgfTsKLSAg
ICBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZWZhdWx0RGV2aWNlKCksICZtdXRlQWRkcmVz
cywgMCwgbnVsbHB0ciwgJm11dGVTaXplLCAmbXV0ZSk7Ci0gICAgCi0gICAgc3dpdGNoIChtdXRl
KSB7Ci0gICAgY2FzZSAwOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSAxOgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotc3RhdGljIE9TU3RhdHVz
IGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZShBdWRpb09iamVjdElELCBVSW50MzIsIGNvbnN0IEF1
ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzKiwgdm9pZCogaW5DbGllbnREYXRhKQotewotICAgIGNh
bGxPbk1haW5UaHJlYWQoW2luQ2xpZW50RGF0YV0gewotICAgICAgICByZWludGVycHJldF9jYXN0
PEF1ZGlvU2Vzc2lvbio+KGluQ2xpZW50RGF0YSktPmhhbmRsZU11dGVkU3RhdGVDaGFuZ2UoKTsK
LSAgICB9KTsKLSAgICByZXR1cm4gbm9FcnI7Ci19Ci0KLXZvaWQgQXVkaW9TZXNzaW9uOjpoYW5k
bGVNdXRlZFN0YXRlQ2hhbmdlKCkKLXsKLSAgICBpZiAoIW1fcHJpdmF0ZSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgYm9vbCBpc0N1cnJlbnRseU11dGVkID0gaXNNdXRlZCgpOwotICAgIGlmICht
X3ByaXZhdGUtPmxhc3RNdXRlZFN0YXRlID09IGlzQ3VycmVudGx5TXV0ZWQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGZvciAoYXV0byogb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAg
b2JzZXJ2ZXItPmhhcmR3YXJlTXV0ZWRTdGF0ZURpZENoYW5nZSh0aGlzKTsKLQotICAgIG1fcHJp
dmF0ZS0+bGFzdE11dGVkU3RhdGUgPSBpc0N1cnJlbnRseU11dGVkOwotfQotCi12b2lkIEF1ZGlv
U2Vzc2lvbjo6YWRkTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2JzZXJ2
ZXIpCi17Ci0gICAgbV9vYnNlcnZlcnMuYWRkKG9ic2VydmVyKTsKLQotICAgIGlmIChtX29ic2Vy
dmVycy5zaXplKCkgPiAxKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBdWRpb09iamVjdFByb3Bl
cnR5QWRkcmVzcyBtdXRlQWRkcmVzcyA9IHsga0F1ZGlvRGV2aWNlUHJvcGVydHlNdXRlLCBrQXVk
aW9EZXZpY2VQcm9wZXJ0eVNjb3BlT3V0cHV0LCBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRN
YXN0ZXIgfTsKLSAgICBBdWRpb09iamVjdEFkZFByb3BlcnR5TGlzdGVuZXIoZGVmYXVsdERldmlj
ZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0eUNoYW5nZSwgdGhpcyk7Ci19Ci0K
LXZvaWQgQXVkaW9TZXNzaW9uOjpyZW1vdmVNdXRlZFN0YXRlT2JzZXJ2ZXIoTXV0ZWRTdGF0ZU9i
c2VydmVyKiBvYnNlcnZlcikKLXsKLSAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgpID09IDEpIHsK
LSAgICAgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgbXV0ZUFkZHJlc3MgPSB7IGtBdWRp
b0RldmljZVByb3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91dHB1dCwga0F1
ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Ci0gICAgICAgIEF1ZGlvT2JqZWN0UmVt
b3ZlUHJvcGVydHlMaXN0ZW5lcihkZWZhdWx0RGV2aWNlKCksICZtdXRlQWRkcmVzcywgaGFuZGxl
TXV0ZVByb3BlcnR5Q2hhbmdlLCB0aGlzKTsKLSAgICB9Ci0KLSAgICBtX29ic2VydmVycy5yZW1v
dmUob2JzZXJ2ZXIpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikgJiYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb1Nlc3Npb25NYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ2MjMwZDJjNWQ0NGI5NDRmZGNlNjFk
NmVlMDM4MGYzMmRmZDJkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KQEAgLTAsMCArMSwzMDkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uLmgi
CisKKyNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJG
bG9hdENvbnZlcnNpb24uaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5vdEltcGxl
bWVudGVkLmgiCisjaW1wb3J0IDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgorI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaW1w
b3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitzdGF0aWMgQXVkaW9EZXZpY2VJRCBkZWZhdWx0RGV2aWNlKCkKK3sKKyAgICBBdWRp
b0RldmljZUlEIGRldmljZUlEID0ga0F1ZGlvRGV2aWNlVW5rbm93bjsKKyAgICBVSW50MzIgaW5m
b1NpemUgPSBzaXplb2YoZGV2aWNlSUQpOworCisgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJl
c3MgZGVmYXVsdE91dHB1dERldmljZUFkZHJlc3MgPSB7CisgICAgICAgIGtBdWRpb0hhcmR3YXJl
UHJvcGVydHlEZWZhdWx0T3V0cHV0RGV2aWNlLAorICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0
eVNjb3BlR2xvYmFsLAorICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVsZW1lbnRNYXN0ZXIg
fTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShrQXVk
aW9PYmplY3RTeXN0ZW1PYmplY3QsICZkZWZhdWx0T3V0cHV0RGV2aWNlQWRkcmVzcywgMCwgMCwg
JmluZm9TaXplLCAodm9pZCopJmRldmljZUlEKTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBy
ZXR1cm4gMDsgLy8gZXJyb3IKKyAgICByZXR1cm4gZGV2aWNlSUQ7Cit9CisKK2NsYXNzIEF1ZGlv
U2Vzc2lvblByaXZhdGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIGV4cGxpY2l0IEF1ZGlvU2Vzc2lvblByaXZhdGUoYm9vbCBtdXRlZFN0YXRlKQorICAgICAg
ICA6IGxhc3RNdXRlZFN0YXRlKG11dGVkU3RhdGUpIHsgfQorICAgIGJvb2wgbGFzdE11dGVkU3Rh
dGU7CisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkgeyBBdWRpb1Nlc3Np
b246Ok5vbmUgfTsKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAgICBib29sIHNl
dHVwQXJiaXRyYXRpb25PbmdvaW5nIHsgZmFsc2UgfTsKKyNlbmRpZgorICAgIEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIG1fY2F0ZWdvcnlPdmVycmlkZTsKK307CisKK0F1ZGlvU2Vzc2lvbjo6
QXVkaW9TZXNzaW9uKCkKKyAgICA6IG1fcHJpdmF0ZShtYWtlVW5pcXVlPEF1ZGlvU2Vzc2lvblBy
aXZhdGU+KGlzTXV0ZWQoKSkpCit7Cit9CisKK0F1ZGlvU2Vzc2lvbjo6fkF1ZGlvU2Vzc2lvbigp
ID0gZGVmYXVsdDsKKworQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpj
YXRlZ29yeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y2F0ZWdvcnk7Cit9CisK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJv
dXRlU2hhcmluZ1BvbGljeSkKK3sKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAg
ICBpZiAoY2F0ZWdvcnkgPT0gQW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9BbWJpZW50
U291bmQgfHwgY2F0ZWdvcnkgPT0gQXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgICAgIG1fcHJpdmF0
ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChjYXRlZ29yeSA9PSBtX3ByaXZhdGUtPmNhdGVnb3J5KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGEgYmVn
aW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeSBpcyBzdGlsbCBvbmdvaW5nIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSAhPSBOb25lKQorICAg
ICAgICBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudC0+bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24o
KTsKKworICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBpZiAobV9wcml2
YXRlLT5jYXRlZ29yeSA9PSBOb25lKQorICAgICAgICByZXR1cm47CisKKyAgICB1c2luZyBSb3V0
aW5nQXJiaXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVu
dDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdl
ZCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hh
bmdlZDsKKworICAgIG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50LT5iZWdpblJvdXRpbmdBcmJp
dHJhdGlvbldpdGhDYXRlZ29yeShtX3ByaXZhdGUtPmNhdGVnb3J5LCBbdGhpc10gKFJvdXRpbmdB
cmJpdHJhdGlvbkVycm9yIGVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNo
YW5nZWQpIHsKKyAgICAgICAgbV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IGZh
bHNlOworICAgICAgICBpZiAoZXJyb3IgIT0gUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUp
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpz
ZXRDYXRlZ29yeSgpIC0gYmVnaW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeTolcyBmYWlsZWQgd2l0
aCBlcnJvciAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fcHJpdmF0ZS0+Y2F0ZWdv
cnkpLmFzY2lpKCkuZGF0YSgpLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcikuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gRklYTUU6IERvIHdlIG5lZWQgdG8gcmVzZXQgc2FtcGxlIHJhdGUgYW5kIGJ1ZmZlciBzaXpl
IGZvciB0aGUgbmV3IGRlZmF1bHQgZGV2aWNlPworICAgICAgICBpZiAoZGVmYXVsdFJvdXRlQ2hh
bmdlZCA9PSBEZWZhdWx0Um91dGVDaGFuZ2VkOjpZZXMpCisgICAgICAgICAgICBMT0coTWVkaWEs
ICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBkZWZhdWx0Um91dGVDaGFuZ2VkISIpOwor
ICAgIH0pOworI2Vsc2UKKyAgICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisjZW5k
aWYKK30KKworQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29y
eU92ZXJyaWRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tX2NhdGVnb3J5T3Zl
cnJpZGU7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVn
b3J5VHlwZSBjYXRlZ29yeSkKK3sKKyAgICBpZiAobV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJp
ZGUgPT0gY2F0ZWdvcnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJpdmF0ZS0+bV9jYXRl
Z29yeU92ZXJyaWRlID0gY2F0ZWdvcnk7CisgICAgc2V0Q2F0ZWdvcnkoY2F0ZWdvcnksIFJvdXRl
U2hhcmluZ1BvbGljeTo6RGVmYXVsdCk7Cit9CisKK2Zsb2F0IEF1ZGlvU2Vzc2lvbjo6c2FtcGxl
UmF0ZSgpIGNvbnN0Cit7CisgICAgRmxvYXQ2NCBub21pbmFsU2FtcGxlUmF0ZTsKKyAgICBVSW50
MzIgbm9taW5hbFNhbXBsZVJhdGVTaXplID0gc2l6ZW9mKEZsb2F0NjQpOworCisgICAgQXVkaW9P
YmplY3RQcm9wZXJ0eUFkZHJlc3Mgbm9taW5hbFNhbXBsZVJhdGVBZGRyZXNzID0geworICAgICAg
ICBrQXVkaW9EZXZpY2VQcm9wZXJ0eU5vbWluYWxTYW1wbGVSYXRlLAorICAgICAgICBrQXVkaW9P
YmplY3RQcm9wZXJ0eVNjb3BlR2xvYmFsLAorICAgICAgICBrQXVkaW9PYmplY3RQcm9wZXJ0eUVs
ZW1lbnRNYXN0ZXIgfTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb09iamVjdEdldFByb3Bl
cnR5RGF0YShkZWZhdWx0RGV2aWNlKCksICZub21pbmFsU2FtcGxlUmF0ZUFkZHJlc3MsIDAsIDAs
ICZub21pbmFsU2FtcGxlUmF0ZVNpemUsICh2b2lkKikmbm9taW5hbFNhbXBsZVJhdGUpOworICAg
IGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG5hcnJvd1ByZWNp
c2lvblRvRmxvYXQobm9taW5hbFNhbXBsZVJhdGUpOworfQorCitzaXplX3QgQXVkaW9TZXNzaW9u
OjpidWZmZXJTaXplKCkgY29uc3QKK3sKKyAgICBVSW50MzIgYnVmZmVyU2l6ZTsKKyAgICBVSW50
MzIgYnVmZmVyU2l6ZVNpemUgPSBzaXplb2YoYnVmZmVyU2l6ZSk7CisKKyAgICBBdWRpb09iamVj
dFByb3BlcnR5QWRkcmVzcyBidWZmZXJTaXplQWRkcmVzcyA9IHsKKyAgICAgICAga0F1ZGlvRGV2
aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNpemUsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5
U2NvcGVHbG9iYWwsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9
OworICAgIE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1
bHREZXZpY2UoKSwgJmJ1ZmZlclNpemVBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVNpemUsICZi
dWZmZXJTaXplKTsKKworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBidWZmZXJTaXplOworfQorCitzaXplX3QgQXVkaW9TZXNzaW9uOjpudW1iZXJPZk91dHB1
dENoYW5uZWxzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitib29sIEF1ZGlvU2Vzc2lvbjo6dHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JvdXRlU2hh
cmluZ1BvbGljeSBBdWRpb1Nlc3Npb246OnJvdXRlU2hhcmluZ1BvbGljeSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFJvdXRlU2hhcmluZ1BvbGljeTo6RGVmYXVsdDsKK30KKworU3RyaW5nIEF1ZGlv
U2Vzc2lvbjo6cm91dGluZ0NvbnRleHRVSUQoKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eVN0
cmluZygpOworfQorCitzaXplX3QgQXVkaW9TZXNzaW9uOjpwcmVmZXJyZWRCdWZmZXJTaXplKCkg
Y29uc3QKK3sKKyAgICBVSW50MzIgYnVmZmVyU2l6ZTsKKyAgICBVSW50MzIgYnVmZmVyU2l6ZVNp
emUgPSBzaXplb2YoYnVmZmVyU2l6ZSk7CisKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVz
cyBwcmVmZXJyZWRCdWZmZXJTaXplQWRkcmVzcyA9IHsKKyAgICAgICAga0F1ZGlvRGV2aWNlUHJv
cGVydHlCdWZmZXJGcmFtZVNpemUsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVH
bG9iYWwsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OworICAg
IE9TU3RhdHVzIHJlc3VsdCA9IEF1ZGlvT2JqZWN0R2V0UHJvcGVydHlEYXRhKGRlZmF1bHREZXZp
Y2UoKSwgJnByZWZlcnJlZEJ1ZmZlclNpemVBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVNpemUs
ICZidWZmZXJTaXplKTsKKworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBidWZmZXJTaXplOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVk
QnVmZmVyU2l6ZShzaXplX3QgYnVmZmVyU2l6ZSkKK3sKKyAgICBBdWRpb1ZhbHVlUmFuZ2UgYnVm
ZmVyU2l6ZVJhbmdlID0gezAsIDB9OworICAgIFVJbnQzMiBidWZmZXJTaXplUmFuZ2VTaXplID0g
c2l6ZW9mKEF1ZGlvVmFsdWVSYW5nZSk7CisgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3Mg
YnVmZmVyU2l6ZVJhbmdlQWRkcmVzcyA9IHsKKyAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlC
dWZmZXJGcmFtZVNpemVSYW5nZSwKKyAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlTY29wZUds
b2JhbCwKKyAgICAgICAga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyCisgICAgfTsK
KyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb09iamVjdEdldFByb3BlcnR5RGF0YShkZWZhdWx0
RGV2aWNlKCksICZidWZmZXJTaXplUmFuZ2VBZGRyZXNzLCAwLCAwLCAmYnVmZmVyU2l6ZVJhbmdl
U2l6ZSwgJmJ1ZmZlclNpemVSYW5nZSk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgc2l6ZV90IG1pbkJ1ZmZlclNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KGJ1ZmZl
clNpemVSYW5nZS5tTWluaW11bSk7CisgICAgc2l6ZV90IG1heEJ1ZmZlclNpemUgPSBzdGF0aWNf
Y2FzdDxzaXplX3Q+KGJ1ZmZlclNpemVSYW5nZS5tTWF4aW11bSk7CisgICAgVUludDMyIGJ1ZmZl
clNpemVPdXQgPSBzdGQ6Om1pbihtYXhCdWZmZXJTaXplLCBzdGQ6Om1heChtaW5CdWZmZXJTaXpl
LCBidWZmZXJTaXplKSk7CisKKyAgICBBdWRpb09iamVjdFByb3BlcnR5QWRkcmVzcyBwcmVmZXJy
ZWRCdWZmZXJTaXplQWRkcmVzcyA9IHsKKyAgICAgICAga0F1ZGlvRGV2aWNlUHJvcGVydHlCdWZm
ZXJGcmFtZVNpemUsCisgICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5U2NvcGVHbG9iYWwsCisg
ICAgICAgIGtBdWRpb09iamVjdFByb3BlcnR5RWxlbWVudE1hc3RlciB9OworCisgICAgcmVzdWx0
ID0gQXVkaW9PYmplY3RTZXRQcm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmcHJlZmVycmVk
QnVmZmVyU2l6ZUFkZHJlc3MsIDAsIDAsIHNpemVvZihidWZmZXJTaXplT3V0KSwgKHZvaWQqKSZi
dWZmZXJTaXplT3V0KTsKKworI2lmIExPR19ESVNBQkxFRAorICAgIFVOVVNFRF9QQVJBTShyZXN1
bHQpOworI2Vsc2UKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nl
c3Npb246OnNldFByZWZlcnJlZEJ1ZmZlclNpemUoJXp1KSAtIGZhaWxlZCB3aXRoIGVycm9yICVk
IiwgYnVmZmVyU2l6ZSwgc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQpKTsKKyAgICBlbHNlCisgICAg
ICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0UHJlZmVycmVkQnVmZmVyU2l6ZSglenUp
IiwgYnVmZmVyU2l6ZSk7CisjZW5kaWYKK30KKworYm9vbCBBdWRpb1Nlc3Npb246OmlzTXV0ZWQo
KSBjb25zdAoreworICAgIFVJbnQzMiBtdXRlID0gMDsKKyAgICBVSW50MzIgbXV0ZVNpemUgPSBz
aXplb2YobXV0ZSk7CisgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3MgbXV0ZUFkZHJlc3Mg
PSB7IGtBdWRpb0RldmljZVByb3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJvcGVydHlTY29wZU91
dHB1dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07CisgICAgQXVkaW9PYmpl
Y3RHZXRQcm9wZXJ0eURhdGEoZGVmYXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIDAsIG51bGxw
dHIsICZtdXRlU2l6ZSwgJm11dGUpOworICAgIAorICAgIHN3aXRjaCAobXV0ZSkgeworICAgIGNh
c2UgMDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgMToKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBPU1N0YXR1cyBoYW5kbGVNdXRl
UHJvcGVydHlDaGFuZ2UoQXVkaW9PYmplY3RJRCwgVUludDMyLCBjb25zdCBBdWRpb09iamVjdFBy
b3BlcnR5QWRkcmVzcyosIHZvaWQqIGluQ2xpZW50RGF0YSkKK3sKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFtpbkNsaWVudERhdGFdIHsKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxBdWRpb1Nlc3Np
b24qPihpbkNsaWVudERhdGEpLT5oYW5kbGVNdXRlZFN0YXRlQ2hhbmdlKCk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIG5vRXJyOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvbjo6aGFuZGxlTXV0ZWRTdGF0
ZUNoYW5nZSgpCit7CisgICAgaWYgKCFtX3ByaXZhdGUpCisgICAgICAgIHJldHVybjsKKworICAg
IGJvb2wgaXNDdXJyZW50bHlNdXRlZCA9IGlzTXV0ZWQoKTsKKyAgICBpZiAobV9wcml2YXRlLT5s
YXN0TXV0ZWRTdGF0ZSA9PSBpc0N1cnJlbnRseU11dGVkKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKGF1dG8qIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5o
YXJkd2FyZU11dGVkU3RhdGVEaWRDaGFuZ2UodGhpcyk7CisKKyAgICBtX3ByaXZhdGUtPmxhc3RN
dXRlZFN0YXRlID0gaXNDdXJyZW50bHlNdXRlZDsKK30KKwordm9pZCBBdWRpb1Nlc3Npb246OmFk
ZE11dGVkU3RhdGVPYnNlcnZlcihNdXRlZFN0YXRlT2JzZXJ2ZXIqIG9ic2VydmVyKQoreworICAg
IG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7CisKKyAgICBpZiAobV9vYnNlcnZlcnMuc2l6ZSgp
ID4gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQXVkaW9PYmplY3RQcm9wZXJ0eUFkZHJlc3Mg
bXV0ZUFkZHJlc3MgPSB7IGtBdWRpb0RldmljZVByb3BlcnR5TXV0ZSwga0F1ZGlvRGV2aWNlUHJv
cGVydHlTY29wZU91dHB1dCwga0F1ZGlvT2JqZWN0UHJvcGVydHlFbGVtZW50TWFzdGVyIH07Cisg
ICAgQXVkaW9PYmplY3RBZGRQcm9wZXJ0eUxpc3RlbmVyKGRlZmF1bHREZXZpY2UoKSwgJm11dGVB
ZGRyZXNzLCBoYW5kbGVNdXRlUHJvcGVydHlDaGFuZ2UsIHRoaXMpOworfQorCit2b2lkIEF1ZGlv
U2Vzc2lvbjo6cmVtb3ZlTXV0ZWRTdGF0ZU9ic2VydmVyKE11dGVkU3RhdGVPYnNlcnZlciogb2Jz
ZXJ2ZXIpCit7CisgICAgaWYgKG1fb2JzZXJ2ZXJzLnNpemUoKSA9PSAxKSB7CisgICAgICAgIEF1
ZGlvT2JqZWN0UHJvcGVydHlBZGRyZXNzIG11dGVBZGRyZXNzID0geyBrQXVkaW9EZXZpY2VQcm9w
ZXJ0eU11dGUsIGtBdWRpb0RldmljZVByb3BlcnR5U2NvcGVPdXRwdXQsIGtBdWRpb09iamVjdFBy
b3BlcnR5RWxlbWVudE1hc3RlciB9OworICAgICAgICBBdWRpb09iamVjdFJlbW92ZVByb3BlcnR5
TGlzdGVuZXIoZGVmYXVsdERldmljZSgpLCAmbXV0ZUFkZHJlc3MsIGhhbmRsZU11dGVQcm9wZXJ0
eUNoYW5nZSwgdGhpcyk7CisgICAgfQorCisgICAgbV9vYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVy
KTsKK30KKworfQorCisjZW5kaWYgLy8gVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmgKaW5k
ZXggMTRkZDRkOTE2NzIwYTMwNWNlM2U3MzVkMjVhMGJmODk2YmNkZDg1Yy4uMWQ3Y2Q5NmM4YjRi
NTM4ZGM1OWZmNWM0NzJlY2U4ZmIzMmFhMDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
SW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIFVTRShM
SUJXRUJSVEMpCiAKKyNpbmNsdWRlICJDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKICNpbmNs
dWRlICJSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJXZWJBdWRpb0J1
ZmZlckxpc3QuaCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KQEAgLTM3
LDggKzM4LDYgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlv
biAqQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKLQogY2xhc3MgUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EgZmluYWwgOiBwdWJsaWMgUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291
cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZUNvY29hPiBjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6QXVkaW9UcmFja0ludGVy
ZmFjZT4mJiwgU3RyaW5nJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDhmNDk2ODhhNjc5M2U4OTkyZmY4NTYxNGMwMTc4ZDE0OGIyMzQx
YTcuLjhiZGI1MWExNmQzOTg4OTczZDgzZGI3MTU3N2VmOTg1ZTNmZGViZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTkzLDYgKzkzLDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDUzNWE2N2Q3ZDE1
YWMyNjRmZWU2MTVhMmQ5YTY0NjAxMWMxNDBhMDYuLmQxMDA0NjMzOWZlNGMzNjk0OTI2YTg3OGEy
ZWIxY2QwOGIxNzA4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdApAQCAtMSw0ICsxLDcgQEAKICMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBi
eSB0aGUgZ2VuZXJhdGUteGNmaWxlbGlzdHMgc2NyaXB0LgorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL0F1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMmQ1OWQ4NmJjMmEwODRhMTVhYTk1
NDYxMTg3NjlhNDU0MmQzZTVhMS4uY2Q4ZmQxOWM1NjdkODNlYTQ4MjI2ZmFjM2Q0YTUzM2Y2M2Nj
MzQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTEwLDYgKzExMCw3IEBAIGVs
c2UKIGVuZGlmCiAKIE1FU1NBR0VfUkVDRUlWRVJTID0gXAorCUF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkgXAogICAgIEF1dGhlbnRpY2F0aW9uTWFuYWdlciBcCiAgICAgQXV4aWxp
YXJ5UHJvY2VzcyBcCiAgICAgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbiBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKaW5kZXggZWYyMzk1ZWM1OWY3NTU5YjE1MThi
Njk2ZWYzNjU4MjQ2YzkzZDI5Ni4uOTUwNzZmMjY0MTBkMGE2YmMyMmFhNzQyOTI5NTg4MmUxZWQx
NjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcg
KzEyNCw3IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1
cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVO
QUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6
c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggNDdjY2JlZDQ1MWMzZDhhZTVhYjBjNzNlNTFiODU5OWU1MDI5MTU4MC4uZDM4
NGNlNTY1Yzc4NGMxNGU5MWFmZDg5NjA3Yzc1MzQ4YWJiNzVjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00
NDEsNiArNDQxLDggQEAgVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKIAogVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVjdG9yQnJvd3NlckFn
ZW50LmNwcAogCitVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5jcHAKKwogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb24uY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAxN2I1YmRjN2NlZjM3NWJjNzI4ZWM0NDQ5YmY4MDcz
YTc2NTIzYTQ1Li42ZmY3Y2M3ZWVmMDZjYzljMDJkYmM3Y2QyMjRmY2E2YmEwNWIwMTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1l
ZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkKICAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRzdHJlYW0u
eHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRwbGF5YmFja3Nlc3Npb24ueHBjIiwK
ICAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRyZW1vdGVjb250cm9sc2Vzc2lv
bi54cGMiLCAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2RlY29kZXIiLAotICAgICAgICAiY29t
LmFwcGxlLmNvcmVtZWRpYS52aWRlb2VuY29kZXIiCisgICAgICAgICJjb20uYXBwbGUuY29yZW1l
ZGlhLnZpZGVvZW5jb2RlciIsICJjb20uYXBwbGUuQmx1ZXRvb3RoU2VydmljZXMiCiAjZW5kaWYK
ICAgICB9KTsKICAgICByZXR1cm4gc2VydmljZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljOTM2M2I1YjQwOWY5NGU4YzQ1ZTk3NWIyZWRlMzE1
NGFlMzdjOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElP
TikgJiYgIUhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb3h5KQorICAgIDogbV9wcm9j
ZXNzKHByb3h5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYg
Y2FsbGJhY2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjYWxsYmFjayhSb3V0aW5n
QXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7Cit9CisK
K3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJi
aXRyYXRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzllMTg2Yjc2NjBk
OGE1YjIzZmRlZDJjYjNkN2ZkMzA3MmE1ZWU1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xh
c3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eQorICAgIDogcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eT4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkoV2ViUHJvY2Vz
c1Byb3h5Jik7CisgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSgpOworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnko
KSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5OyB9CisKKyAgICBzdGF0aWMgdWludDY0X3QgZGVz
dGluYXRpb25JZCgpIHsgcmV0dXJuIDE7IH0KKworICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpS
b3V0aW5nQXJiaXRyYXRpb25FcnJvcjsKKyAgICB1c2luZyBEZWZhdWx0Um91dGVDaGFuZ2VkID0g
V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91
dGVDaGFuZ2VkOworICAgIHVzaW5nIEFyYml0cmF0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT47
CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisg
ICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVn
b3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxi
YWNrJiYpOworICAgIHZvaWQgbGVhdmVSb3V0aW5nQXJiaXRyYXRpb24oKTsKKworICAgIFdlYlBy
b2Nlc3NQcm94eSYgbV9wcm9jZXNzOworICAgIFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIG1fY2F0ZWdvcnkgeyBXZWJDb3JlOjpBdWRpb1Nlc3Npb246Ok5vbmUgfTsKK307CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2VmMjhmNzZiZTQzMWM5Nzc4ODI1ZDA5N2JmNmFkM2Rl
YzFmNWExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsx
LDI4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFC
TEUoUk9VVElOR19BUkJJVFJBVElPTikKK21lc3NhZ2VzIC0+IEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06
Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkgQXN5bmMKKyAgICBMZWF2ZVJvdXRpbmdB
cmJpdHJhdGlvbigpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIwZTViODgwMTkyODViNWM3
ZTZmNjdlZGMwMDUwY2MwYzRhNmM1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlD
b2NvYS5tbQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorCisjaWYg
RU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklU
RVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdl
cy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1w
b3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+
CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU2hhcmVkQXJiaXRyYXRvciB7CitwdWJsaWM6CisgICAg
c3RhdGljIFNoYXJlZEFyYml0cmF0b3ImIHNoYXJlZEluc3RhbmNlKCk7CisKKyAgICB1c2luZyBS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNs
aWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hh
bmdlZCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRl
Q2hhbmdlZDsKKyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNrID0gQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eTo6QXJiaXRyYXRpb25DYWxsYmFjazsKKworICAgIHZvaWQgYmVn
aW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHkmLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQgbGVhdmVSb3V0
aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkmKTsKKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZT4gbV9jdXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBXZWFr
SGFzaFNldDxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5PiBtX2FyYml0cmF0b3Jz
OworICAgIFZlY3RvcjxBcmJpdHJhdGlvbkNhbGxiYWNrPiBtX2VucXVldWVkQ2FsbGJhY2tzOwor
ICAgIGJvb2wgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZhbHNlIH07Cit9OworCitTaGFy
ZWRBcmJpdHJhdG9yJiBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFNoYXJlZEFyYml0cmF0b3I+IGluc3RhbmNlOworICAgIHJl
dHVybiBpbnN0YW5jZTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSYgcHJveHksIEFyYml0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQo
IW1fYXJiaXRyYXRvcnMuY29udGFpbnMocHJveHkpKTsKKyAgICBtX2FyYml0cmF0b3JzLmFkZChw
cm94eSk7CisKKyAgICBpZiAobV9zZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBt
X2VucXVldWVkQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3RlZENhdGVnb3J5ID0gcHJveHkuY2F0ZWdv
cnkoKTsKKworICAgIGlmIChtX2N1cnJlbnRDYXRlZ29yeSkgeworICAgICAgICBpZiAoKm1fY3Vy
cmVudENhdGVnb3J5ID49IHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgICAgICAgICBjYWxsYmFj
ayhSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgW1tQQUw6OmdldEFW
QXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVkUm91dGluZ0FyYml0ZXJdIGxlYXZlQXJi
aXRyYXRpb25dOworICAgIH0KKworICAgIG1fY3VycmVudENhdGVnb3J5ID0gcmVxdWVzdGVkQ2F0
ZWdvcnk7CisKKyAgICBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnkgYXJiaXRyYXRp
b25DYXRlZ29yeTsKKyAgICBzd2l0Y2ggKHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgY2FzZSBB
dWRpb1Nlc3Npb246Ok1lZGlhUGxheWJhY2s6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkg
PSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvOgorICAgICAgICBhcmJpdHJh
dGlvbkNhdGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJl
Y29yZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNv
cmQ6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0
aW9uQ2F0ZWdvcnlQbGF5QW5kUmVjb3JkVm9pY2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIG1fc2V0dXBB
cmJpdHJhdGlvbk9uZ29pbmcgPSB0cnVlOworICAgIG1fZW5xdWV1ZWRDYWxsYmFja3MuYXBwZW5k
KFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0
ZXJDbGFzcygpIHNoYXJlZFJvdXRpbmdBcmJpdGVyXSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVn
b3J5OmFyYml0cmF0aW9uQ2F0ZWdvcnkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKEJPT0wgZGVm
YXVsdERldmljZUNoYW5nZWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgZGVmYXVsdERldmljZUNoYW5nZWQsIGVycm9yID0gcmV0
YWluUHRyKGVycm9yKV0geworICAgICAgICAgICAgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9
IGZhbHNlOworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE1lZGlhLCAiU2hhcmVkQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRp
b25Gb3JBcmJpdHJhdG9yOiAlcyBmYWlsZWQgd2l0aCBlcnJvciAlczolcyIsIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKCptX2N1cnJlbnRDYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCksIFtbZXJy
b3IgZG9tYWluXSBVVEY4U3RyaW5nXSwgW1tlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRG
OFN0cmluZ10pOworCisgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byByZXNldCBz
YW1wbGUgcmF0ZSBhbmQgYnVmZmVyIHNpemUgZm9yIHRoZSBuZXcgZGVmYXVsdCBkZXZpY2U/Cisg
ICAgICAgICAgICBpZiAoZGVmYXVsdERldmljZUNoYW5nZWQpCisgICAgICAgICAgICAgICAgTE9H
KE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdERldmljZUNoYW5n
ZWQhIik7CisKKyAgICAgICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX2VucXVldWVkQ2Fs
bGJhY2tzKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gUm91dGluZ0FyYml0cmF0
aW9uRXJyb3I6OkZhaWxlZCA6IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lLCBkZWZhdWx0
RGV2aWNlQ2hhbmdlZCA/IERlZmF1bHRSb3V0ZUNoYW5nZWQ6OlllcyA6IERlZmF1bHRSb3V0ZUNo
YW5nZWQ6Ok5vKTsKKworICAgICAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOwor
ICAgICAgICB9KTsKKyAgICB9XTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpsZWF2ZVJv
dXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eSYgcHJveHkpCit7CisgICAgQVNTRVJUKG1fYXJiaXRyYXRvcnMuY29udGFpbnMocHJv
eHkpKTsKKyAgICBtX2FyYml0cmF0b3JzLnJlbW92ZShwcm94eSk7CisKKyAgICBpZiAoIW1fYXJi
aXRyYXRvcnMuY29tcHV0ZXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1
dG8mIGNhbGxiYWNrIDogbV9lbnF1ZXVlZENhbGxiYWNrcykKKyAgICAgICAgY2FsbGJhY2soUm91
dGluZ0FyYml0cmF0aW9uRXJyb3I6OkNhbmNlbGxlZCwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8p
OworCisgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOworICAgIG1fY3VycmVudENhdGVn
b3J5LnJlc2V0KCk7CisgICAgW1tQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCkg
c2hhcmVkUm91dGluZ0FyYml0ZXJdIGxlYXZlQXJiaXRyYXRpb25dOworfQorCitBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5KFdlYlByb2Nlc3NQcm94eSYgcHJveHkpCisgICAgOiBtX3Byb2Nlc3MocHJveHkpCit7Cisg
ICAgbV9wcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklk
KCksICp0aGlzKTsKK30KKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgZGVzdGluYXRpb25JZCgpKTsKK30KKwordm9p
ZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJh
dGlvbldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRl
Z29yeSwgQXJiaXRyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIG1fY2F0ZWdvcnkg
PSBjYXRlZ29yeTsKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpLmJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcywgV1RGTW92ZShjYWxsYmFjaykp
OworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91
dGluZ0FyYml0cmF0aW9uKCkKK3sKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5j
ZSgpLmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcyk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3MTM2
ZDUwMWI0MGFhNTgwOTc1OWM1N2U2Mjc1Y2RmNWY5Mjg2MzMuLjgyMzUwYjUwYzQ2ZWRhNjZkZDIy
N2ExMTZhODg5N2U1YThjMjNmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0yNzEsNiArMjcxLDcgQEAgc3RydWN0IEVsZW1lbnRDb250ZXh0OwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKK2NsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXI7
CiBjbGFzcyBHYW1lcGFkRGF0YTsKQEAgLTI3NzUsNiArMjc3NiwxMCBAQCBwcml2YXRlOgogICAg
IE5hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4gbV9oYXNOYXZpZ2F0ZWRBd2F5RnJvbUFw
cEJvdW5kRG9tYWluIHsgTmF2aWdhdGVkQXdheUZyb21BcHBCb3VuZERvbWFpbjo6Tm8gfTsKICAg
ICBib29sIG1faWdub3Jlc0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Vz
ZXJTY3JpcHRzTm90aWZpZWQgeyBmYWxzZSB9OworCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRS
QVRJT04pCisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk+IG1fcm91dGluZ0FyYml0cmF0b3I7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggMmFlZGRhZDAxNzRhOWU2OTk1NjVkMmZmMThlYWI1MGY2M2M4NjZlNC4uYzNhZmM1NmEwNzc3
NDk3OTQ2YTM3MDU0ZTQ5NjAxZjc1NzI1YjhjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04Nyw2ICs4NywxMCBAQAogI2luY2x1ZGUgIlNlY0l0
ZW1TaGltUHJveHkuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04p
CisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2VuZGlm
CisKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShh
c3NlcnRpb24sIGNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19VUkwodXJsKSBN
RVNTQUdFX0NIRUNLX0JBU0UoY2hlY2tVUkxSZWNlaXZlZEZyb21XZWJQcm9jZXNzKHVybCksIGNv
bm5lY3Rpb24oKSkKIApAQCAtMTg3LDYgKzE5MSw5IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoK
ICAgICAsIG1fbWF5SGF2ZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihmYWxzZSkK
ICAgICAsIG1fbnVtYmVyT2ZUaW1lc1N1ZGRlblRlcm1pbmF0aW9uV2FzRGlzYWJsZWQoMCkKICAg
ICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBwcm9jZXNzUG9vbC5zaG91bGRUYWtlVUlCYWNrZ3JvdW5k
QXNzZXJ0aW9uKCkpCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisgICAgLCBtX3Jv
dXRpbmdBcmJpdHJhdG9yKG1ha2VVbmlxdWVSZWY8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eT4oKnRoaXMpKQorI2VuZGlmCiAgICAgLCBtX2lzUmVzcG9uc2l2ZShOb09yTWF5YmU6
Ok1heWJlKQogICAgICwgbV92aXNpYmxlUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVu
dCkgeyB1cGRhdGVCYWNrZ3JvdW5kUmVzcG9uc2l2ZW5lc3NUaW1lcigpOyB9KQogICAgICwgbV93
ZWJzaXRlRGF0YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDIxMWJiNDU1ZTVlMTU3MmViMjAwYTIwYmRiZTUxNjkz
NTljODkzYjIuLjNhYjFiOGUyMzllZTY0MWRhMjQ4NDZkZmY0NmU3NTEzNmUzOWQ5Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBA
IGVudW0gY2xhc3MgVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3Q7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5OwogY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsK
IGNsYXNzIFBhZ2VDbGllbnQ7CkBAIC01MzYsNiArNTM3LDEwIEBAIHByaXZhdGU6CiAgICAgRm9y
ZWdyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5k
V2ViUHJvY2Vzc1Rva2VuIG1fYmFja2dyb3VuZFRva2VuOwogCisjaWYgRU5BQkxFKFJPVVRJTkdf
QVJCSVRSQVRJT04pCisgICAgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk+IG1fcm91dGluZ0FyYml0cmF0b3I7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VT
ZXJ2aWNlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGZhY2U5ZTI3MjMzYzRlZjdhZmU1NWY4YjU5ZTk2MTM2MjJlOTVi
MDEuLmU5YTMxZjUyMjhjNDY3ZTJlMzFkZTk2ZTc5MWYzM2Q0ZWQ2NWRlY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcwNyw2ICsx
NzA3LDggQEAKIAkJQ0QxOUQyRUEyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNl
Y2hldXJpc3RpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0QxOUQyRTgyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3Rp
Yy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
Mjg2NUVFMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVDMjI1NTU2
MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJQ0QyODY1
RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVEMjI1NTU2MjAw
MDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi87IH07CisJCUNENDU3MEQz
MjQ0MTEzQjUwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENDU3MEQwMjQ0MTAxNEEwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJQ0Q0NTcwRDQyNDQxMUQw
RjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDU3MENCMjQ0MEZCMkEwMEEz
RENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi87IH07CiAJCUNENDY2
MTgzMjQwMTBBNjcwMDQ3Q0EzNSAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q0NjYxODEyNDAxMDU2NDAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENDkxQjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmggKi87IH07CiAJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTcyMSw2ICsx
NzIzLDcgQEAKIAkJQ0Q3OEUxMTUxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzhFMTEz
MURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi87IH07CiAJCUNENzhFMTE3
MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExNjFEQjdEQzBBMDAxNEEyREUg
LyogQVBJRnVsbHNjcmVlbkNsaWVudC5oICovOyB9OwogCQlDRDc4RTExOTFEQjdFNUFEMDAxNEEy
REUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExODFEQjdFNUFEMDAxNEEyREUgLyogX1dLRnVsbHNj
cmVlbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJQ0Q3Q0YzNjEyNDQ0Q0NBNjAwM0JDNEQ1IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi87IH07CiAJCUNEQTA0MUY0MUFDRTIxMDUwMDRB
MTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2Fy
ZFNlcnZpY2VzU1BJLmggKi87IH07CiAJCUNEQTI5QTFCMUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFu
YWdlci5oICovOyB9OwogCQlDREEyOUEyMDFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNz
aW9uTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREEyOUExRTFDQkVCNUZCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdl
clByb3h5LmggKi87IH07CkBAIC01MDMyLDYgKzUwMzUsMTUgQEAKIAkJQ0QxOUQyRTkyMDQ2NDA2
RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwOyBwYXRoID0gaW9zL2Z1bGxz
Y3JlZW4vRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyODY1RUQyMjU1NTYyMDAwNjA2QUM3IC8qIFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcw
Q0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUNENDU3MENCMjQ0MEZCMkEwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3
MEQwMjQ0MTAxNEEwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDQ1NzBEMTI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDRDQ1NzBEMjI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENDU3MERCMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwREMy
NDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwREQyNDQ0Q0E1ODAwQTNE
Q0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTdGMjQwMTA0NTgwMDQ3Q0EzNSAvKiBSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9u
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ2NjE4MDI0MDEw
NTY0MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ2NjE4MTI0MDEwNTY0MDA0N0NBMzUg
LyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzA5LDYgKzgzMjEsOCBAQAogCQk3QzZFNzBG
ODE4QjJENDdFMDBGMjRFMkUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCUNENDU3MENCMjQ0MEZCMkEwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8sCisJCQkJQ0Q0NTcwQ0EyNDQwRkIyQTAwQTNEQ0VC
IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggKi8sCiAJCQkJQ0RBMjlBMTkxQ0JE
QkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLywKIAkJCQlDREEyOUEx
QzFDQkRCRjVCMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tZXNzYWdlcy5pbiAq
LywKIAkJCQlDREEyOUExODFDQkRCRjQxMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdl
ci5tbSAqLywKQEAgLTg4NDEsNiArODg1NSw3IEBACiAJCQkJMkRBOTQ0QTgxODg0RTlBQjAwRUQ4
NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUIxODExMkY1RkI0MDAzMzdCQUIgLyogTGF1bmNoZXIg
Ki8sCiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKKwkJCQlDRDQ1NzBE
ODI0NDRDQTE3MDBBM0RDRUIgLyogTWVkaWEgKi8sCiAJCQkJNTEwQ0M3RTcxNjEzOEU3MjAwRDAz
RUQzIC8qIE5ldHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5OTczNzAwODEwRDcxIC8qIE5vdGlm
aWNhdGlvbnMgKi8sCiAJCQkJMUFFRkNDMDUxMUQwMUYzNDAwODIxOUQzIC8qIFBsdWdpbnMgKi8s
CkBAIC05ODk2LDYgKzk5MTEsOSBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKIAkJCQkyRDdERUJFMjIxMjY5RTRCMDBCOUY3M0MgLyogdW5pZmllZC1zb3VyY2VzICovLAor
CQkJCUNENDU3MEQwMjQ0MTAxNEEwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlDRDQ1NzBEMTI0NDEwMTRCMDBB
M0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmggKi8s
CisJCQkJQ0Q0NTcwRDIyNDQxMDE0QjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQk1MTJGNThBMDEyQTg4M0FEMDA2
Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJ
CQk1MTJGNThBMTEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuaCAqLywKIAkJCQk5OTU1QTZGMDFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvbkJhY2tl
bmREaXNwYXRjaGVycy5jcHAgKi8sCkBAIC0xMDIxMiw2ICsxMDIzMCwyNSBAQAogCQkJbmFtZSA9
IGZvcm1zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQ0Q0NTcwRDgyNDQ0
Q0ExNzAwQTNEQ0VCIC8qIE1lZGlhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQlDRDQ1NzBEOTI0NDRDQTU4MDBBM0RDRUIgLyogY29jb2EgKi8sCisJCQkJ
Q0Q0NTcwREQyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkuY3BwICovLAorCQkJCUNENDU3MERCMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmggKi8sCisJCQkJQ0Q0NTcwREMyNDQ0Q0E1ODAwQTNE
Q0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4gKi8s
CisJCQkpOworCQkJcGF0aCA9IE1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJQ0Q0NTcwRDkyNDQ0Q0E1ODAwQTNEQ0VCIC8qIGNvY29hICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlDRDQ1NzBERTI0NDRDQTU4MDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tICovLAorCQkJKTsK
KwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUNE
NjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xMjU3OSw2ICsxMjYxNiw4IEBACiAJCQkJMkQ5MkE3N0Iy
MTJCNkE3MTAwRjQ5M0ZEIC8qIEFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJERUIxRDJFMjEyNzQ3MzYwMDkzMzkwNiAvKiBBcmd1bWVudENvZGVyc0NGLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEOTJBNzdDMjEyQjZBNzEwMEY0OTNGRCAvKiBBdHRhY2htZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUNENDU3MEQ0MjQ0MTFEMEYwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDRDQ1NzBEMzI0NDEx
M0I1MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThBMjEyQTg4M0FEMDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5MjQ5QUQ1MUYxRjFFNTYwMEI2MkZCQiAv
KiBBdXRvbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEy
NzY5LDYgKzEyODA4LDcgQEAKIAkJCQkyRDExQjc5QzIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmll
ZFNvdXJjZTM4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzlEMjEyNkEyODMwMDZGODg3
OCAvKiBVbmlmaWVkU291cmNlMzktbW0ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjc5RTIx
MjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTM5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUNEN0NGMzYxMjQ0NENDQTYwMDNCQzRENSAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDExQjdBMDIxMjZBMjgzMDA2Rjg4
NzggLyogVW5pZmllZFNvdXJjZTQwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzlGMjEy
NkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDAtbW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRDExQjdBMTIxMjZBMjgzMDA2Rjg4NzggLyogVW5pZmllZFNvdXJjZTQxLW1tLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGY2N2YyNzkyYjVlZGM3MTc3MThjOGMxNmFmNDc1ODQ0N2JiOTJlOTAuLjVhMTk5NGYy
MjEyMmU2NWM0ZThhM2RlNjVlMmU3OGM5MzcwOWZiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NjAsNyArNTYwLDcgQEAgV2ViUGFnZTo6
V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMocGFyYW1ldGVycy5zdG9yZSk7
CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygp
LnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKQogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMGI5ZGRkYjdhNjFkZjEy
NTlkYzhhYzM3NjViNzJhYWQxOTY5NDY3Yi4uZWIxZTJiNmU0NTQ5NDU4Y2IxNjhkM2ZhZDliYTA1
NTU2MWFjNTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
MTg0LDYgKzE4NCwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5oIgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyNpbmNsdWRlICJBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9M
T0dfU0VTU0lPTl9JRCAobV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDAp
CiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVB
U0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vz
c2lvbklEPSUiIFBSSXU2NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0df
U0VTU0lPTl9JRCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJd
IFdlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFf
QVJHU19fKQpAQCAtMjU5LDYgKzI2MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAg
ICBhZGRTdXBwbGVtZW50PFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgIGFkZFN1cHBsZW1lbnQ8QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3I+KCk7CisjZW5kaWYKKwogICAgIEdpZ2FjYWdlOjpmb3JiaWRE
aXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42OTYxZGE5M2FjNDI0ZThkODI0ZjhiMTNiOTljZDQ4NTc5Mjky
ODM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmgiCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2luY2x1
ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNpbmNsdWRlICJBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKFdlYlByb2Nl
c3MmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBBdWRpb1Nlc3Np
b246OnNoYXJlZFNlc3Npb24oKS5zZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQobWFrZVdlYWtQ
dHIodGhpcykpOworfQorCitBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yKCkgPSBkZWZhdWx0OworCitjb25zdCBjaGFyKiBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAi
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IiOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYgY2FsbGJhY2sp
Cit7CisgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QmVn
aW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoY2F0ZWdvcnkpLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6ZGVzdGluYXRpb25JZCgp
KTsKK30KKwordm9pZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5n
QWJyaXRyYXRpb24oKQoreworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpMZWF2
ZVJvdXRpbmdBcmJpdHJhdGlvbigpLCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpkZXN0aW5hdGlvbklkKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNTYwYWI1NjY0MWJiNWI3NDgwNzZlYmVhNTNmNGUwOTRkNzky
ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisKKyNp
bmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9T
ZXNzaW9uLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQKKyAgICAsIHB1Ymxp
YyBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQKKyAgICAsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcj4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yKFdlYlByb2Nlc3MmKTsKKyAgICB2aXJ0dWFsIH5BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcigpOworCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CisKKyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OworCitwcml2YXRlOgorICAgIC8vIEF1ZGlv
U2Vzc2lvblJvdXRpbmdBYnJpdHJhdG9yCisgICAgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bldpdGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25FcnJvciwgRGVmYXVsdFJvdXRlQ2hh
bmdlZCk+JiYpIGZpbmFsOworICAgIHZvaWQgbGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKSBmaW5h
bDsKKworICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcAppbmRleCAwMDRiODU0Y2NkZDU0MDRjYTY1N2NjZTgzY2MwZWFlMWJmNjQ0
YTI3Li4wYWMzODQxMWU5MmM4NDAzYzI4MDQ3ZjRmNDU5ZGU3YmM1NTU4ZTBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKQEAgLTUyMSw3ICs1MjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwog
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvciB7ICJBdWRpbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGlt
cGxlbWVudGVkIl9zIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpIHx8IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIC8v
IEZJWE1FOiBSZW1vdmUgZGlzYWJsaW5nIG9mIHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IG1h
bmFnZW1lZW50IG9uY2Ugd2UgbW92ZSBhbGwgbWVkaWEgcGxheWluZyB0byBHUFVQcm9jZXNzLgog
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIERlcHJlY2F0ZWRH
bG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4KaW5kZXggNWIzMDU0ZjQzOGJlM2E5OWE0MzExNjIzYmZmNWNiMzAwNWU1MWE5ZS4uMzU1
ZTNiYTExMTEyYmZmNWZhNzA3ZGU0M2RhNGU3MjM0M2YxN2YyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtOTA1LDYg
KzkwNSw3IEBACiAgICAgICAgICAgICAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIKICAgICAg
ICAgICAgICJjb20uYXBwbGUudGNjZCIKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm1hcGRi
IgorICAgICAgICAgICAgImNvbS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyIKIAogICAgICAgICAg
ICAgOzs7IEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hl
biB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYXVk
aW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50
LnhwYyIgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRzdHJlYW0ueHBjIgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhZDAxNzUwNTBlM2Vk
YTY4ZGRmN2ExYTY2YmEyY2QyYjI1OTczNDIuLjJmMDI3YzE5OTg0Y2ZiZDNkYWE2ZTJmMDdmYmJh
OTAzMzY4MzlhN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZA
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0
ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0x
MCAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dU
Rl0gRGF0YU11dGV4OiBBZGQgcnVuVW5sb2NrZWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW0KaW5kZXggOTkyOTQwZTRlMjg2Yzg4N2I4OTE4NjBjMDM0NzEwZjc3YzgxYzNl
MS4uYjMxNDdiYjBkMDlkMzYxMjlmNDU1Y2FmMTgwMzdjZDQ2NjJiNjQ3ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBAIC03NSw2ICs3NSwxMCBAQCBURVNUKEFWRm91
bmRhdGlvblNvZnRMaW5rLCBDbGFzc2VzKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWU3BlZWNo
U3ludGhlc2lzVm9pY2VDbGFzcygpLCBudWxscHRyKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFV
RElPX1JPVVRJTkdfQVJCSVRFUikKKyAgICBFWFBFQ1RfTkUoUEFMOjpnZXRBVkF1ZGlvUm91dGlu
Z0FyYml0ZXJDbGFzcygpLCBudWxscHRyKTsKKyNlbmRpZgorCiAjaWYgSEFWRShNRURJQV9QTEFZ
RVIpICYmICFQTEFURk9STShXQVRDSE9TKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWUm91dGVE
ZXRlY3RvckNsYXNzKCksIG51bGxwdHIpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396296</attachid>
            <date>2020-04-13 09:44:42 -0700</date>
            <delta_ts>2020-04-13 11:35:02 -0700</delta_ts>
            <desc>Patch (with rename enabled)</desc>
            <filename>0001-Adopt-interface-AVAudioRoutingArbiter-for-Mac.patch</filename>
            <type>text/plain</type>
            <size>86311</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBhYjFkNGVhZGZjNjJiMzE0YTQxOTQ0NTI1YWM0NzU0Nzg2MTVjMTJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTAgQXByIDIwMjAgMTY6MzQ6NTAgLTA3MDAKU3ViamVjdDogQWRvcHQgaW50ZXJmYWNl
IEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjIFNvdXJjZS9XZWJDb3JlOgoKTmVlZCB0aGUg
YnVnIFVSTCAoT09QUyEpLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZG9wdCBpbnRl
cmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NwpTb3VyY2UvLi4vVG9vbHM6CgpQYXRjaCBieSBQZW5n
IExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkFkZCB0ZXN0IGZvciBzb2Z0bGluayBvZiBBVkF1ZGlvUm91dGluZ0FyYml0
ZXIuCgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW06CihUZXN0V2ViS2l0QVBJOjpURVNUKToKClNvdXJjZS9XZWJDb3JlOgoKUGF0
Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNvdXJjZXNDb2NvYS50eHQ6CiogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25J
T1MubW06CihXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKFdlYkNvcmU6OmNh
dGVnb3J5TmFtZSk6IERlbGV0ZWQuCiogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1h
Yy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b1Nlc3Npb25NYWMuY3BwLgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKCkZpeCB1bmlmaWVkIGJ1aWxkIGZh
aWx1cmVzLgoqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2VDb2NvYS5oOgoKU291cmNlL1dlYkNvcmUvUEFMOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBl
bmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpBZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KCiogcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CiogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
Lm1tOgoKU291cmNlL1dlYktpdDoKCjxyZGFyOi8vcHJvYmxlbS81OTExMzk5ND4KClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIs
IEF1ZGlvU2Vzc2lvblJvdXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZwph
cmJpdHJhdGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNl
IHRoZSBVSVByb2Nlc3MgY2FuIHJlcHJlc2VudAptdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3Nl
cywgaXQgbXVzdCB0cmFjayBhbGwgb3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xv
YmFsbHkuCgoqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3MuY3BwOgooV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vz
cyk6CiogVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmNh
dGVnb3J5IGNvbnN0KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6ZGVzdGluYXRpb25JZCk6CiogVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1tOiBBZGRlZC4KKFdlYktpdDo6U2hhcmVk
QXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpi
ZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpTaGFyZWRBcmJp
dHJhdG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6fkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6Omxl
YXZlUm91dGluZ0FyYml0cmF0aW9uKToKKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbToKKFdlYktpdDo6bWVkaWFSZWxhdGVkTWFjaFNlcnZpY2VzKToKKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CiogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgooV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6Ciog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJv
dXRpbmdBYnJpdHJhdGlvbik6CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDoKKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiLmluOgoKU291cmNlL1dURjoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZA
YXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRk
IG1hY3JvIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIuCgoqIHd0Zi9QbGF0Zm9ybUhhdmUu
aDoKCk5vIG5ldyB0ZXN0cyAoT09QUyEpLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24u
Y3BwOgooV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcpOgoqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5oOgooV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yPjo6dG9T
dHJpbmcpOgooV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ+Ojp0b1N0cmluZyk6CiogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkpOgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9u
TWFjLmNwcC4KKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZSk6CiogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmg6CgpTb3VyY2UvV2ViQ29yZS9QQUw6CgpO
ZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFk
b3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYwpodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3ClNvdXJjZS8uLi9Ub29sczoKClBhdGNo
IGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0
aW5nQXJiaXRlci4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rVGVzdC5tbToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgoKU291cmNlL1dlYkNv
cmU6CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0x
MApSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlc0NvY29hLnR4dDoKKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2Vi
Q29yZTo6Y2F0ZWdvcnlOYW1lKTogRGVsZXRlZC4KKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAuCihXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVn
b3J5KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CihX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgoKRml4IHVuaWZpZWQg
YnVpbGQgZmFpbHVyZXMuCiogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZUNvY29hLmg6CgpTb3VyY2UvV2ViQ29yZS9QQUw6CgpQYXRjaCBieSBQZW5n
IExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkFkZCBzb2Z0bGluayBmb3IgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBw
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0OgoKPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgYSBuZXcgY3Jvc3MtcHJvY2VzcyBvYmpl
Y3QgcGFpciwgQXVkaW9TZXNzaW9uUm91dGVyQWJpdHJhdG9yL1Byb3h5IHdoaWNoIHBhc3NlcyBy
b3V0aW5nCmFyYml0cmF0aW9uIGNvbW1hbmRzIGZyb20gV2ViQ29udGVudCAtPiBVSVByb2Nlc3Mu
IEJlY2F1c2UgdGhlIFVJUHJvY2VzcyBjYW4gcmVwcmVzZW50Cm11bHRpcGxlIFdlYkNvbnRlbnQg
cHJvY2Vzc2VzLCBpdCBtdXN0IHRyYWNrIGFsbCBvdXRzdGFuZGluZyBhcmJpdHJhdGlvbiByZXF1
ZXN0cyBnbG9iYWxseS4KCiogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKiBEZXJpdmVkU291cmNlcy5tYWtlOgoqIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CihXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVH
UFVQcm9jZXNzKToKKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5oOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6Y2F0ZWdvcnkgY29uc3QpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5OjpkZXN0aW5hdGlvbklkKToKKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCiogVUlQcm9jZXNzL0Nv
Y29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubW06IEFkZGVkLgooV2ViS2l0
OjpTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSk6CihXZWJLaXQ6OlNoYXJlZEFyYml0
cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihXZWJLaXQ6OlNo
YXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tOgooV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgoqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoK
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgoqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CihXZWJLaXQ6Om1fcHJvY2Vzc0Rpc3BsYXlO
YW1lKToKKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKToKKFdl
YktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKToKKFdl
YktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6
OmxlYXZlUm91dGluZ0Ficml0cmF0aW9uKToKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwOgooV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVk
aW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UpOgoqIFdlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW46CgpTb3VyY2UvV1RGOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBl
bmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpBZGQgbWFjcm8gSEFWRV9BVkFVRElPX1JPVVRJTkdfQVJCSVRFUi4KCiogd3RmL1BsYXRm
b3JtSGF2ZS5oOgoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0OgoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2Nwo8cmRhcjovL3Byb2JsZW0vNTkxMTM5
OTQ+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5ldyBjcm9zcy1wcm9jZXNz
IG9iamVjdCBwYWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFz
c2VzIHJvdXRpbmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJUHJv
Y2Vzcy4gQmVjYXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQKbXVsdGlwbGUgV2ViQ29u
dGVudCBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5nIGFyYml0cmF0aW9u
IHJlcXVlc3RzIGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogoq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CiogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlh
bGl6ZUdQVVByb2Nlc3MpOgoqIFNvdXJjZXMudHh0OgoqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tOgooV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgoqIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDogQWRk
ZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0Fy
Yml0cmF0aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tOiBBZGRlZC4KKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6
c2hhcmVkSW5zdGFuY2UpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpsZWF2
ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0Fy
Yml0cmF0aW9uKToKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KToKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CiogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgooV2ViS2l0Ojpt
X3Byb2Nlc3NEaXNwbGF5TmFtZSk6CiogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKiBXZWJQ
cm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvcik6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBw
bGVtZW50TmFtZSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdp
blJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbik6CiogV2ViUHJvY2Vzcy9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oOiBBZGRlZC4KKiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgoKU291cmNlL1dURjoKCk5lZWQg
dGhlIGJ1ZyBVUkwgKE9PUFMhKS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRvcHQg
aW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKU291cmNlLy4uL1Rvb2xzOgoKUGF0Y2ggYnkg
UGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpBZGQgdGVzdCBmb3Igc29mdGxpbmsgb2YgQVZBdWRpb1JvdXRpbmdB
cmJpdGVyLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmtUZXN0Lm1tOgooVGVzdFdlYktpdEFQSTo6VEVTVCk6CgpTb3VyY2UvV2ViQ29yZToK
ClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNz
aW9uSU9TLm1tOgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3Jl
OjpjYXRlZ29yeU5hbWUpOiBEZWxldGVkLgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Np
b25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLmNwcC4KKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkp
OgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZSk6CgpGaXggdW5pZmllZCBidWls
ZCBmYWlsdXJlcy4KKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlQ29jb2EuaDoKClNvdXJjZS9XZWJDb3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1
IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKQWRkIHNvZnRsaW5rIGZvciBBVkF1ZGlvUm91dGluZ0FyYml0ZXIuCgoqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgoqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbToKClNvdXJjZS9XZWJLaXQ6Cgo8cmRhcjovL3Byb2JsZW0vNTkxMTM5OTQ+CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5ldyBjcm9zcy1wcm9jZXNzIG9iamVjdCBw
YWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJvdXRp
bmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJUHJvY2Vzcy4gQmVj
YXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQKbXVsdGlwbGUgV2ViQ29udGVudCBwcm9j
ZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5nIGFyYml0cmF0aW9uIHJlcXVlc3Rz
IGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiogR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVBy
b2Nlc3MpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKiBVSVByb2Nlc3MvQ29jb2Ev
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tbTogQWRkZWQuCihXZWJLaXQ6OlNo
YXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktpdDo6U2hhcmVk
QXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktp
dDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbik6CiogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgooV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CiogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUp
OgoqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IpOgooV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6c3VwcGxlbWVudE5hbWUpOgooV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVh
dmVSb3V0aW5nQWJyaXRyYXRpb24pOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaDogQWRkZWQuCiogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHA6CihXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0Zh
Y3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbjoKClNvdXJjZS9XVEY6CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSLgoKKiB3dGYvUGxhdGZvcm1I
YXZlLmg6CgoqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6Ciogd3RmL1BsYXRmb3JtSGF2ZS5o
OgoKVG9vbHM6CgpOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcK
U291cmNlLy4uL1Rvb2xzOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+
IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgdGVzdCBmb3Ig
c29mdGxpbmsgb2YgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tOgooVGVzdFdlYktpdEFQ
STo6VEVTVCk6CgpTb3VyY2UvV2ViQ29yZToKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZA
YXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBT
b3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBw
bGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgooV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3JlOjpjYXRlZ29yeU5hbWUpOiBEZWxldGVkLgoqIHBs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcC4KKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRl
Z29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlP
dmVycmlkZSk6CgpGaXggdW5pZmllZCBidWlsZCBmYWlsdXJlcy4KKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKClNvdXJjZS9XZWJD
b3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIw
LTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHNvZnRsaW5rIGZvciBBVkF1
ZGlvUm91dGluZ0FyYml0ZXIuCgoqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgoq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKClNvdXJjZS9XZWJLaXQ6Cgo8cmRh
cjovL3Byb2JsZW0vNTkxMTM5OTQ+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBh
IG5ldyBjcm9zcy1wcm9jZXNzIG9iamVjdCBwYWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0
b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJvdXRpbmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBX
ZWJDb250ZW50IC0+IFVJUHJvY2Vzcy4gQmVjYXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNl
bnQKbXVsdGlwbGUgV2ViQ29udGVudCBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0
YW5kaW5nIGFyYml0cmF0aW9uIHJlcXVlc3RzIGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CiogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6
R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJUHJv
Y2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5tbTogQWRkZWQuCihXZWJLaXQ6OlNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNl
KToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JB
cmJpdHJhdG9yKToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQXJiaXRy
YXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbik6Ciog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVs
YXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nl
c3NQcm94eSk6CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgoqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdl
YktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgoqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6IEFk
ZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3IpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6c3VwcGxlbWVudE5hbWUpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24pOgoqIFdlYlBy
b2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDogQWRkZWQuCiogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CihXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZSk6CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKClNvdXJjZS9XVEY6
CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElO
R19BUkJJVEVSLgoKKiB3dGYvUGxhdGZvcm1IYXZlLmg6CgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06CihUZXN0V2ViS2l0QVBJ
OjpURVNUKToKLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTEgKysKIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCAgICAgICAg
ICB8ICAgNCArCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCAgICAgICAgICAgICAgICAg
fCAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwg
IDIwICsrKwogU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgIHwg
IDEyICsrCiAuLi4vUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oICAgICAgfCAg
IDQgKwogLi4uL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgICAgICAgICAgICAgICB8ICAgMiAr
LQogLi4uL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICA0ICst
CiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwICAgfCAgMjcgKysr
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCAgfCAgNTggKysr
KystCiAuLi4vcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSAgICAgfCAgMjEg
Ky0tCiAuLi5BdWRpb1Nlc3Npb25NYWMuY3BwID0+IEF1ZGlvU2Vzc2lvbk1hYy5tbX0gfCAgNzMg
KysrKysrLS0KIC4uLi9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCAgICB8
ICAgMyArLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwg
IDU1ICsrKysrKwogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IHwgICAxICsKIC4uLi9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgICB8
ICAgMyArCiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgfCAg
IDEgKwogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgIDIg
KwogLi4uL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tICAgIHwgICAyICst
CiAuLi4vQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgICAgfCAgNTkgKysr
KysrKwogLi4uL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCAgICAgIHwgIDY4
ICsrKysrKysKIC4uLm9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiB8
ICAyOCArKysKIC4uLkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbSB8
IDE2NyArKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oICAgICAgICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwICAgfCAgIDcgKwogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggICAgIHwgICA1ICsKIC4uLi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogICB8ICA0MCArKysrKwogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgICAgICAgfCAgIDggKwogLi4uL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcCAgIHwgIDY1ICsrKysrKysKIC4uLi9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvci5oICAgICB8ICA2MSArKysrKysrCiAuLi4vY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwICAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluICAgICB8ICAgMSArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTIgKysKIC4uLi9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rVGVzdC5tbSB8ICAgNCArCiAzNyBmaWxlcyBjaGFuZ2VkLCA4MDQgaW5zZXJ0aW9ucygrKSwg
NDMgZGVsZXRpb25zKC0pCiByZW5hbWUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L3tBdWRpb1Nlc3Npb25NYWMuY3BwID0+IEF1ZGlvU2Vzc2lvbk1hYy5tbX0gKDc3JSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5Q29jb2EubW0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg1NTkwZjkyMDliLi43MzY1MGQyMzliNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNC0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9y
IE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IG1hY3JvIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisKIDIwMjAtMDQtMTAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXVEZdIERhdGFNdXRleDogQWRkIHJ1blVubG9ja2VkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA2YTNhNTE3NDQwNi4uOGFlZmRh
Njg0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTI4NCwzICsyODQs
NyBAQAogI2lmICFkZWZpbmVkKEVOQUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIpICYmIChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykpCiAjZGVmaW5lIEVOQUJMRV9T
SUdJTExfQ1JBU0hfQU5BTFlaRVIgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZpbmUgRU5BQkxF
X1JPVVRJTkdfQVJCSVRSQVRJT04gMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDE2
NmExMzVkN2UwLi4zNzEwMjVjZTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY2OSwzICs2
NjksNyBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBIQVZFX0lPU19K
SVRfUkVTVFJJQ1RJT05TIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDApCisjZGVmaW5lIEhBVkVfQVZBVURJ
T19ST1VUSU5HX0FSQklURVIgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODEuLjYw
NGY5NDBiMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMTAgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZB
dWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2F0ZWdvcnlOYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorCisgICAgICAg
IEZpeCB1bmlmaWVkIGJ1aWxkIGZhaWx1cmVzLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oOgorCiAyMDIwLTA0LTA2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBw
bGF5YmFjayBvZiByZW1vdGUgYXVkaW8gdHJhY2tzIGlzIHN0YWJsZSBldmVuIGlmIHBhZ2VzIGFy
ZSB1c2luZyB3ZWJhdWRpbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggOGJmMWVmNDA5NzYuLmYzZDkx
YmRlOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xMCAg
UGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFj
ZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNvZnRsaW5rIGZvciBBVkF1ZGlvUm91dGluZ0Fy
Yml0ZXIuCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAg
ICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjAtMDQtMDgg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFRyYWNrIGVkaXRh
YmxlIGVsZW1lbnRzIG9uIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGUxZjIxM2VhNWVkLi4xMjc4MzUzN2M0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaApAQCAtNzgsNiArNzgsMTAgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIo
UEFMLCBBVlNwZWVjaFN5bnRoZXNpemVyKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFM
LCBBVlNwZWVjaFV0dGVyYW5jZSkKICNlbmRpZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBdWRpb1JvdXRpbmdB
cmJpdGVyKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZSb3V0ZURldGVjdG9yKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9I
RUFERVIoUEFMLCBBVlZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggNTFiNjYz
NmFhZTEuLmEyY2ZiN2U0YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTEwNCw2ICsxMDQsMTAgQEAgU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Bl
ZWNoU3ludGhlc2l6ZXIsIFAKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNwZWVjaFV0dGVyYW5jZSwgUEFMX0VYUE9SVCkKICNlbmRp
ZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKK1NPRlRfTElOS19DTEFTU19G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvUm91dGluZ0Fy
Yml0ZXIsIFBBTF9FWFBPUlQpCisjZW5kaWYKKwogI2lmICFQTEFURk9STShXQVRDSE9TKQogU09G
VF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
Um91dGVEZXRlY3RvciwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09Q
VElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUGVyZm9ybWFuY2VN
ZXRyaWNzLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGJhZmQzNmZh
NjUuLjU4ZjVlZDgxMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4MSw3ICsxODEs
NyBAQCBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNNYWMubW0KIHBsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJl
YWRlck1hYy5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMu
Y3BwCi1wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcAorcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQogcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZl
ci5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9GRlRGcmFtZU1hYy5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMWJkNTBl
ZTM4Li4zMGM3ZjM1ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5NDcsNyArMTM5NDcsNyBAQAogCQlDRDUzOTNEMjE3
NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0QTc2MDE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDU0QTc2MTE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVk
aW9TZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXVkaW9TZXNzaW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY4
RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0Zp
bGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9GaWxl
UmVhZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTg5NDkzMjE4NzQw
NjQwMDRGNDI0QSAvKiBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjkxNjAsNyArMjkxNjAsNyBAQAogCQkJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAv
KiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLywKIAkJCQkwNzNCODc2NTFFNDM4NTlEMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi8sCiAJCQkJMDczQjg3NjQxRTQzODU5RDAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLywKLQkJCQlDRDU0REU0OTE3NDY5
QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLywKKwkJCQlDRDU0REU0OTE3NDY5
QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLm1tICovLAogCQkJCTA3M0I4NzU3MUU0MERD
RkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwICovLAogCQkJCTA3M0I4
NzU4MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKIAkJ
CQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IDliMmZh
ZTU2ZGQxLi41MWE4ZDNhMjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCkBAIC0yMDAsNiArMjAwLDMzIEBAIFN0cmluZyBjb252ZXJ0RW51
bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZh
bHVlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwg
V1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKICAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0
PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOwogfQorCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5n
QXJiaXRyYXRpb25FcnJvciBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiTm9uZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiRmFp
bGVkIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJDYW5jZWxsZWQiKSwKKyAg
ICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSks
ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yOjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6
Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6OkZhaWxlZCksICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpGYWlsZWQgaXMgbm90IDEg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJv
cjo6Q2FuY2VsbGVkKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3I6OkNhbmNlbGxlZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOwor
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FS
UkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVf
dD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVD
aGFuZ2VkIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJObyIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiWWVzIiksCisgICAgfTsK
KyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxib29sPihBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vKSwgIkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8gaXMgbm90
IGZhbHNlIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxib29s
PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5n
ZWQ6OlllcyksICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQ6OlllcyBpcyBub3QgdHJ1ZSBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2
YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRp
b25WYWx1ZSldOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5kZXggNjM3ZDI5MzVj
OTQuLjkwNzE4M2JkYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1Nlc3Npb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBVURJT19TRVNTSU9OKQogCiAj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00Niw2ICs0Nyw4IEBAIGVudW0gY2xh
c3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsK
IAorY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OworCiBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvU2Vzc2lvbik7CkBAIC0xMTMsNiArMTE2
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9hY3RpdmU7IH0KIAorICAgIHZvaWQgc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdl
YWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50PiYmIGNsaWVudCkgeyBt
X3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCA9IGNsaWVudDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj47CiAgICAgQXVkaW9TZXNz
aW9uKCk7CkBAIC0xMjQsMTEgKzEyOSwyOCBAQCBwcm90ZWN0ZWQ6CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBXZWFrSGFzaFNldDxJbnRlcnJ1cHRpb25PYnNlcnZlcj4gbV9pbnRlcnJ1
cHRpb25PYnNlcnZlcnM7CiAjZW5kaWYKKworICAgIFdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0aW9uQ2xpZW50PiBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsKICAgICBib29s
IG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUp
OworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBlbnVtIGNsYXNzIFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yIDogdWludDhfdCB7IE5vbmUsIEZhaWxlZCwgQ2FuY2VsbGVkIH07CisgICAgZW51bSBj
bGFzcyBEZWZhdWx0Um91dGVDaGFuZ2VkIDogYm9vbCB7IE5vLCBZZXMgfTsKKworICAgIHZpcnR1
YWwgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25F
cnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGVh
dmVSb3V0aW5nQWJyaXRyYXRpb24oKSA9IDA7CisKKyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7
CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3IpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVm
YXVsdFJvdXRlQ2hhbmdlZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMTY0LDYg
KzE4NiwyMyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nl
c3Npb246Ok1heVJlc3VtZT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJv
dXRpbmdBcmJpdHJhdGlvbkVycm9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0
aW5nQXJiaXRyYXRpb25FcnJvciwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lLAorICAgIFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3I6OkZhaWxlZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQKKyAgICA+Owor
fTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkLAorICAgIFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6
Tm8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpE
ZWZhdWx0Um91dGVDaGFuZ2VkOjpZZXMKKyAgICA+OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUg
VHlwZT4KIHN0cnVjdCBMb2dBcmd1bWVudDsKIApAQCAtMTgzLDYgKzIyMiwyMSBAQCBzdHJ1Y3Qg
TG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IHsKICAgICB9
CiB9OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsK
KyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IpCisg
ICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoZXJyb3IpOwor
ICAgIH0KK307Cit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZD4gewor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGNoYW5nZWQpCisgICAg
eworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2hhbmdlZCk7Cisg
ICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VT
U0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b1Nlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9T
ZXNzaW9uSU9TLm1tCmluZGV4IGMyNWEwY2FhNTczLi44ZDdiYjk0MzNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBA
IC05NiwyNSArOTYsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0df
RElTQUJMRUQKLXN0YXRpYyBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUoQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi17Ci0jZGVmaW5lIENBU0UoY2F0ZWdvcnkpIGNhc2UgQXVk
aW9TZXNzaW9uOjpjYXRlZ29yeTogcmV0dXJuICNjYXRlZ29yeQotICAgIHN3aXRjaCAoY2F0ZWdv
cnkpIHsKLSAgICAgICAgQ0FTRShOb25lKTsKLSAgICAgICAgQ0FTRShBbWJpZW50U291bmQpOwot
ICAgICAgICBDQVNFKFNvbG9BbWJpZW50U291bmQpOwotICAgICAgICBDQVNFKE1lZGlhUGxheWJh
Y2spOwotICAgICAgICBDQVNFKFJlY29yZEF1ZGlvKTsKLSAgICAgICAgQ0FTRShQbGF5QW5kUmVj
b3JkKTsKLSAgICAgICAgQ0FTRShBdWRpb1Byb2Nlc3NpbmcpOwotICAgIH0KLSAgICAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7Ci19Ci0jZW5kaWYKLQogY2xhc3Mg
QXVkaW9TZXNzaW9uUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC0xNTUsNyArMTM2LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENh
dGVnb3J5VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICAgICAgICAg
cG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOwogI2VuZGlmCiAKLSAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRlZ29yeSA9ICVz
IiwgY2F0ZWdvcnlOYW1lKG5ld0NhdGVnb3J5KSk7CisgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKG5ld0NhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICBpZiAoY2F0ZWdvcnlP
dmVycmlkZSgpICYmIGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQs
IE5PVCBjaGFuZ2luZyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
Lm1tCmluZGV4IGNjMDRmMGJlMzA5Li5kZDYyMzBkMmM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQpAQCAtMjMsMTcg
KzIzLDE5IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb24uaCIKIAogI2lmIFVTRShBVURJT19TRVNTSU9O
KSAmJiBQTEFURk9STShNQUMpCiAKLSNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNs
dWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDxD
b3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24u
aCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1w
b3J0IDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw2
ICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIDogbGFzdE11dGVkU3RhdGUobXV0ZWRTdGF0ZSkg
eyB9CiAgICAgYm9vbCBsYXN0TXV0ZWRTdGF0ZTsKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworI2lmIEVOQUJMRShST1VUSU5H
X0FSQklUUkFUSU9OKQorICAgIGJvb2wgc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9
OworI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeU92ZXJy
aWRlOwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQpAQCAtNzUsMTggKzgxLDYx
IEBAIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBj
b25zdAogCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJ
T04pCisgICAgaWYgKGNhdGVnb3J5ID09IEFtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBTb2xv
QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IEF1ZGlvUHJvY2Vzc2luZykgeworICAgICAgICBt
X3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoY2F0ZWdvcnkgPT0gbV9wcml2YXRlLT5jYXRlZ29yeSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkg
LSBhIGJlZ2luQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkgaXMgc3RpbGwgb25nb2luZyIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgIT0gTm9u
ZSkKKyAgICAgICAgbV9yb3V0aW5nQXJiaXRyYXRpb25DbGllbnQtPmxlYXZlUm91dGluZ0Ficml0
cmF0aW9uKCk7CisKICAgICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgaWYg
KG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPT0gTm9uZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXNp
bmcgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOworICAgIHVzaW5nIERlZmF1bHRSb3V0
ZUNoYW5nZWQgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQ7CisKKyAgICBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudC0+YmVnaW5Sb3V0
aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkobV9wcml2YXRlLT5jYXRlZ29yeSwgW3RoaXNdIChS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCBkZWZhdWx0
Um91dGVDaGFuZ2VkKSB7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29p
bmcgPSBmYWxzZTsKKyAgICAgICAgaWYgKGVycm9yICE9IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9y
OjpOb25lKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGJlZ2luQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnk6JXMgZmFp
bGVkIHdpdGggZXJyb3IgJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3ByaXZhdGUt
PmNhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoZXJy
b3IpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIHJlc2V0IHNhbXBsZSByYXRlIGFuZCBidWZm
ZXIgc2l6ZSBmb3IgdGhlIG5ldyBkZWZhdWx0IGRldmljZT8KKyAgICAgICAgaWYgKGRlZmF1bHRS
b3V0ZUNoYW5nZWQgPT0gRGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzKQorICAgICAgICAgICAgTE9H
KE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdFJvdXRlQ2hhbmdl
ZCEiKTsKKyAgICB9KTsKKyNlbHNlCisgICAgbV9wcml2YXRlLT5jYXRlZ29yeSA9IGNhdGVnb3J5
OworI2VuZGlmCiB9CiAKIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gTm9uZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGU7CiB9
CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSBjYXRl
Z29yeSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChtX3ByaXZhdGUtPm1fY2F0
ZWdvcnlPdmVycmlkZSA9PSBjYXRlZ29yeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2
YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGUgPSBjYXRlZ29yeTsKKyAgICBzZXRDYXRlZ29yeShjYXRl
Z29yeSwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKIH0KIAogZmxvYXQgQXVkaW9TZXNz
aW9uOjpzYW1wbGVSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZUNvY29hLmgKaW5kZXggMTRkZDRkOTE2NzIuLjFkN2NkOTZjOGI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIgog
I2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9Db3Jl
QXVkaW9UeXBlcy5oPgpAQCAtMzcsOCArMzgsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFx
dWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwotCiBj
bGFzcyBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYSBmaW5hbCA6IHB1YmxpYyBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2E+IGNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcmJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5YjQw
NzY2OGJiLi5kZTc4OTVlYjBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMC0wNC0x
MCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRl
cmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTkxMTM5OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJv
dXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZworICAgICAgICBhcmJpdHJh
dGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBV
SVByb2Nlc3MgY2FuIHJlcHJlc2VudAorICAgICAgICBtdWx0aXBsZSBXZWJDb250ZW50IHByb2Nl
c3NlcywgaXQgbXVzdCB0cmFjayBhbGwgb3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMg
Z2xvYmFsbHkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENh
dGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OmRlc3RpbmF0aW9uSWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29h
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5z
dGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJh
dG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdp
blJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3Byb2Nl
c3NEaXNwbGF5TmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bldpdGhDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluOgorCiAyMDIwLTA0LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFdBUk5fVU5VU0VEX1JFVFVSTiB0byBkZWNvZGUgbWV0aG9kcyBpbiBX
ZWJDb3JlQXJndW1lbnRDb2RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA4ZjQ5Njg4YTY3OS4uOGJkYjUxYTE2ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTkzLDYgKzkzLDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDUzNWE2N2Q3ZDE1
Li5kMTAwNDYzMzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xLDQgKzEsNyBAQAogIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5
IHRoZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyBzY3JpcHQuCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
QXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyZDU5ZDg2YmMyYS4uY2Q4ZmQxOWM1
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTExMCw2ICsxMTAsNyBAQCBlbHNl
CiBlbmRpZgogCiBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKKwlBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5IFwKICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXIgXAogICAgIEF1eGlsaWFy
eVByb2Nlc3MgXAogICAgIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IGVmMjM5NWVjNTlmLi45NTA3NmYyNjQx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcgKzEy
NCw3IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJl
bnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVOQUJM
RShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggNDdjY2JlZDQ1MWMuLmQzODRjZTU2NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ0MSw2
ICs0NDEsOCBAQCBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAogCiBVSVByb2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQu
Y3BwCiAKK1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
LmNwcAorCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCmluZGV4IDE3YjViZGM3Y2VmLi42ZmY3Y2M3ZWVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVJl
bGF0ZWRNYWNoU2VydmljZXMoKQogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCiAgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyIs
ICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50cGxheWJhY2tzZXNzaW9uLnhwYyIsCiAgICAg
ICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50cmVtb3RlY29udHJvbHNlc3Npb24ueHBj
IiwgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9kZWNvZGVyIiwKLSAgICAgICAgImNvbS5hcHBs
ZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIgorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52
aWRlb2VuY29kZXIiLCAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgogI2VuZGlmCiAgICAg
fSk7CiAgICAgcmV0dXJuIHNlcnZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWM5MzYzYjVi
NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYg
IUhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNzKHBy
b3h5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjYWxsYmFjayhSb3V0aW5nQXJiaXRy
YXRpb25FcnJvcjo6RmFpbGVkLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7Cit9CisKK3ZvaWQg
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmM5ZTE4NmI3NjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCkBAIC0w
LDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShST1VU
SU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNzUHJveHkm
KTsKKyAgICB2aXJ0dWFsIH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCk7CisK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH0KKworICAgIHN0YXRpYyB1aW50NjRfdCBkZXN0aW5hdGlv
bklkKCkgeyByZXR1cm4gMTsgfQorCisgICAgdXNpbmcgUm91dGluZ0FyYml0cmF0aW9uRXJyb3Ig
PSBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdB
cmJpdHJhdGlvbkVycm9yOworICAgIHVzaW5nIERlZmF1bHRSb3V0ZUNoYW5nZWQgPSBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5n
ZWQ7CisgICAgdXNpbmcgQXJiaXRyYXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPjsKKworcHJp
dmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAvLyBN
ZXNzYWdlcworICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIEFyYml0cmF0aW9uQ2FsbGJhY2smJik7
CisgICAgdm9pZCBsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbigpOworCisgICAgV2ViUHJvY2Vzc1By
b3h5JiBtX3Byb2Nlc3M7CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUg
bV9jYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2Vz
LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2VmMjhmNzZiZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFJPVVRJ
TkdfQVJCSVRSQVRJT04pCittZXNzYWdlcyAtPiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENh
dGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBj
YXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2Vi
S2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVDaGFu
Z2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCisgICAgTGVhdmVSb3V0aW5nQXJiaXRyYXRp
b24oKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5jMjBlNWI4ODAxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQpA
QCAtMCwwICsxLDE2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorCisjaWYgRU5BQkxFKFJP
VVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNp
bXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2lt
cG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQ
cm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworY2xhc3MgU2hhcmVkQXJiaXRyYXRvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFNo
YXJlZEFyYml0cmF0b3ImIHNoYXJlZEluc3RhbmNlKCk7CisKKyAgICB1c2luZyBSb3V0aW5nQXJi
aXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsK
KyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNrID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6QXJiaXRyYXRpb25DYWxsYmFjazsKKworICAgIHZvaWQgYmVnaW5Sb3V0aW5n
QXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkmLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQgbGVhdmVSb3V0aW5nQXJiaXRy
YXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkmKTsK
KworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gbV9j
dXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBXZWFrSGFzaFNldDxB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5PiBtX2FyYml0cmF0b3JzOworICAgIFZl
Y3RvcjxBcmJpdHJhdGlvbkNhbGxiYWNrPiBtX2VucXVldWVkQ2FsbGJhY2tzOworICAgIGJvb2wg
bV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZhbHNlIH07Cit9OworCitTaGFyZWRBcmJpdHJh
dG9yJiBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFNoYXJlZEFyYml0cmF0b3I+IGluc3RhbmNlOworICAgIHJldHVybiBpbnN0
YW5jZTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSYgcHJveHks
IEFyYml0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXJiaXRy
YXRvcnMuY29udGFpbnMocHJveHkpKTsKKyAgICBtX2FyYml0cmF0b3JzLmFkZChwcm94eSk7CisK
KyAgICBpZiAobV9zZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBtX2VucXVldWVk
Q2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBhdXRvIHJlcXVlc3RlZENhdGVnb3J5ID0gcHJveHkuY2F0ZWdvcnkoKTsKKwor
ICAgIGlmIChtX2N1cnJlbnRDYXRlZ29yeSkgeworICAgICAgICBpZiAoKm1fY3VycmVudENhdGVn
b3J5ID49IHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgICAgICAgICBjYWxsYmFjayhSb3V0aW5n
QXJiaXRyYXRpb25FcnJvcjo6Tm9uZSwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgW1tQQUw6OmdldEFWQXVkaW9Sb3V0
aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVkUm91dGluZ0FyYml0ZXJdIGxlYXZlQXJiaXRyYXRpb25d
OworICAgIH0KKworICAgIG1fY3VycmVudENhdGVnb3J5ID0gcmVxdWVzdGVkQ2F0ZWdvcnk7CisK
KyAgICBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnkgYXJiaXRyYXRpb25DYXRlZ29y
eTsKKyAgICBzd2l0Y2ggKHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgY2FzZSBBdWRpb1Nlc3Np
b246Ok1lZGlhUGxheWJhY2s6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlv
Um91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvOgorICAgICAgICBhcmJpdHJhdGlvbkNhdGVn
b3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ6CisgICAg
ICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdv
cnlQbGF5QW5kUmVjb3JkVm9pY2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIG1fc2V0dXBBcmJpdHJhdGlv
bk9uZ29pbmcgPSB0cnVlOworICAgIG1fZW5xdWV1ZWRDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUo
Y2FsbGJhY2spKTsKKworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygp
IHNoYXJlZFJvdXRpbmdBcmJpdGVyXSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVnb3J5OmFyYml0
cmF0aW9uQ2F0ZWdvcnkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKEJPT0wgZGVmYXVsdERldmlj
ZUNoYW5nZWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbdGhpcywgZGVmYXVsdERldmljZUNoYW5nZWQsIGVycm9yID0gcmV0YWluUHRyKGVy
cm9yKV0geworICAgICAgICAgICAgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IGZhbHNlOwor
ICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhLCAiU2hhcmVkQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJp
dHJhdG9yOiAlcyBmYWlsZWQgd2l0aCBlcnJvciAlczolcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKCptX2N1cnJlbnRDYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCksIFtbZXJyb3IgZG9tYWlu
XSBVVEY4U3RyaW5nXSwgW1tlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRGOFN0cmluZ10p
OworCisgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byByZXNldCBzYW1wbGUgcmF0
ZSBhbmQgYnVmZmVyIHNpemUgZm9yIHRoZSBuZXcgZGVmYXVsdCBkZXZpY2U/CisgICAgICAgICAg
ICBpZiAoZGVmYXVsdERldmljZUNoYW5nZWQpCisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAi
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdERldmljZUNoYW5nZWQhIik7CisK
KyAgICAgICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX2VucXVldWVkQ2FsbGJhY2tzKQor
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6
OkZhaWxlZCA6IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lLCBkZWZhdWx0RGV2aWNlQ2hh
bmdlZCA/IERlZmF1bHRSb3V0ZUNoYW5nZWQ6OlllcyA6IERlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5v
KTsKKworICAgICAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOworICAgICAgICB9
KTsKKyAgICB9XTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBcmJp
dHJhdGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSYg
cHJveHkpCit7CisgICAgQVNTRVJUKG1fYXJiaXRyYXRvcnMuY29udGFpbnMocHJveHkpKTsKKyAg
ICBtX2FyYml0cmF0b3JzLnJlbW92ZShwcm94eSk7CisKKyAgICBpZiAoIW1fYXJiaXRyYXRvcnMu
Y29tcHV0ZXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNhbGxi
YWNrIDogbV9lbnF1ZXVlZENhbGxiYWNrcykKKyAgICAgICAgY2FsbGJhY2soUm91dGluZ0FyYml0
cmF0aW9uRXJyb3I6OkNhbmNlbGxlZCwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworCisgICAg
bV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOworICAgIG1fY3VycmVudENhdGVnb3J5LnJlc2V0
KCk7CisgICAgW1tQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVkUm91
dGluZ0FyYml0ZXJdIGxlYXZlQXJiaXRyYXRpb25dOworfQorCitBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KFdlYlBy
b2Nlc3NQcm94eSYgcHJveHkpCisgICAgOiBtX3Byb2Nlc3MocHJveHkpCit7CisgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklkKCksICp0aGlz
KTsKK30KKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgZGVzdGluYXRpb25JZCgpKTsKK30KKwordm9pZCBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwgQXJi
aXRyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRlZ29y
eTsKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpLmJlZ2luUm91dGluZ0Fy
Yml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcywgV1RGTW92ZShjYWxsYmFjaykpOworfQorCit2
b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0FyYml0
cmF0aW9uKCkKK3sKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpLmxlYXZl
Um91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcyk7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3MTM2ZDUwMWI0Li44
MjM1MGI1MGM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3
MSw2ICsyNzEsNyBAQCBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTsKIGNsYXNzIERy
YXdpbmdBcmVhUHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKIGNsYXNzIEdh
bWVwYWREYXRhOwpAQCAtMjc3NSw2ICsyNzc2LDEwIEBAIHByaXZhdGU6CiAgICAgTmF2aWdhdGVk
QXdheUZyb21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21h
aW4geyBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogICAgIGJvb2wgbV9p
Z25vcmVzQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1fdXNlclNjcmlwdHNO
b3RpZmllZCB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4gbV9y
b3V0aW5nQXJiaXRyYXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYWVkZGFk
MDE3NC4uYzNhZmM1NmEwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtODcsNiArODcsMTAgQEAKICNpbmNsdWRlICJTZWNJdGVtU2hpbVByb3h5
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNlbmRpZgorCiAjZGVmaW5l
IE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBj
b25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkgTUVTU0FHRV9DSEVD
S19CQVNFKGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBjb25uZWN0aW9uKCkp
CiAKQEAgLTE4Nyw2ICsxOTEsOSBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX21h
eUhhdmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oZmFsc2UpCiAgICAgLCBtX251
bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkKDApCiAgICAgLCBtX3Rocm90
dGxlcigqdGhpcywgcHJvY2Vzc1Bvb2wuc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigp
KQorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgICwgbV9yb3V0aW5nQXJiaXRy
YXRvcihtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+KCp0
aGlzKSkKKyNlbmRpZgogICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAg
ICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRl
QmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFT
dG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCAyMTFiYjQ1NWU1ZS4uM2FiMWI4ZTIzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIGVudW0gY2xhc3Mg
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3Q7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OwogY2xhc3Mg
TmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKIGNsYXNzIFBhZ2VD
bGllbnQ7CkBAIC01MzYsNiArNTM3LDEwIEBAIHByaXZhdGU6CiAgICAgRm9yZWdyb3VuZFdlYlBy
b2Nlc3NUb2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rv
a2VuIG1fYmFja2dyb3VuZFRva2VuOwogCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04p
CisgICAgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+IG1fcm91
dGluZ0FyYml0cmF0b3I7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wg
bV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGZhY2U5ZTI3MjMzLi5lOWEzMWY1MjI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzA3LDYgKzE3MDcsOCBAQAogCQlD
RDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIw
NDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyODY1RUUyMjU1NTYy
MDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8q
IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oICovOyB9OwogCQlDRDI4NjVFRjIyNTU1NjIwMDA2
MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUQyMjU1NTYyMDAwNjA2QUM3IC8qIFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSAqLzsgfTsKKwkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNE
Q0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcw
RDAyNDQxMDE0QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLzsgfTsKIAkJQ0Q0NjYxODMyNDAxMEE2NzAw
NDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ2NjE4MTI0MDEw
NTY0MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLzsgfTsKIAkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLzsg
fTsKIAkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xNzIxLDYgKzE3MjMsNyBAQAogCQlD
RDc4RTExNTFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMTMxREI3RDdFRDAwMTRB
MkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q3OEUxMTcxREI3REMwQTAwMTRB
MkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2Ny
ZWVuQ2xpZW50LmggKi87IH07CiAJCUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxs
c2NyZWVuRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDdD
RjM2MTI0NDRDQ0E2MDAzQkM0RDUgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHlDb2NvYS5tbSAqLzsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tC
b2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEku
aCAqLzsgfTsKIAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi87IH07
CiAJCUNEQTI5QTIwMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5
QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAqLzsg
fTsKQEAgLTUwMzIsNiArNTAzNSwxNSBAQAogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEgLyog
RnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1bGxz
Y3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxsc2Ny
ZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBDQTI0NDBGQjJBMDBB
M0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwRDAyNDQxMDE0QTAw
QTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MEQy
MjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RD
RUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0Q0NjYxN0YyNDAxMDQ1ODAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgwMjQwMTA1NjQwMDQ3Q0EzNSAv
KiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgxMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1vdGVDRE1J
bnN0YW5jZVNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTgzMDksNiArODMyMSw4IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYy
NEUyRSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcCAqLywKKwkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0Yg
LyogUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIwMDkw
MUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5
QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApAQCAt
ODg0MSw2ICs4ODU1LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICov
LAogCQkJCUJDMTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NG
MDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCUNENDU3MEQ4MjQ0NENBMTcwMEEz
RENFQiAvKiBNZWRpYSAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29y
ayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywK
IAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKQEAgLTk4OTYsNiAr
OTkxMSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEN0RF
QkUyMjEyNjlFNEIwMEI5RjczQyAvKiB1bmlmaWVkLXNvdXJjZXMgKi8sCisJCQkJQ0Q0NTcwRDAy
NDQxMDE0QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ1NzBE
MjI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1l
c3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRo
ZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJB
ODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJ
CTk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJz
LmNwcCAqLywKQEAgLTEwMjEyLDYgKzEwMjMwLDI1IEBACiAJCQluYW1lID0gZm9ybXM7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RDRUIg
LyogTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJ
CUNENDU3MEQ5MjQ0NENBNTgwMEEzRENFQiAvKiBjb2NvYSAqLywKKwkJCQlDRDQ1NzBERDI0NDRD
QTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8s
CisJCQkJQ0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHkuaCAqLywKKwkJCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlDRDQ1NzBE
OTI0NDRDQTU4MDBBM0RDRUIgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCUNENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNv
Y29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q2MTc4MTExRTZERTk4
MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTEyNTc5LDYgKzEyNjE2LDggQEAKIAkJCQkyRDkyQTc3QjIxMkI2QTcxMDBGNDkz
RkQgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3
NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkQ5MkE3N0MyMTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENDU3MEQzMjQ0MTEzQjUwMEEzRENFQiAv
KiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxMkY1OEEyMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2
RjQxQzc5ODZEQzAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTkyNDlBRDUxRjFGMUU1NjAwQjYyRkJCIC8qIEF1dG9tYXRpb25G
cm9udGVuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTI3NjksNiArMTI4MDgs
NyBAQAogCQkJCTJEMTFCNzlDMjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlMzguY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3OUQyMTI2QTI4MzAwNkY4ODc4IC8qIFVuaWZpZWRT
b3VyY2UzOS1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCNzlFMjEyNkEyODMwMDZGODg3
OCAvKiBVbmlmaWVkU291cmNlMzkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q3Q0YzNjEyNDQ0
Q0NBNjAwM0JDNEQ1IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0EwMjEyNkEyODMwMDZGODg3OCAvKiBVbmlmaWVk
U291cmNlNDAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxMUI3OUYyMTI2QTI4MzAwNkY4ODc4
IC8qIFVuaWZpZWRTb3VyY2U0MC1tbS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEMTFCN0ExMjEy
NkEyODMwMDZGODg3OCAvKiBVbmlmaWVkU291cmNlNDEtbW0ubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjY3ZjI3
OTJiNWUuLjVhMTk5NGYyMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNTYwLDcgKzU2MCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
IAogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHBhcmFtZXRlcnMuc3RvcmUpOwogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBFTkFCTEUoUk9VVElO
R19BUkJJVFJBVElPTikKICAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51c2VHUFVQcm9jZXNz
Rm9yTWVkaWEoKSkKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXRTaG91bGRN
YW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDBiOWRkZGI3YTYxLi5lYjFlMmI2ZTQ1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTg0LDYgKzE4NCwxMCBA
QAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyNpbmNsdWRlICJBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCAo
bV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lvbklEPSUiIFBSSXU2
NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VTU0lPTl9JRCwgIyNf
X1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChjaGFubmVs
LCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdlYlByb2Nlc3M6OiIg
Zm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJHU19fKQpAQCAtMjU5
LDYgKzI2MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRTdXBwbGVtZW50
PFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShST1VUSU5H
X0FSQklUUkFUSU9OKQorICAgIGFkZFN1cHBsZW1lbnQ8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3I+KCk7CisjZW5kaWYKKwogICAgIEdpZ2FjYWdlOjpmb3JiaWREaXNhYmxpbmdQcmltaXRp
dmVHaWdhY2FnZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjk2MWRhOTNhYzQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCIKKwor
I2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoV2ViUHJvY2VzcyYgcHJvY2VzcykKKyAg
ICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIEF1ZGlvU2Vzc2lvbjo6c2hhcmVkU2Vzc2lv
bigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtYWtlV2Vha1B0cih0aGlzKSk7Cit9CisK
K0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvciI7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6
OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlIGNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3Byb2Nl
c3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpCZWdpblJvdXRpbmdBcmJpdHJh
dGlvbldpdGhDYXRlZ29yeShjYXRlZ29yeSksIFdURk1vdmUoY2FsbGJhY2spLCBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlvbklkKCkpOworfQorCit2b2lkIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpCit7
CisgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkxlYXZlUm91dGluZ0FyYml0cmF0
aW9uKCksIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQo
KSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNTYwYWI1NjY0MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9j
ZXNzOworCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvciBmaW5hbAorICAgIDog
cHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50CisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvcihXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworCisg
ICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDsKKworcHJpdmF0ZToKKyAgICAvLyBBdWRpb1Nlc3Npb25Sb3V0aW5nQWJy
aXRyYXRvcgorICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoV2Vi
Q29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Um91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCkgZmluYWw7CisKKyAgICBXZWJQcm9j
ZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5k
ZXggMDA0Yjg1NGNjZGQuLjBhYzM4NDExZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTUy
MSw3ICs1MjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTbwogICAgIGlmIChtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvciB7
ICJBdWRpbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90IGltcGxlbWVudGVkIl9zIH07CiAj
ZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
IHx8IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIC8vIEZJWE1FOiBSZW1vdmUgZGlz
YWJsaW5nIG9mIHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5IG1hbmFnZW1lZW50IG9uY2Ugd2Ug
bW92ZSBhbGwgbWVkaWEgcGxheWluZyB0byBHUFVQcm9jZXNzLgogICAgIGlmIChtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0
U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KaW5kZXggNWIzMDU0
ZjQzOGIuLjM1NWUzYmExMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC05MDUsNiArOTA1LDcgQEAKICAgICAgICAg
ICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgogICAgICAgICAgICAgImNvbS5hcHBsZS50
Y2NkIgogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFwZGIiCisgICAgICAgICAgICAiY29t
LmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgogCiAgICAgICAgICAgICA7OzsgRklYTUUoMjA3NzE2
KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZSBHUFUgcHJvY2VzcyBp
cyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJl
Z2lzdHJhciIgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnQueHBjIiAiY29tLmFwcGxlLmNv
cmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmFkMDE3NTA1MGUuLjJmMDI3YzE5OTg0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAg
ICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGZvciBzb2Z0
bGluayBvZiBBVkF1ZGlvUm91dGluZ0FyYml0ZXIuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDQtMTAgIEFsaWNpYSBCb3lhIEdhcmPD
rWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXVEZdIERhdGFNdXRleDogQWRkIHJ1
blVubG9ja2VkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCmluZGV4IDk5
Mjk0MGU0ZTI4Li5iMzE0N2JiMGQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtU
ZXN0Lm1tCkBAIC03NSw2ICs3NSwxMCBAQCBURVNUKEFWRm91bmRhdGlvblNvZnRMaW5rLCBDbGFz
c2VzKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWU3BlZWNoU3ludGhlc2lzVm9pY2VDbGFzcygp
LCBudWxscHRyKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikK
KyAgICBFWFBFQ1RfTkUoUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpLCBudWxs
cHRyKTsKKyNlbmRpZgorCiAjaWYgSEFWRShNRURJQV9QTEFZRVIpICYmICFQTEFURk9STShXQVRD
SE9TKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWUm91dGVEZXRlY3RvckNsYXNzKCksIG51bGxw
dHIpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396311</attachid>
            <date>2020-04-13 11:26:42 -0700</date>
            <delta_ts>2020-04-13 15:49:01 -0700</delta_ts>
            <desc>Patch (with rename enabled)</desc>
            <filename>0001-Adopt-interface-AVAudioRoutingArbiter-for-Mac.patch</filename>
            <type>text/plain</type>
            <size>86218</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBlNjJlNDAxNWZjMDM4OTVmMzY2MDE5N2VlOGVjMWExNjZiY2E3MzMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTAgQXByIDIwMjAgMTY6MzQ6NTAgLTA3MDAKU3ViamVjdDogQWRvcHQgaW50ZXJmYWNl
IEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjIFNvdXJjZS9XZWJDb3JlOgoKTmVlZCB0aGUg
YnVnIFVSTCAoT09QUyEpLgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZG9wdCBpbnRl
cmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NwpTb3VyY2UvLi4vVG9vbHM6CgpQYXRjaCBieSBQZW5n
IExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkFkZCB0ZXN0IGZvciBzb2Z0bGluayBvZiBBVkF1ZGlvUm91dGluZ0FyYml0
ZXIuCgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW06CihUZXN0V2ViS2l0QVBJOjpURVNUKToKClNvdXJjZS9XZWJDb3JlOgoKUGF0
Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFNvdXJjZXNDb2NvYS50eHQ6CiogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25J
T1MubW06CihXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKFdlYkNvcmU6OmNh
dGVnb3J5TmFtZSk6IERlbGV0ZWQuCiogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1h
Yy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRp
b1Nlc3Npb25NYWMuY3BwLgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKCkZpeCB1bmlmaWVkIGJ1aWxkIGZh
aWx1cmVzLgoqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9T
b3VyY2VDb2NvYS5oOgoKU291cmNlL1dlYkNvcmUvUEFMOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBl
bmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpBZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KCiogcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CiogcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
Lm1tOgoKU291cmNlL1dlYktpdDoKCjxyZGFyOi8vcHJvYmxlbS81OTExMzk5ND4KClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIs
IEF1ZGlvU2Vzc2lvblJvdXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZwph
cmJpdHJhdGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNl
IHRoZSBVSVByb2Nlc3MgY2FuIHJlcHJlc2VudAptdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3Nl
cywgaXQgbXVzdCB0cmFjayBhbGwgb3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xv
YmFsbHkuCgoqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3MuY3BwOgooV2ViS2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vz
cyk6CiogVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmNh
dGVnb3J5IGNvbnN0KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6ZGVzdGluYXRpb25JZCk6CiogVUlQcm9jZXNzL0NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1tOiBBZGRlZC4KKFdlYktpdDo6U2hhcmVk
QXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpi
ZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpTaGFyZWRBcmJp
dHJhdG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6fkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6Omxl
YXZlUm91dGluZ0FyYml0cmF0aW9uKToKKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbToKKFdlYktpdDo6bWVkaWFSZWxhdGVkTWFjaFNlcnZpY2VzKToKKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lmg6CiogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgooV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6Ciog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJv
dXRpbmdBYnJpdHJhdGlvbik6CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oOiBBZGRlZC4KKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDoKKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9y
eTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQ
cm9jZXNzLnNiLmluOgoKU291cmNlL1dURjoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZA
YXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRk
IG1hY3JvIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIuCgoqIHd0Zi9QbGF0Zm9ybUhhdmUu
aDoKCk5vIG5ldyB0ZXN0cyAoT09QUyEpLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24u
Y3BwOgooV2ViQ29yZTo6Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcpOgoqIHBsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5oOgooV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yPjo6dG9T
dHJpbmcpOgooV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ+Ojp0b1N0cmluZyk6CiogcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6
c2V0Q2F0ZWdvcnkpOgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9u
TWFjLmNwcC4KKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZSk6CiogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmg6CgpTb3VyY2UvV2ViQ29yZS9QQUw6CgpO
ZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFk
b3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYwpodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3ClNvdXJjZS8uLi9Ub29sczoKClBhdGNo
IGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0
aW5nQXJiaXRlci4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rVGVzdC5tbToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgoKU291cmNlL1dlYkNv
cmU6CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0x
MApSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlc0NvY29hLnR4dDoKKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CiogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlv
U2Vzc2lvbklPUy5tbToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2Vi
Q29yZTo6Y2F0ZWdvcnlOYW1lKTogRGVsZXRlZC4KKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9T
ZXNzaW9uTWFjLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAuCihXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVn
b3J5KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CihX
ZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgoKRml4IHVuaWZpZWQg
YnVpbGQgZmFpbHVyZXMuCiogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdBdWRpb1NvdXJjZUNvY29hLmg6CgpTb3VyY2UvV2ViQ29yZS9QQUw6CgpQYXRjaCBieSBQZW5n
IExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCkFkZCBzb2Z0bGluayBmb3IgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBw
YWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0OgoKPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgYSBuZXcgY3Jvc3MtcHJvY2VzcyBvYmpl
Y3QgcGFpciwgQXVkaW9TZXNzaW9uUm91dGVyQWJpdHJhdG9yL1Byb3h5IHdoaWNoIHBhc3NlcyBy
b3V0aW5nCmFyYml0cmF0aW9uIGNvbW1hbmRzIGZyb20gV2ViQ29udGVudCAtPiBVSVByb2Nlc3Mu
IEJlY2F1c2UgdGhlIFVJUHJvY2VzcyBjYW4gcmVwcmVzZW50Cm11bHRpcGxlIFdlYkNvbnRlbnQg
cHJvY2Vzc2VzLCBpdCBtdXN0IHRyYWNrIGFsbCBvdXRzdGFuZGluZyBhcmJpdHJhdGlvbiByZXF1
ZXN0cyBnbG9iYWxseS4KCiogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKiBEZXJpdmVkU291cmNlcy5tYWtlOgoqIEdQ
VVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHA6CihXZWJLaXQ6OkdQVVByb2Nlc3M6OmluaXRpYWxpemVH
UFVQcm9jZXNzKToKKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5oOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6Y2F0ZWdvcnkgY29uc3QpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5OjpkZXN0aW5hdGlvbklkKToKKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCiogVUlQcm9jZXNzL0Nv
Y29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubW06IEFkZGVkLgooV2ViS2l0
OjpTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSk6CihXZWJLaXQ6OlNoYXJlZEFyYml0
cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihXZWJLaXQ6OlNo
YXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tOgooV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgoqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoK
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgoqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CihXZWJLaXQ6Om1fcHJvY2Vzc0Rpc3BsYXlO
YW1lKToKKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKToKKFdl
YktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKToKKFdl
YktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0
aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6
OmxlYXZlUm91dGluZ0Ficml0cmF0aW9uKToKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwOgooV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVk
aW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UpOgoqIFdlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IuaW46CgpTb3VyY2UvV1RGOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBl
bmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpBZGQgbWFjcm8gSEFWRV9BVkFVRElPX1JPVVRJTkdfQVJCSVRFUi4KCiogd3RmL1BsYXRm
b3JtSGF2ZS5oOgoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0OgoKaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2Nwo8cmRhcjovL3Byb2JsZW0vNTkxMTM5
OTQ+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5ldyBjcm9zcy1wcm9jZXNz
IG9iamVjdCBwYWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFz
c2VzIHJvdXRpbmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJUHJv
Y2Vzcy4gQmVjYXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQKbXVsdGlwbGUgV2ViQ29u
dGVudCBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5nIGFyYml0cmF0aW9u
IHJlcXVlc3RzIGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogoq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CiogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlh
bGl6ZUdQVVByb2Nlc3MpOgoqIFNvdXJjZXMudHh0OgoqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tOgooV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgoqIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDogQWRk
ZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0Fy
Yml0cmF0aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJ
UHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2Vz
LmluOiBBZGRlZC4KKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tOiBBZGRlZC4KKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6
c2hhcmVkSW5zdGFuY2UpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpsZWF2
ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0Fy
Yml0cmF0aW9uKToKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CiogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KToKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CiogV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgooV2ViS2l0Ojpt
X3Byb2Nlc3NEaXNwbGF5TmFtZSk6CiogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKiBXZWJQ
cm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCihX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvcik6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBw
bGVtZW50TmFtZSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdp
blJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbik6CiogV2ViUHJvY2Vzcy9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oOiBBZGRlZC4KKiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgoKU291cmNlL1dURjoKCk5lZWQg
dGhlIGJ1ZyBVUkwgKE9PUFMhKS4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRvcHQg
aW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKU291cmNlLy4uL1Rvb2xzOgoKUGF0Y2ggYnkg
UGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgpBZGQgdGVzdCBmb3Igc29mdGxpbmsgb2YgQVZBdWRpb1JvdXRpbmdB
cmJpdGVyLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmtUZXN0Lm1tOgooVGVzdFdlYktpdEFQSTo6VEVTVCk6CgpTb3VyY2UvV2ViQ29yZToK
ClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNz
aW9uSU9TLm1tOgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3Jl
OjpjYXRlZ29yeU5hbWUpOiBEZWxldGVkLgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Np
b25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLmNwcC4KKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkp
OgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlPdmVycmlkZSk6CgpGaXggdW5pZmllZCBidWls
ZCBmYWlsdXJlcy4KKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1
ZGlvU291cmNlQ29jb2EuaDoKClNvdXJjZS9XZWJDb3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1
IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKQWRkIHNvZnRsaW5rIGZvciBBVkF1ZGlvUm91dGluZ0FyYml0ZXIuCgoqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgoqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbToKClNvdXJjZS9XZWJLaXQ6Cgo8cmRhcjovL3Byb2JsZW0vNTkxMTM5OTQ+CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBhIG5ldyBjcm9zcy1wcm9jZXNzIG9iamVjdCBw
YWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJvdXRp
bmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBXZWJDb250ZW50IC0+IFVJUHJvY2Vzcy4gQmVj
YXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNlbnQKbXVsdGlwbGUgV2ViQ29udGVudCBwcm9j
ZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0YW5kaW5nIGFyYml0cmF0aW9uIHJlcXVlc3Rz
IGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLm1ha2U6CiogR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVBy
b2Nlc3MpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKiBVSVByb2Nlc3MvQ29jb2Ev
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tbTogQWRkZWQuCihXZWJLaXQ6OlNo
YXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktpdDo6U2hhcmVk
QXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktp
dDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbik6CiogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgooV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6CiogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgoqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUp
OgoqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IpOgooV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6c3VwcGxlbWVudE5hbWUpOgooV2ViS2l0
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25X
aXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVh
dmVSb3V0aW5nQWJyaXRyYXRpb24pOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaDogQWRkZWQuCiogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHA6CihXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0Zh
Y3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZSk6CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbjoKClNvdXJjZS9XVEY6CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSLgoKKiB3dGYvUGxhdGZvcm1I
YXZlLmg6CgoqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6Ciogd3RmL1BsYXRmb3JtSGF2ZS5o
OgoKVG9vbHM6CgpOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcK
U291cmNlLy4uL1Rvb2xzOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+
IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpBZGQgdGVzdCBmb3Ig
c29mdGxpbmsgb2YgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tOgooVGVzdFdlYktpdEFQ
STo6VEVTVCk6CgpTb3VyY2UvV2ViQ29yZToKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZA
YXBwbGUuY29tPiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBT
b3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBw
bGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgooV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3JlOjpjYXRlZ29yeU5hbWUpOiBEZWxldGVkLgoqIHBs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcC4KKFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpjYXRl
Z29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnlP
dmVycmlkZSk6CgpGaXggdW5pZmllZCBidWlsZCBmYWlsdXJlcy4KKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKClNvdXJjZS9XZWJD
b3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29tPiBvbiAyMDIw
LTA0LTEwClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHNvZnRsaW5rIGZvciBBVkF1
ZGlvUm91dGluZ0FyYml0ZXIuCgoqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgoq
IHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKClNvdXJjZS9XZWJLaXQ6Cgo8cmRh
cjovL3Byb2JsZW0vNTkxMTM5OTQ+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBh
IG5ldyBjcm9zcy1wcm9jZXNzIG9iamVjdCBwYWlyLCBBdWRpb1Nlc3Npb25Sb3V0ZXJBYml0cmF0
b3IvUHJveHkgd2hpY2ggcGFzc2VzIHJvdXRpbmcKYXJiaXRyYXRpb24gY29tbWFuZHMgZnJvbSBX
ZWJDb250ZW50IC0+IFVJUHJvY2Vzcy4gQmVjYXVzZSB0aGUgVUlQcm9jZXNzIGNhbiByZXByZXNl
bnQKbXVsdGlwbGUgV2ViQ29udGVudCBwcm9jZXNzZXMsIGl0IG11c3QgdHJhY2sgYWxsIG91dHN0
YW5kaW5nIGFyYml0cmF0aW9uIHJlcXVlc3RzIGdsb2JhbGx5LgoKKiBEZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0OgoqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgoqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CiogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKFdlYktpdDo6
R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgoqIFVJUHJvY2Vzcy9Db2NvYS9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgoqIFVJUHJv
Y2Vzcy9Db2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmlu
OiBBZGRlZC4KKiBVSVByb2Nlc3MvQ29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5tbTogQWRkZWQuCihXZWJLaXQ6OlNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNl
KToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JB
cmJpdHJhdG9yKToKKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQXJiaXRy
YXRpb25Gb3JBcmJpdHJhdG9yKToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJLaXQ6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbik6Ciog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVs
YXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgoqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nl
c3NQcm94eSk6CiogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgoqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKFdl
YktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgoqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CiogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHA6IEFk
ZGVkLgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3IpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6c3VwcGxlbWVudE5hbWUpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24pOgoqIFdlYlBy
b2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDogQWRkZWQuCiogV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CihXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZSk6CiogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKClNvdXJjZS9XVEY6
CgpQYXRjaCBieSBQZW5nIExpdSA8cGVuZy5saXU2QGFwcGxlLmNvbT4gb24gMjAyMC0wNC0xMApS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBtYWNybyBIQVZFX0FWQVVESU9fUk9VVElO
R19BUkJJVEVSLgoKKiB3dGYvUGxhdGZvcm1IYXZlLmg6CgoqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06CihUZXN0V2ViS2l0QVBJ
OjpURVNUKToKLS0tCiBTb3VyY2UvV1RGL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgMTEgKysKIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCAgICAgICAg
ICB8ICAgNCArCiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCAgICAgICAgICAgICAgICAg
fCAgIDQgKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwg
IDIwICsrKwogU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgIHwg
IDEyICsrCiAuLi4vUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oICAgICAgfCAg
IDQgKwogLi4uL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gICAgIHwgICA0
ICsKIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgICAgICAgICAgICAgICB8ICAgMiAr
LQogLi4uL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgICA0ICst
CiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwICAgfCAgMjcgKysr
CiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uaCAgfCAgNTggKysr
KystCiAuLi4vcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSAgICAgfCAgMjEg
Ky0tCiAuLi5BdWRpb1Nlc3Npb25NYWMuY3BwID0+IEF1ZGlvU2Vzc2lvbk1hYy5tbX0gfCAgNzMg
KysrKysrLS0KIC4uLi9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCAgICB8
ICAgMyArLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwg
IDU1ICsrKysrKwogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
IHwgICAxICsKIC4uLi9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgICB8
ICAgMyArCiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgICAgICAgICAgICAgfCAg
IDMgKwogU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwICAgICAgIHwgICAy
ICstCiBTb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0ICAgICAgICAgICAgICAgICAgICAgfCAgIDIg
KwogLi4uL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tICAgIHwgICAyICst
CiAuLi4vQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgICAgfCAgNTkgKysr
KysrKwogLi4uL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCAgICAgIHwgIDY4
ICsrKysrKysKIC4uLm9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiB8
ICAyOCArKysKIC4uLkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbSB8
IDE2NyArKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oICAgICAgICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwICAgfCAgIDcgKwogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggICAgIHwgICA1ICsKIC4uLi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogICB8ICA0MCArKysrKwogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgIHwgICAyICstCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgICAgICAgfCAgIDggKwogLi4uL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcCAgIHwgIDY1ICsrKysrKysKIC4uLi9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvci5oICAgICB8ICA2MSArKysrKysrCiAuLi4vY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwICAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluICAgICB8ICAgMSArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgMTIgKysKIC4uLi9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rVGVzdC5tbSB8ICAgNCArCiAzNyBmaWxlcyBjaGFuZ2VkLCA4MDYgaW5zZXJ0aW9ucygrKSwg
NDMgZGVsZXRpb25zKC0pCiByZW5hbWUgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFj
L3tBdWRpb1Nlc3Npb25NYWMuY3BwID0+IEF1ZGlvU2Vzc2lvbk1hYy5tbX0gKDc3JSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KIGNyZWF0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5Q29jb2EubW0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg1NTkwZjkyMDliLi43MzY1MGQyMzliNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNC0xMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9y
IE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IG1hY3JvIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIuCisKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm1IYXZlLmg6CisKIDIwMjAtMDQtMTAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtXVEZdIERhdGFNdXRleDogQWRkIHJ1blVubG9ja2VkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA2YTNhNTE3NDQwNi4uOGFlZmRh
Njg0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTI4NCwzICsyODQs
NyBAQAogI2lmICFkZWZpbmVkKEVOQUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIpICYmIChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykpCiAjZGVmaW5lIEVOQUJMRV9T
SUdJTExfQ1JBU0hfQU5BTFlaRVIgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZpbmUgRU5BQkxF
X1JPVVRJTkdfQVJCSVRSQVRJT04gMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDE2
NmExMzVkN2UwLi4zNzEwMjVjZTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY2OSwzICs2
NjksNyBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBIQVZFX0lPU19K
SVRfUkVTVFJJQ1RJT05TIDEKICNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDApCisjZGVmaW5lIEhBVkVfQVZBVURJ
T19ST1VUSU5HX0FSQklURVIgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODEuLjYw
NGY5NDBiMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMTAgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZB
dWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9z
L0F1ZGlvU2Vzc2lvbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y2F0ZWdvcnlOYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAu
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnlPdmVycmlkZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5T3ZlcnJpZGUpOgorCisgICAgICAg
IEZpeCB1bmlmaWVkIGJ1aWxkIGZhaWx1cmVzLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oOgorCiAyMDIwLTA0LTA2
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBw
bGF5YmFjayBvZiByZW1vdGUgYXVkaW8gdHJhY2tzIGlzIHN0YWJsZSBldmVuIGlmIHBhZ2VzIGFy
ZSB1c2luZyB3ZWJhdWRpbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggOGJmMWVmNDA5NzYuLmYzZDkx
YmRlOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xMCAg
UGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFj
ZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNvZnRsaW5rIGZvciBBVkF1ZGlvUm91dGluZ0Fy
Yml0ZXIuCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAg
ICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CisKIDIwMjAtMDQtMDgg
IERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFRyYWNrIGVkaXRh
YmxlIGVsZW1lbnRzIG9uIHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGUxZjIxM2VhNWVkLi4xMjc4MzUzN2M0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaApAQCAtNzgsNiArNzgsMTAgQEAgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIo
UEFMLCBBVlNwZWVjaFN5bnRoZXNpemVyKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFM
LCBBVlNwZWVjaFV0dGVyYW5jZSkKICNlbmRpZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKK1NPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZBdWRpb1JvdXRpbmdB
cmJpdGVyKQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZSb3V0ZURldGVjdG9yKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9I
RUFERVIoUEFMLCBBVlZpZGVvUGVyZm9ybWFuY2VNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggNTFiNjYz
NmFhZTEuLmEyY2ZiN2U0YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTEwNCw2ICsxMDQsMTAgQEAgU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Bl
ZWNoU3ludGhlc2l6ZXIsIFAKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNwZWVjaFV0dGVyYW5jZSwgUEFMX0VYUE9SVCkKICNlbmRp
ZgogCisjaWYgSEFWRShBVkFVRElPX1JPVVRJTkdfQVJCSVRFUikKK1NPRlRfTElOS19DTEFTU19G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvUm91dGluZ0Fy
Yml0ZXIsIFBBTF9FWFBPUlQpCisjZW5kaWYKKwogI2lmICFQTEFURk9STShXQVRDSE9TKQogU09G
VF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFW
Um91dGVEZXRlY3RvciwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09Q
VElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlZpZGVvUGVyZm9ybWFuY2VN
ZXRyaWNzLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGJhZmQzNmZh
NjUuLjU4ZjVlZDgxMmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTE4MSw3ICsxODEs
NyBAQCBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9CdXNNYWMubW0KIHBsYXRmb3JtL2F1ZGlvL21h
Yy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRmlsZVJl
YWRlck1hYy5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0hhcmR3YXJlTGlzdGVuZXJNYWMu
Y3BwCi1wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcAorcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQogcGxhdGZvcm0vYXVkaW8vbWFjL0NBUmluZ0J1ZmZl
ci5jcHAKIHBsYXRmb3JtL2F1ZGlvL21hYy9GRlRGcmFtZU1hYy5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEyMWJkNTBl
ZTM4Li4zMGM3ZjM1ZmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM5NDcsNyArMTM5NDcsNyBAQAogCQlDRDUzOTNEMjE3
NUUwMTg2MDBDMDcxMjMgLyogSlNNZW1vcnlJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVtb3J5SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDU0QTc2MDE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDU0QTc2MTE4MEY5RjcwMDBCMDc2QzkgLyogQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQ0Q1NERFNDkxNzQ2OUM2RDAwNUU1QjM2IC8qIEF1ZGlvU2Vzc2lvbk1hYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVCMzYgLyogQXVk
aW9TZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXVkaW9TZXNzaW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU1OTY4
RjE0NzVCNjc4MDAxRDBCRDAgLyogQXVkaW9GaWxlUmVhZGVySU9TLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvRmlsZVJlYWRlcklPUy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjkwMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0Zp
bGVSZWFkZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9GaWxl
UmVhZGVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTg5NDkzMjE4NzQw
NjQwMDRGNDI0QSAvKiBJbWFnZUJ1ZmZlclV0aWxpdGllc0NHLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEltYWdlQnVmZmVyVXRpbGl0aWVzQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjkxNjAsNyArMjkxNjAsNyBAQAogCQkJCTA3M0I4NzYzMUU0Mzg1OUQwMDcxQzBFQyAv
KiBBdWRpb1NhbXBsZUJ1ZmZlckxpc3QuaCAqLywKIAkJCQkwNzNCODc2NTFFNDM4NTlEMDA3MUMw
RUMgLyogQXVkaW9TYW1wbGVEYXRhU291cmNlLmggKi8sCiAJCQkJMDczQjg3NjQxRTQzODU5RDAw
NzFDMEVDIC8qIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbSAqLywKLQkJCQlDRDU0REU0OTE3NDY5
QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLywKKwkJCQlDRDU0REU0OTE3NDY5
QzZEMDA1RTVCMzYgLyogQXVkaW9TZXNzaW9uTWFjLm1tICovLAogCQkJCTA3M0I4NzU3MUU0MERD
RkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uY3BwICovLAogCQkJCTA3M0I4
NzU4MUU0MERDRkQwMDcxQzBFQyAvKiBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCAqLywKIAkJ
CQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCmluZGV4IDliMmZh
ZTU2ZGQxLi41MWE4ZDNhMjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uY3BwCkBAIC0yMDAsNiArMjAwLDMzIEBAIFN0cmluZyBjb252ZXJ0RW51
bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBlbnVtZXJhdGlvblZh
bHVlKQogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwg
V1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpKTsKICAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0
PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSldOwogfQorCitTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5n
QXJiaXRyYXRpb25FcnJvciBlbnVtZXJhdGlvblZhbHVlKQoreworICAgIHN0YXRpYyBjb25zdCBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0geworICAgICAgICBNQUtFX1NUQVRJQ19T
VFJJTkdfSU1QTCgiTm9uZSIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiRmFp
bGVkIiksCisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJDYW5jZWxsZWQiKSwKKyAg
ICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSks
ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yOjpOb25lIGlzIG5vdCAwIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6
Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6OkZhaWxlZCksICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpGYWlsZWQgaXMgbm90IDEg
YXMgZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJv
cjo6Q2FuY2VsbGVkKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3I6OkNhbmNlbGxlZCBpcyBub3QgMiBhcyBleHBlY3RlZCIpOwor
ICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FS
UkFZX0xFTkdUSCh2YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVf
dD4oZW51bWVyYXRpb25WYWx1ZSldOworfQorCitTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVD
aGFuZ2VkIGVudW1lcmF0aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJObyIpLAorICAgICAgICBNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiWWVzIiksCisgICAgfTsK
KyAgICBzdGF0aWNfYXNzZXJ0KCFzdGF0aWNfY2FzdDxib29sPihBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vKSwgIkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8gaXMgbm90
IGZhbHNlIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDxib29s
PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5n
ZWQ6OlllcyksICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQ6OlllcyBpcyBub3QgdHJ1ZSBhcyBleHBlY3RlZCIpOworICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxzaXplX3Q+KGVudW1lcmF0aW9uVmFsdWUpIDwgV1RGX0FSUkFZX0xFTkdUSCh2
YWx1ZXMpKTsKKyAgICByZXR1cm4gdmFsdWVzW3N0YXRpY19jYXN0PHNpemVfdD4oZW51bWVyYXRp
b25WYWx1ZSldOworfQorCiB9CiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VTU0lPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmgKaW5kZXggNjM3ZDI5MzVj
OTQuLjkwNzE4M2JkYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b1Nlc3Npb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBVURJT19TRVNTSU9OKQogCiAj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC00Niw2ICs0Nyw4IEBAIGVudW0gY2xh
c3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdCB7CiAgICAgTG9uZ0Zvcm1WaWRlbwogfTsK
IAorY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OworCiBjbGFzcyBX
RUJDT1JFX0VYUE9SVCBBdWRpb1Nlc3Npb24gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlvU2Vzc2lvbik7CkBAIC0xMTMsNiArMTE2
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgeyByZXR1
cm4gbV9hY3RpdmU7IH0KIAorICAgIHZvaWQgc2V0Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50KFdl
YWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50PiYmIGNsaWVudCkgeyBt
X3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCA9IGNsaWVudDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEF1ZGlvU2Vzc2lvbj47CiAgICAgQXVkaW9TZXNz
aW9uKCk7CkBAIC0xMjQsMTEgKzEyOSwyOCBAQCBwcm90ZWN0ZWQ6CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBXZWFrSGFzaFNldDxJbnRlcnJ1cHRpb25PYnNlcnZlcj4gbV9pbnRlcnJ1
cHRpb25PYnNlcnZlcnM7CiAjZW5kaWYKKworICAgIFdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0aW9uQ2xpZW50PiBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsKICAgICBib29s
IG1fYWN0aXZlIHsgZmFsc2UgfTsgLy8gVXNlZCBvbmx5IGZvciB0ZXN0aW5nLgogfTsKIAotU3Ry
aW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7Ci1TdHJp
bmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUp
OworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICBlbnVtIGNsYXNzIFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yIDogdWludDhfdCB7IE5vbmUsIEZhaWxlZCwgQ2FuY2VsbGVkIH07CisgICAgZW51bSBj
bGFzcyBEZWZhdWx0Um91dGVDaGFuZ2VkIDogYm9vbCB7IE5vLCBZZXMgfTsKKworICAgIHZpcnR1
YWwgdm9pZCBiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShBdWRpb1Nlc3Npb246
OkNhdGVnb3J5VHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSb3V0aW5nQXJiaXRyYXRpb25F
cnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGVh
dmVSb3V0aW5nQWJyaXRyYXRpb24oKSA9IDA7CisKKyAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0g
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKFJvdXRlU2hhcmluZ1BvbGljeSk7
CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGUpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91
dGluZ0FyYml0cmF0aW9uRXJyb3IpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvbnZlcnRFbnVt
ZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVm
YXVsdFJvdXRlQ2hhbmdlZCk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApAQCAtMTY0LDYg
KzE4NiwyMyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nl
c3Npb246Ok1heVJlc3VtZT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJv
dXRpbmdBcmJpdHJhdGlvbkVycm9yPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlcyA8
CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0
aW5nQXJiaXRyYXRpb25FcnJvciwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lLAorICAgIFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3I6OkZhaWxlZCwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQKKyAgICA+Owor
fTsKKwordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlcyA8CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkLAorICAgIFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6
Tm8sCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpE
ZWZhdWx0Um91dGVDaGFuZ2VkOjpZZXMKKyAgICA+OworfTsKKwogdGVtcGxhdGU8dHlwZW5hbWUg
VHlwZT4KIHN0cnVjdCBMb2dBcmd1bWVudDsKIApAQCAtMTgzLDYgKzIyMiwyMSBAQCBzdHJ1Y3Qg
TG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IHsKICAgICB9
CiB9OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsK
KyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3IgZXJyb3IpCisg
ICAgeworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoZXJyb3IpOwor
ICAgIH0KK307Cit0ZW1wbGF0ZSA8Pgorc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZD4gewor
ICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkIGNoYW5nZWQpCisgICAg
eworICAgICAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY2hhbmdlZCk7Cisg
ICAgfQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZiAvLyBVU0UoQVVESU9fU0VT
U0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b1Nlc3Npb25JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9T
ZXNzaW9uSU9TLm1tCmluZGV4IGMyNWEwY2FhNTczLi44ZDdiYjk0MzNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCkBA
IC05NiwyNSArOTYsNiBAQCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotI2lmICFMT0df
RElTQUJMRUQKLXN0YXRpYyBjb25zdCBjaGFyKiBjYXRlZ29yeU5hbWUoQXVkaW9TZXNzaW9uOjpD
YXRlZ29yeVR5cGUgY2F0ZWdvcnkpCi17Ci0jZGVmaW5lIENBU0UoY2F0ZWdvcnkpIGNhc2UgQXVk
aW9TZXNzaW9uOjpjYXRlZ29yeTogcmV0dXJuICNjYXRlZ29yeQotICAgIHN3aXRjaCAoY2F0ZWdv
cnkpIHsKLSAgICAgICAgQ0FTRShOb25lKTsKLSAgICAgICAgQ0FTRShBbWJpZW50U291bmQpOwot
ICAgICAgICBDQVNFKFNvbG9BbWJpZW50U291bmQpOwotICAgICAgICBDQVNFKE1lZGlhUGxheWJh
Y2spOwotICAgICAgICBDQVNFKFJlY29yZEF1ZGlvKTsKLSAgICAgICAgQ0FTRShQbGF5QW5kUmVj
b3JkKTsKLSAgICAgICAgQ0FTRShBdWRpb1Byb2Nlc3NpbmcpOwotICAgIH0KLSAgICAKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7Ci19Ci0jZW5kaWYKLQogY2xhc3Mg
QXVkaW9TZXNzaW9uUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC0xNTUsNyArMTM2LDcgQEAgdm9pZCBBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KENh
dGVnb3J5VHlwZSBuZXdDYXRlZ29yeSwgUm91dGVTaGFyaW5nUG9saWN5IHBvbGkKICAgICAgICAg
cG9saWN5ID0gUm91dGVTaGFyaW5nUG9saWN5OjpMb25nRm9ybUF1ZGlvOwogI2VuZGlmCiAKLSAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRlZ29yeSA9ICVz
IiwgY2F0ZWdvcnlOYW1lKG5ld0NhdGVnb3J5KSk7CisgICAgTE9HKE1lZGlhLCAiQXVkaW9TZXNz
aW9uOjpzZXRDYXRlZ29yeSgpIC0gY2F0ZWdvcnkgPSAlcyIsIGNvbnZlcnRFbnVtZXJhdGlvblRv
U3RyaW5nKG5ld0NhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSk7CiAKICAgICBpZiAoY2F0ZWdvcnlP
dmVycmlkZSgpICYmIGNhdGVnb3J5T3ZlcnJpZGUoKSAhPSBuZXdDYXRlZ29yeSkgewogICAgICAg
ICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBvdmVycmlkZSBzZXQs
IE5PVCBjaGFuZ2luZyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9TZXNzaW9uTWFjLm1tCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFj
Lm1tCmluZGV4IGNjMDRmMGJlMzA5Li5kZDYyMzBkMmM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbQpAQCAtMjMsMTcg
KzIzLDE5IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb24uaCIKIAogI2lmIFVTRShBVURJT19TRVNTSU9O
KSAmJiBQTEFURk9STShNQUMpCiAKLSNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNs
dWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlIDxD
b3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24u
aCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCisjaW1w
b3J0IDxDb3JlQXVkaW8vQXVkaW9IYXJkd2FyZS5oPgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQu
aD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw2
ICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIDogbGFzdE11dGVkU3RhdGUobXV0ZWRTdGF0ZSkg
eyB9CiAgICAgYm9vbCBsYXN0TXV0ZWRTdGF0ZTsKICAgICBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBjYXRlZ29yeSB7IEF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworI2lmIEVOQUJMRShST1VUSU5H
X0FSQklUUkFUSU9OKQorICAgIGJvb2wgc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxzZSB9
OworI2VuZGlmCisgICAgQXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgbV9jYXRlZ29yeU92ZXJy
aWRlOwogfTsKIAogQXVkaW9TZXNzaW9uOjpBdWRpb1Nlc3Npb24oKQpAQCAtNzUsMTggKzgxLDYx
IEBAIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6Y2F0ZWdvcnkoKSBj
b25zdAogCiB2b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIGNhdGVn
b3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3kpCiB7CisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJ
T04pCisgICAgaWYgKGNhdGVnb3J5ID09IEFtYmllbnRTb3VuZCB8fCBjYXRlZ29yeSA9PSBTb2xv
QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IEF1ZGlvUHJvY2Vzc2luZykgeworICAgICAgICBt
X3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAoY2F0ZWdvcnkgPT0gbV9wcml2YXRlLT5jYXRlZ29yeSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkg
LSBhIGJlZ2luQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkgaXMgc3RpbGwgb25nb2luZyIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgIT0gTm9u
ZSkKKyAgICAgICAgbV9yb3V0aW5nQXJiaXRyYXRpb25DbGllbnQtPmxlYXZlUm91dGluZ0Ficml0
cmF0aW9uKCk7CisKICAgICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisgICAgaWYg
KG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPT0gTm9uZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdXNp
bmcgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOworICAgIHVzaW5nIERlZmF1bHRSb3V0
ZUNoYW5nZWQgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRS
b3V0ZUNoYW5nZWQ7CisKKyAgICBtX3JvdXRpbmdBcmJpdHJhdGlvbkNsaWVudC0+YmVnaW5Sb3V0
aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkobV9wcml2YXRlLT5jYXRlZ29yeSwgW3RoaXNdIChS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvciwgRGVmYXVsdFJvdXRlQ2hhbmdlZCBkZWZhdWx0
Um91dGVDaGFuZ2VkKSB7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0dXBBcmJpdHJhdGlvbk9uZ29p
bmcgPSBmYWxzZTsKKyAgICAgICAgaWYgKGVycm9yICE9IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9y
OjpOb25lKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkF1ZGlvU2Vz
c2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGJlZ2luQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnk6JXMgZmFp
bGVkIHdpdGggZXJyb3IgJXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhtX3ByaXZhdGUt
PmNhdGVnb3J5KS5hc2NpaSgpLmRhdGEoKSwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoZXJy
b3IpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIHRvIHJlc2V0IHNhbXBsZSByYXRlIGFuZCBidWZm
ZXIgc2l6ZSBmb3IgdGhlIG5ldyBkZWZhdWx0IGRldmljZT8KKyAgICAgICAgaWYgKGRlZmF1bHRS
b3V0ZUNoYW5nZWQgPT0gRGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzKQorICAgICAgICAgICAgTE9H
KE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdFJvdXRlQ2hhbmdl
ZCEiKTsKKyAgICB9KTsKKyNlbHNlCisgICAgbV9wcml2YXRlLT5jYXRlZ29yeSA9IGNhdGVnb3J5
OworI2VuZGlmCiB9CiAKIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIEF1ZGlvU2Vzc2lvbjo6
Y2F0ZWdvcnlPdmVycmlkZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gTm9uZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGU7CiB9
CiAKLXZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSkK
K3ZvaWQgQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeU92ZXJyaWRlKENhdGVnb3J5VHlwZSBjYXRl
Z29yeSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChtX3ByaXZhdGUtPm1fY2F0
ZWdvcnlPdmVycmlkZSA9PSBjYXRlZ29yeSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcml2
YXRlLT5tX2NhdGVnb3J5T3ZlcnJpZGUgPSBjYXRlZ29yeTsKKyAgICBzZXRDYXRlZ29yeShjYXRl
Z29yeSwgUm91dGVTaGFyaW5nUG9saWN5OjpEZWZhdWx0KTsKIH0KIAogZmxvYXQgQXVkaW9TZXNz
aW9uOjpzYW1wbGVSYXRlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZUNvY29hLmgKaW5kZXggMTRkZDRkOTE2NzIuLjFkN2NkOTZjOGI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNv
bWluZ0F1ZGlvU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaWYgVVNFKExJQldFQlJUQykKIAorI2luY2x1ZGUgIkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIlJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5oIgog
I2luY2x1ZGUgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgogI2luY2x1ZGUgPENvcmVBdWRpby9Db3Jl
QXVkaW9UeXBlcy5oPgpAQCAtMzcsOCArMzgsNiBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFx
dWVDTUZvcm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOwotCiBj
bGFzcyBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYSBmaW5hbCA6IHB1YmxpYyBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UmVhbHRp
bWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2E+IGNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcmJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5YjQw
NzY2OGJiLi5kZTc4OTVlYjBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAyMC0wNC0x
MCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRl
cmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE2NworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTkxMTM5OTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJv
dXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZworICAgICAgICBhcmJpdHJh
dGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBV
SVByb2Nlc3MgY2FuIHJlcHJlc2VudAorICAgICAgICBtdWx0aXBsZSBXZWJDb250ZW50IHByb2Nl
c3NlcywgaXQgbXVzdCB0cmFjayBhbGwgb3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMg
Z2xvYmFsbHkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgorICAg
ICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENh
dGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OmRlc3RpbmF0aW9uSWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29h
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5z
dGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJh
dG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdp
blJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3Byb2Nl
c3NEaXNwbGF5TmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlv
bldpdGhDYXRlZ29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9j
b2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNz
LnNiLmluOgorCiAyMDIwLTA0LTEwICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIFdBUk5fVU5VU0VEX1JFVFVSTiB0byBkZWNvZGUgbWV0aG9kcyBpbiBX
ZWJDb3JlQXJndW1lbnRDb2RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCA4ZjQ5Njg4YTY3OS4uOGJkYjUxYTE2ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTkzLDYgKzkzLDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDUzNWE2N2Q3ZDE1
Li5kMTAwNDYzMzlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0xLDQgKzEsNyBAQAogIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5
IHRoZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyBzY3JpcHQuCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
QXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAyZDU5ZDg2YmMyYS4uNmM3MzFjNThm
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTg2LDYgKzg2LDggQEAgVlBBVEgg
PSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvR1BVIFwKICAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9JbnNwZWN0b3IgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2Vu
dHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL01lZGlhIFwKKyAgICAkKFdlYktpdDIpL1VJ
UHJvY2Vzcy9NZWRpYS9jb2NvYSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nlc3MvTWVkaWFTdHJl
YW0gXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0Mikv
VUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzIFwKQEAgLTExMCw2ICsxMTIsNyBAQCBl
bHNlCiBlbmRpZgogCiBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKKwlBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5IFwKICAgICBBdXRoZW50aWNhdGlvbk1hbmFnZXIgXAogICAgIEF1eGls
aWFyeVByb2Nlc3MgXAogICAgIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCmluZGV4IGVmMjM5NWVjNTlmLi45NTA3NmYy
NjQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcg
KzEyNCw3IEBAIHZvaWQgR1BVUHJvY2Vzczo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1
cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVO
QUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6
c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKaW5kZXggNDdjY2JlZDQ1MWMuLmQzODRjZTU2NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ0
MSw2ICs0NDEsOCBAQCBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9s
bGVyLmNwcAogCiBVSVByb2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdl
bnQuY3BwCiAKK1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5LmNwcAorCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDE3YjViZGM3Y2VmLi42ZmY3Y2M3ZWVmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRp
YVJlbGF0ZWRNYWNoU2VydmljZXMoKQogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCiAgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhw
YyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50cGxheWJhY2tzZXNzaW9uLnhwYyIsCiAg
ICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50cmVtb3RlY29udHJvbHNlc3Npb24u
eHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9kZWNvZGVyIiwKLSAgICAgICAgImNvbS5h
cHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVyIgorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRp
YS52aWRlb2VuY29kZXIiLCAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgogI2VuZGlmCiAg
ICAgfSk7CiAgICAgcmV0dXJuIHNlcnZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWM5MzYz
YjViNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5LmgiCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikg
JiYgIUhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNz
KHByb3h5KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjYWxsYmFjayhSb3V0aW5nQXJi
aXRyYXRpb25FcnJvcjo6RmFpbGVkLCBEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7Cit9CisKK3Zv
aWQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRy
YXRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmM5ZTE4NmI3NjYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCkBA
IC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShS
T1VUSU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5CisgICAgOiBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNzUHJv
eHkmKTsKKyAgICB2aXJ0dWFsIH5BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCk7
CisKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2F0ZWdvcnk7IH0KKworICAgIHN0YXRpYyB1aW50NjRfdCBkZXN0aW5h
dGlvbklkKCkgeyByZXR1cm4gMTsgfQorCisgICAgdXNpbmcgUm91dGluZ0FyYml0cmF0aW9uRXJy
b3IgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yOworICAgIHVzaW5nIERlZmF1bHRSb3V0ZUNoYW5nZWQgPSBXZWJD
b3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNo
YW5nZWQ7CisgICAgdXNpbmcgQXJiaXRyYXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0ZUNoYW5nZWQpPjsKKwor
cHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKKyAgICAv
LyBNZXNzYWdlcworICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnko
V2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIEFyYml0cmF0aW9uQ2FsbGJhY2sm
Jik7CisgICAgdm9pZCBsZWF2ZVJvdXRpbmdBcmJpdHJhdGlvbigpOworCisgICAgV2ViUHJvY2Vz
c1Byb3h5JiBtX3Byb2Nlc3M7CisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5
cGUgbV9jYXRlZ29yeSB7IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Tm9uZSB9OworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2VmMjhmNzZi
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOCBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFJP
VVRJTkdfQVJCSVRSQVRJT04pCittZXNzYWdlcyAtPiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIEJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0
aENhdGVnb3J5KGVudW06dWludDhfdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlw
ZSBjYXRlZ29yeSkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVycm9yLCBlbnVtOmJvb2wg
V2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpEZWZhdWx0Um91dGVD
aGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIEFzeW5jCisgICAgTGVhdmVSb3V0aW5nQXJiaXRy
YXRpb24oKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5jMjBlNWI4ODAxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5t
bQpAQCAtMCwwICsxLDE2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorCisjaWYgRU5BQkxF
KFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUoQVZBVURJT19ST1VUSU5HX0FSQklURVIpCisK
KyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgor
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJX
ZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW1w
b3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworY2xhc3MgU2hhcmVkQXJiaXRyYXRvciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFNoYXJlZEFyYml0cmF0b3ImIHNoYXJlZEluc3RhbmNlKCk7CisKKyAgICB1c2luZyBSb3V0aW5n
QXJiaXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6
Um91dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9
IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdl
ZDsKKyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNrID0gQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6QXJiaXRyYXRpb25DYWxsYmFjazsKKworICAgIHZvaWQgYmVnaW5Sb3V0
aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkmLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQgbGVhdmVSb3V0aW5nQXJi
aXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkm
KTsKKworcHJpdmF0ZToKKyAgICBPcHRpb25hbDxBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZT4g
bV9jdXJyZW50Q2F0ZWdvcnkgeyBBdWRpb1Nlc3Npb246Ok5vbmUgfTsKKyAgICBXZWFrSGFzaFNl
dDxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5PiBtX2FyYml0cmF0b3JzOworICAg
IFZlY3RvcjxBcmJpdHJhdGlvbkNhbGxiYWNrPiBtX2VucXVldWVkQ2FsbGJhY2tzOworICAgIGJv
b2wgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZhbHNlIH07Cit9OworCitTaGFyZWRBcmJp
dHJhdG9yJiBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFNoYXJlZEFyYml0cmF0b3I+IGluc3RhbmNlOworICAgIHJldHVybiBp
bnN0YW5jZTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJh
dGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSYgcHJv
eHksIEFyYml0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoIW1fYXJi
aXRyYXRvcnMuY29udGFpbnMocHJveHkpKTsKKyAgICBtX2FyYml0cmF0b3JzLmFkZChwcm94eSk7
CisKKyAgICBpZiAobV9zZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBtX2VucXVl
dWVkQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHJlcXVlc3RlZENhdGVnb3J5ID0gcHJveHkuY2F0ZWdvcnkoKTsK
KworICAgIGlmIChtX2N1cnJlbnRDYXRlZ29yeSkgeworICAgICAgICBpZiAoKm1fY3VycmVudENh
dGVnb3J5ID49IHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgICAgICAgICBjYWxsYmFjayhSb3V0
aW5nQXJiaXRyYXRpb25FcnJvcjo6Tm9uZSwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgW1tQQUw6OmdldEFWQXVkaW9S
b3V0aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVkUm91dGluZ0FyYml0ZXJdIGxlYXZlQXJiaXRyYXRp
b25dOworICAgIH0KKworICAgIG1fY3VycmVudENhdGVnb3J5ID0gcmVxdWVzdGVkQ2F0ZWdvcnk7
CisKKyAgICBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnkgYXJiaXRyYXRpb25DYXRl
Z29yeTsKKyAgICBzd2l0Y2ggKHJlcXVlc3RlZENhdGVnb3J5KSB7CisgICAgY2FzZSBBdWRpb1Nl
c3Npb246Ok1lZGlhUGxheWJhY2s6CisgICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1
ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0ZWdvcnlQbGF5YmFjazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBdWRpb1Nlc3Npb246OlJlY29yZEF1ZGlvOgorICAgICAgICBhcmJpdHJhdGlvbkNh
dGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdWRpb1Nlc3Npb246OlBsYXlBbmRSZWNvcmQ6Cisg
ICAgICAgIGFyYml0cmF0aW9uQ2F0ZWdvcnkgPSBBVkF1ZGlvUm91dGluZ0FyYml0cmF0aW9uQ2F0
ZWdvcnlQbGF5QW5kUmVjb3JkVm9pY2U7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIG1fc2V0dXBBcmJpdHJh
dGlvbk9uZ29pbmcgPSB0cnVlOworICAgIG1fZW5xdWV1ZWRDYWxsYmFja3MuYXBwZW5kKFdURk1v
dmUoY2FsbGJhY2spKTsKKworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFz
cygpIHNoYXJlZFJvdXRpbmdBcmJpdGVyXSBiZWdpbkFyYml0cmF0aW9uV2l0aENhdGVnb3J5OmFy
Yml0cmF0aW9uQ2F0ZWdvcnkgY29tcGxldGlvbkhhbmRsZXI6W3RoaXNdKEJPT0wgZGVmYXVsdERl
dmljZUNoYW5nZWQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpIHsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgZGVmYXVsdERldmljZUNoYW5nZWQsIGVycm9yID0gcmV0YWluUHRy
KGVycm9yKV0geworICAgICAgICAgICAgbV9zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IGZhbHNl
OworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhLCAiU2hhcmVkQXJiaXRyYXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JB
cmJpdHJhdG9yOiAlcyBmYWlsZWQgd2l0aCBlcnJvciAlczolcyIsIGNvbnZlcnRFbnVtZXJhdGlv
blRvU3RyaW5nKCptX2N1cnJlbnRDYXRlZ29yeSkuYXNjaWkoKS5kYXRhKCksIFtbZXJyb3IgZG9t
YWluXSBVVEY4U3RyaW5nXSwgW1tlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0gVVRGOFN0cmlu
Z10pOworCisgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byByZXNldCBzYW1wbGUg
cmF0ZSBhbmQgYnVmZmVyIHNpemUgZm9yIHRoZSBuZXcgZGVmYXVsdCBkZXZpY2U/CisgICAgICAg
ICAgICBpZiAoZGVmYXVsdERldmljZUNoYW5nZWQpCisgICAgICAgICAgICAgICAgTE9HKE1lZGlh
LCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gZGVmYXVsdERldmljZUNoYW5nZWQhIik7
CisKKyAgICAgICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtX2VucXVldWVkQ2FsbGJhY2tz
KQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gUm91dGluZ0FyYml0cmF0aW9uRXJy
b3I6OkZhaWxlZCA6IFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lLCBkZWZhdWx0RGV2aWNl
Q2hhbmdlZCA/IERlZmF1bHRSb3V0ZUNoYW5nZWQ6OlllcyA6IERlZmF1bHRSb3V0ZUNoYW5nZWQ6
Ok5vKTsKKworICAgICAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOworICAgICAg
ICB9KTsKKyAgICB9XTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdB
cmJpdHJhdGlvbkZvckFyYml0cmF0b3IoQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSYgcHJveHkpCit7CisgICAgQVNTRVJUKG1fYXJiaXRyYXRvcnMuY29udGFpbnMocHJveHkpKTsK
KyAgICBtX2FyYml0cmF0b3JzLnJlbW92ZShwcm94eSk7CisKKyAgICBpZiAoIW1fYXJiaXRyYXRv
cnMuY29tcHV0ZXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGNh
bGxiYWNrIDogbV9lbnF1ZXVlZENhbGxiYWNrcykKKyAgICAgICAgY2FsbGJhY2soUm91dGluZ0Fy
Yml0cmF0aW9uRXJyb3I6OkNhbmNlbGxlZCwgRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworCisg
ICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5jbGVhcigpOworICAgIG1fY3VycmVudENhdGVnb3J5LnJl
c2V0KCk7CisgICAgW1tQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCkgc2hhcmVk
Um91dGluZ0FyYml0ZXJdIGxlYXZlQXJiaXRyYXRpb25dOworfQorCitBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KFdl
YlByb2Nlc3NQcm94eSYgcHJveHkpCisgICAgOiBtX3Byb2Nlc3MocHJveHkpCit7CisgICAgbV9w
cm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBkZXN0aW5hdGlvbklkKCksICp0
aGlzKTsKK30KKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgZGVzdGluYXRpb25JZCgpKTsKK30KKwordm9pZCBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldp
dGhDYXRlZ29yeShXZWJDb3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSwg
QXJiaXRyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIG1fY2F0ZWdvcnkgPSBjYXRl
Z29yeTsKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpLmJlZ2luUm91dGlu
Z0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcywgV1RGTW92ZShjYWxsYmFjaykpOworfQor
Cit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmxlYXZlUm91dGluZ0Fy
Yml0cmF0aW9uKCkKK3sKKyAgICBTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSgpLmxl
YXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcyk7Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3MTM2ZDUwMWI0
Li44MjM1MGI1MGM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTI3MSw2ICsyNzEsNyBAQCBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgeworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTsKIGNsYXNz
IERyYXdpbmdBcmVhUHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKIGNsYXNz
IEdhbWVwYWREYXRhOwpAQCAtMjc3NSw2ICsyNzc2LDEwIEBAIHByaXZhdGU6CiAgICAgTmF2aWdh
dGVkQXdheUZyb21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmRE
b21haW4geyBOYXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogICAgIGJvb2wg
bV9pZ25vcmVzQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1fdXNlclNjcmlw
dHNOb3RpZmllZCB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4g
bV9yb3V0aW5nQXJiaXRyYXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYWVk
ZGFkMDE3NC4uYzNhZmM1NmEwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtODcsNiArODcsMTAgQEAKICNpbmNsdWRlICJTZWNJdGVtU2hpbVBy
b3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorI2luY2x1
ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNlbmRpZgorCiAjZGVm
aW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9u
LCBjb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkgTUVTU0FHRV9D
SEVDS19CQVNFKGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBjb25uZWN0aW9u
KCkpCiAKQEAgLTE4Nyw2ICsxOTEsOSBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94
eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBt
X21heUhhdmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oZmFsc2UpCiAgICAgLCBt
X251bWJlck9mVGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkKDApCiAgICAgLCBtX3Ro
cm90dGxlcigqdGhpcywgcHJvY2Vzc1Bvb2wuc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlv
bigpKQorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgICwgbV9yb3V0aW5nQXJi
aXRyYXRvcihtYWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+
KCp0aGlzKSkKKyNlbmRpZgogICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkK
ICAgICAsIG1fdmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBk
YXRlQmFja2dyb3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURh
dGFTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCAyMTFiYjQ1NWU1ZS4uM2FiMWI4ZTIzOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIGVudW0gY2xh
c3MgVGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3Q7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OwogY2xh
c3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKIGNsYXNzIFBh
Z2VDbGllbnQ7CkBAIC01MzYsNiArNTM3LDEwIEBAIHByaXZhdGU6CiAgICAgRm9yZWdyb3VuZFdl
YlByb2Nlc3NUb2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vz
c1Rva2VuIG1fYmFja2dyb3VuZFRva2VuOwogCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJ
T04pCisgICAgVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+IG1f
cm91dGluZ0FyYml0cmF0b3I7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJv
b2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlIHsg
ZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGZhY2U5ZTI3MjMzLi5lMjYzZDFjMTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzA3LDYgKzE3MDcsOCBAQAog
CQlDRDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGlj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJF
ODIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyODY1RUUyMjU1
NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3
IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oICovOyB9OwogCQlDRDI4NjVFRjIyNTU1NjIw
MDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUQyMjU1NTYyMDAwNjA2QUM3IC8q
IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSAqLzsgfTsKKwkJQ0Q0NTcwRDMyNDQxMTNCNTAw
QTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0
NTcwRDAyNDQxMDE0QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLzsgfTsKIAkJQ0Q0NjYxODMyNDAxMEE2
NzAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ2NjE4MTI0
MDEwNTY0MDA0N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKIAkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAq
LzsgfTsKIAkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xNzIxLDYgKzE3MjMsNyBAQAog
CQlDRDc4RTExNTFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMTMxREI3RDdFRDAw
MTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q3OEUxMTcxREI3REMwQTAw
MTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxs
c2NyZWVuQ2xpZW50LmggKi87IH07CiAJCUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tG
dWxsc2NyZWVuRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlD
RDdDRjM2MTI0NDRDQ0E2MDAzQkM0RDUgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHlDb2NvYS5tbSAqLzsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJh
Y2tCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNT
UEkuaCAqLzsgfTsKIAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi87
IH07CiAJCUNEQTI5QTIwMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QTI5QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAq
LzsgfTsKQEAgLTUwMzIsNiArNTAzNSwxNSBAQAogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEg
LyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1
bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxs
c2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9i
c2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBDQTI0NDBGQjJB
MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwRDAyNDQxMDE0
QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3
MEQyMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBEQzI0NDRDQTU4MDBB
M0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RDRUIgLyogQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQ0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0Q0NjYxN0YyNDAxMDQ1ODAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vz
c2lvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgwMjQwMTA1NjQwMDQ3Q0Ez
NSAvKiBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgxMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTgzMDksNiArODMyMSw4IEBACiAJCTdDNkU3MEY4MThCMkQ0N0Uw
MEYyNEUyRSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmNwcCAqLywKKwkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFD
Q0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIw
MDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNE
QTI5QTE4MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApA
QCAtODg0MSw2ICs4ODU1LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9z
ICovLAogCQkJCUJDMTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlC
Q0NGMDg1QzExM0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCUNENDU3MEQ4MjQ0NENBMTcw
MEEzRENFQiAvKiBNZWRpYSAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0
d29yayAqLywKIAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAq
LywKIAkJCQkxQUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKQEAgLTk4OTYs
NiArOTkxMSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJE
N0RFQkUyMjEyNjlFNEIwMEI5RjczQyAvKiB1bmlmaWVkLXNvdXJjZXMgKi8sCisJCQkJQ0Q0NTcw
RDAyNDQxMDE0QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUNENDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ1
NzBEMjI0NDEwMTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eU1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBB
dXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEEx
MTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAog
CQkJCTk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNo
ZXJzLmNwcCAqLywKQEAgLTEwMjEyLDYgKzEwMjMwLDI1IEBACiAJCQluYW1lID0gZm9ybXM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RD
RUIgLyogTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCUNENDU3MEQ5MjQ0NENBNTgwMEEzRENFQiAvKiBjb2NvYSAqLywKKwkJCQlDRDQ1NzBERDI0
NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAg
Ki8sCisJCQkJQ0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkuaCAqLywKKwkJCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJ
CQlwYXRoID0gTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlDRDQ1
NzBEOTI0NDRDQTU4MDBBM0RDRUIgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCUNENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9
IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q2MTc4MTExRTZE
RTk4MDAwRkRBNTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTEyNTc5LDYgKzEyNjE2LDkgQEAKIAkJCQkyRDkyQTc3QjIxMkI2QTcxMDBG
NDkzRkQgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUy
MTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3N0MyMTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEN0NGMzYxMjQ0NENDQTYwMDNCQzRE
NSAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gaW4gU291cmNl
cyAqLywKKwkJCQlDRDQ1NzBEMzI0NDExM0I1MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MTJGNThBMjEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5
MjQ5QUQ1MUYxRjFFNTYwMEI2MkZCQiAvKiBBdXRvbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVycy5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZjY3ZjI3OTJiNWUuLjVhMTk5NGYyMjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTYwLDcgKzU2MCw3IEBAIFdl
YlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKIAogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHBhcmFtZXRlcnMu
c3RvcmUpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSB8fCBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBpZiAoIW1fcGFnZS0+c2V0
dGluZ3MoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkKICAgICAgICAgRGVwcmVjYXRlZEdsb2Jh
bFNldHRpbmdzOjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDBiOWRkZGI3
YTYxLi5lYjFlMmI2ZTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMTg0LDYgKzE4NCwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBl
ci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyNpbmNsdWRl
ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVM
RUFTRV9MT0dfU0VTU0lPTl9JRCAobV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQo
KSA6IDApCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4p
IFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAg
LSBbc2Vzc2lvbklEPSUiIFBSSXU2NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFT
RV9MT0dfU0VTU0lPTl9JRCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJ
dTY0ICJdIFdlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAj
I19fVkFfQVJHU19fKQpAQCAtMjU5LDYgKzI2MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNz
KCkKICAgICBhZGRTdXBwbGVtZW50PFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgIGFkZFN1cHBsZW1lbnQ8QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I+KCk7CisjZW5kaWYKKwogICAgIEdpZ2FjYWdlOjpm
b3JiaWREaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3Iu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjk2
MWRhOTNhYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaCIKKworI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorCisj
aW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoV2Vi
UHJvY2VzcyYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIEF1ZGlv
U2Vzc2lvbjo6c2hhcmVkU2Vzc2lvbigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtYWtl
V2Vha1B0cih0aGlzKSk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjp+QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0
dXJuICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvciI7Cit9CisKK3ZvaWQgQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5
KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJiBjYWxs
YmFjaykKK3sKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OjpCZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShjYXRlZ29yeSksIFdURk1vdmUo
Y2FsbGJhY2spLCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlv
bklkKCkpOworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJv
dXRpbmdBYnJpdHJhdGlvbigpCit7CisgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OkxlYXZlUm91dGluZ0FyYml0cmF0aW9uKCksIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6OmRlc3RpbmF0aW9uSWQoKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNTYw
YWI1NjY0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQor
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1
ZGlvU2Vzc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvciBmaW5hbAorICAgIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50CisgICAgLCBw
dWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50CisgICAg
LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I+IHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvcihXZWJQcm9jZXNzJik7CisgICAgdmlydHVhbCB+QXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
dXBwbGVtZW50TmFtZSgpOworCisgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IFdlYkNvcmU6OkF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDsKKworcHJpdmF0ZToKKyAgICAvLyBB
dWRpb1Nlc3Npb25Sb3V0aW5nQWJyaXRyYXRvcgorICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRy
YXRpb25XaXRoQ2F0ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUm91dGluZ0FyYml0cmF0aW9uRXJyb3IsIERlZmF1bHRSb3V0
ZUNoYW5nZWQpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGxlYXZlUm91dGluZ0Ficml0cmF0aW9uKCkg
ZmluYWw7CisKKyAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDA0Yjg1NGNjZGQuLjBhYzM4NDExZTkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKQEAgLTUyMSw3ICs1MjEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVT
bwogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIHJldHVybiBD
YXB0dXJlU291cmNlT3JFcnJvciB7ICJBdWRpbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MgaXMgbm90
IGltcGxlbWVudGVkIl9zIH07CiAjZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAg
IC8vIEZJWE1FOiBSZW1vdmUgZGlzYWJsaW5nIG9mIHRoZSBhdWRpbyBzZXNzaW9uIGNhdGVnb3J5
IG1hbmFnZW1lZW50IG9uY2Ugd2UgbW92ZSBhbGwgbWVkaWEgcGxheWluZyB0byBHUFVQcm9jZXNz
LgogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgIERlcHJlY2F0
ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkodHJ1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlBy
b2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nl
c3Muc2IuaW4KaW5kZXggNWIzMDU0ZjQzOGIuLjM1NWUzYmExMTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCkBAIC05MDUs
NiArOTA1LDcgQEAKICAgICAgICAgICAgICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIgogICAg
ICAgICAgICAgImNvbS5hcHBsZS50Y2NkIgogICAgICAgICAgICAgImNvbS5hcHBsZS5sc2QubWFw
ZGIiCisgICAgICAgICAgICAiY29tLmFwcGxlLkJsdWV0b290aFNlcnZpY2VzIgogCiAgICAgICAg
ICAgICA7OzsgRklYTUUoMjA3NzE2KTogVGhlIGZvbGxvd2luZyBzaG91bGQgYmUgcmVtb3ZlZCB3
aGVuIHRoZSBHUFUgcHJvY2VzcyBpcyBjb21wbGV0ZQogICAgICAgICAgICAgImNvbS5hcHBsZS5h
dWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIgImNvbS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9p
bnQueHBjIiAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludHN0cmVhbS54cGMiCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmFkMDE3NTA1MGUu
LjJmMDI3YzE5OTg0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2
QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJp
dGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0ZXN0IGZvciBzb2Z0bGluayBvZiBBVkF1ZGlvUm91dGluZ0FyYml0ZXIuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmtUZXN0Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDQt
MTAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
VEZdIERhdGFNdXRleDogQWRkIHJ1blVubG9ja2VkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmtUZXN0Lm1tCmluZGV4IDk5Mjk0MGU0ZTI4Li5iMzE0N2JiMGQwOSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCkBAIC03NSw2ICs3NSwxMCBAQCBURVNUKEFWRm91
bmRhdGlvblNvZnRMaW5rLCBDbGFzc2VzKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWU3BlZWNo
U3ludGhlc2lzVm9pY2VDbGFzcygpLCBudWxscHRyKTsKICNlbmRpZgogCisjaWYgSEFWRShBVkFV
RElPX1JPVVRJTkdfQVJCSVRFUikKKyAgICBFWFBFQ1RfTkUoUEFMOjpnZXRBVkF1ZGlvUm91dGlu
Z0FyYml0ZXJDbGFzcygpLCBudWxscHRyKTsKKyNlbmRpZgorCiAjaWYgSEFWRShNRURJQV9QTEFZ
RVIpICYmICFQTEFURk9STShXQVRDSE9TKQogICAgIEVYUEVDVF9ORShQQUw6OmdldEFWUm91dGVE
ZXRlY3RvckNsYXNzKCksIG51bGxwdHIpOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="411724"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396436</attachid>
            <date>2020-04-14 10:34:55 -0700</date>
            <delta_ts>2020-04-14 14:20:22 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-Adopt-interface-AVAudioRoutingArbiter-for-Mac.patch</filename>
            <type>text/plain</type>
            <size>72009</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSAwMDM3NDBiYzk2YzhlNDY3YzQ4MDBmMGRmMDFjYjYyODk3Y2UzN2I4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTAgQXByIDIwMjAgMTY6MzQ6NTAgLTA3MDAKU3ViamVjdDogQWRvcHQgaW50ZXJmYWNl
IEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMTY3IFNvdXJjZS9XZWJDb3JlOgoKUGF0Y2ggYnkgUGVuZyBMaXUg
PHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3JlOjpjYXRlZ29yeU5hbWUpOiBEZWxl
dGVkLgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcC4K
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnlPdmVycmlkZSk6CgpGaXggdW5pZmllZCBidWlsZCBmYWlsdXJlcy4KKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKClNv
dXJjZS9XZWJDb3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29t
PiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KCkFkZCBzb2Z0bGluayBm
b3IgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaDoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0
OgoKPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgoKUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoK
QWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJvdXRlckFi
aXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZwphcmJpdHJhdGlvbiBjb21tYW5kcyBm
cm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBVSVByb2Nlc3MgY2FuIHJl
cHJlc2VudAptdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3NlcywgaXQgbXVzdCB0cmFjayBhbGwg
b3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xvYmFsbHkuCgoqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6
CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgooV2Vi
S2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vzcyk6CiogU291cmNlcy50eHQ6Ciog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVs
YXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlv
bik6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmNh
dGVnb3J5IGNvbnN0KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6ZGVzdGluYXRpb25JZCk6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgoqIFVJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW06IEFkZGVkLgooV2Vi
S2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSk6CihXZWJLaXQ6OlNoYXJlZEFy
Yml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihXZWJLaXQ6
OlNoYXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6
CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0
cmF0aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgoqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CihXZWJLaXQ6Om1fcHJvY2Vzc0Rpc3BsYXlOYW1lKToKKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKToKKFdlYktpdDo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKToKKFdlYktpdDo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KToK
KFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmxlYXZlUm91dGluZ0Ficml0
cmF0aW9uKToKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
Lmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
OgooV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UpOgoqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2Iu
aW46CgpTb3VyY2UvV1RGOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+
IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoKQWRkIG1hY3JvIEhBVkVf
QVZBVURJT19ST1VUSU5HX0FSQklURVIuCgoqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKClRvb2xzOgoK
UGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoKQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9S
b3V0aW5nQXJiaXRlci4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rVGVzdC5tbToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgotLS0KIFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oICAgICAgICAgIHwgICA0ICsKIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBTb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIC4uLi9QQUwvcGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmggICAgICB8ICAgNCArCiAuLi4vUEFML3BhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAgICAgfCAgIDQgKwogU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dCAgICAgICAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgICB8ICAyNyArKysKIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oICB8ICA1OCArKysrKy0KIC4uLi9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tICAgICB8ICAyMSArLS0KIC4uLkF1ZGlvU2Vzc2lv
bk1hYy5jcHAgPT4gQXVkaW9TZXNzaW9uTWFjLm1tfSB8ICA3MyArKysrKystLQogLi4uL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oICAgIHwgICAzICstCiBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgfCAgNTUgKysrKysrCiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgfCAgIDEgKwogLi4uL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCAgIHwgICAzICsKIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gICAgfCAgIDIgKy0KIC4uLi9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcCAgICB8ICA1OSArKysrKysrCiAuLi4vQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oICAgICAgfCAgNjggKysrKysrKwogLi4ub1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluIHwgIDI4ICsrKwogLi4uQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tIHwgMTY2ICsrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgIHwgICA1
ICsKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgICB8ICAgNyAr
CiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCAgICAgfCAgIDUgKwog
Li4uL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDQwICsrKysr
CiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCAgICAgICB8ICAgOCArCiAu
Li4vY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwICAgfCAgNjUgKysrKysr
KwogLi4uL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggICAgIHwgIDYxICsr
KysrKysKIC4uLi9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgICAgICAgICB8ICAg
MiArLQogLi4uL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gICAgIHwgICAx
ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiAr
KwogLi4uL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIHwgICA0ICsK
IDM3IGZpbGVzIGNoYW5nZWQsIDgwNSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKIHJl
bmFtZSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMve0F1ZGlvU2Vzc2lvbk1hYy5j
cHAgPT4gQXVkaW9TZXNzaW9uTWFjLm1tfSAoNzclKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tZXNzYWdlcy5pbgogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2Nv
YS5tbQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3Iu
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggODU1OTBmOTIwOWIuLjUzYzcxZGRjYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIG1hY3JvIEhBVkVfQVZBVURJT19S
T1VUSU5HX0FSQklURVIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjAt
MDQtMTAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtXVEZdIERhdGFNdXRleDogQWRkIHJ1blVubG9ja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCA2YTNhNTE3NDQwNi4uOGFlZmRhNjg0MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTI4NCwzICsyODQsNyBAQAogI2lmICFkZWZpbmVkKEVO
QUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIpICYmIChQTEFURk9STShJT1NfRkFNSUxZKSAmJiAh
UExBVEZPUk0oV0FUQ0hPUykpCiAjZGVmaW5lIEVOQUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIg
MQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZpbmUgRU5BQkxFX1JPVVRJTkdfQVJCSVRSQVRJT04g
MQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDE2NmExMzVkN2UwLi4zNzEwMjVjZTNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY2OSwzICs2NjksNyBAQAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBIQVZFX0lPU19KSVRfUkVTVFJJQ1RJT05TIDEKICNl
bmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE2MDApCisjZGVmaW5lIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIgMQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODEuLjFlZWExYmI2YzlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZv
ciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNhdGVnb3J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKKworICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuaDoKKwogMjAyMC0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgcGxheWJhY2sgb2YgcmVtb3RlIGF1ZGlv
IHRyYWNrcyBpcyBzdGFibGUgZXZlbiBpZiBwYWdlcyBhcmUgdXNpbmcgd2ViYXVkaW8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDhiZjFlZjQwOTc2Li45MzE0YWNhOTE0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFw
cGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVy
IGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBB
ZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5tbToKKwogMjAyMC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVHJhY2sgZWRpdGFibGUgZWxlbWVudHMgb24gc2NyZWVuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKaW5kZXggZTFmMjEzZWE1ZWQuLjEyNzgzNTM3YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC03OCw2ICs3OCwx
MCBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3ludGhlc2l6ZXIp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJhbmNlKQogI2Vu
ZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQorU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvUm91dGluZ0FyYml0ZXIpCisjZW5kaWYKKwogI2lmICFQ
TEFURk9STShXQVRDSE9TKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlJvdXRl
RGV0ZWN0b3IpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWVmlkZW9QZXJmb3Jt
YW5jZU1ldHJpY3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCA1MWI2NjM2YWFlMS4uYTJjZmI3ZTRjNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbQpAQCAtMTA0LDYgKzEwNCwxMCBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hTeW50aGVzaXplciwgUAogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Bl
ZWNoVXR0ZXJhbmNlLCBQQUxfRVhQT1JUKQogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9V
VElOR19BUkJJVEVSKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciwgUEFMX0VYUE9SVCkKKyNlbmRp
ZgorCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZSb3V0ZURldGVjdG9yLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MsIFBBTF9FWFBPUlQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCAwYmFmZDM2ZmE2NS4uNThmNWVkODEyYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dApAQCAtMTgxLDcgKzE4MSw3IEBAIHBsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb0J1c01hYy5tbQogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3Bw
CiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmNwcAogcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKLXBsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb1Nlc3Npb25NYWMuY3BwCitwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1t
CiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAogcGxhdGZvcm0vYXVkaW8vbWFj
L0ZGVEZyYW1lTWFjLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTIxYmQ1MGVlMzguLjMwYzdmMzVmYTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
Mzk0Nyw3ICsxMzk0Nyw3IEBACiAJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9y
eUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRBNzYwMTgwRjlGNzAwMEIwNzZDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRBNzYxMTgwRjlGNzAwMEIw
NzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVC
MzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjhGMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXVkaW9GaWxlUmVhZGVySU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJJT1MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIEltYWdlQnVmZmVy
VXRpbGl0aWVzQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJVdGlsaXRpZXND
Ry5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTE2MCw3ICsyOTE2MCw3IEBA
CiAJCQkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5o
ICovLAogCQkJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UuaCAqLywKIAkJCQkwNzNCODc2NDFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tICovLAotCQkJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Np
b25NYWMuY3BwICovLAorCQkJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Np
b25NYWMubW0gKi8sCiAJCQkJMDczQjg3NTcxRTQwRENGRDAwNzFDMEVDIC8qIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJMDczQjg3NTgxRTQwRENGRDAwNzFDMEVDIC8qIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovLAogCQkJCUNEQzczNDEyMTk3Nzg5NkMwMDQ2QkZD
NSAvKiBDQVJpbmdCdWZmZXIuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggOWIyZmFlNTZkZDEuLjUxYThkM2EyODI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTIw
MCw2ICsyMDAsMzMgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1lcmF0aW9uVmFsdWUpCiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykp
OwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVl
KV07CiB9CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVudW1lcmF0
aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFs
dWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCisgICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJGYWlsZWQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkNhbmNlbGxlZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCgh
c3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6
OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUgaXMgbm90IDAgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6
RmFpbGVkKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3I6OkZhaWxlZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQpLCAiQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Q2Fu
Y2VsbGVkIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZW51bWVyYXRpb25WYWx1ZSkK
K3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsK
KyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJZZXMiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRp
Y19jYXN0PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVs
dFJvdXRlQ2hhbmdlZDo6Tm8pLCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyBpcyBub3QgZmFsc2UgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzKSwgIkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzIGlzIG5vdCB0
cnVlIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVy
YXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1
ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKIH0KIAogI2Vu
ZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAppbmRleCA2MzdkMjkzNWM5NC4uOTA3MTgzYmRiMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KQEAgLTQ2LDYgKzQ3LDggQEAgZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1
aW50OF90IHsKICAgICBMb25nRm9ybVZpZGVvCiB9OwogCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRpb25DbGllbnQ7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lv
biB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQXVkaW9TZXNzaW9uKTsKQEAgLTExMyw2ICsxMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCisgICAgdm9p
ZCBzZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQoV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ+JiYgY2xpZW50KSB7IG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
ID0gY2xpZW50OyB9CisKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95
ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsKQEAgLTEyNCwxMSArMTI5LDI4
IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYWtIYXNoU2V0
PEludGVycnVwdGlvbk9ic2VydmVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVyczsKICNlbmRpZgor
CisgICAgV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ+IG1fcm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OyAvLyBV
c2VkIG9ubHkgZm9yIHRlc3RpbmcuCiB9OwogCi1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsKLVN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKwor
ICAgIGVudW0gY2xhc3MgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgOiB1aW50OF90IHsgTm9uZSwg
RmFpbGVkLCBDYW5jZWxsZWQgfTsKKyAgICBlbnVtIGNsYXNzIERlZmF1bHRSb3V0ZUNoYW5nZWQg
OiBib29sIHsgTm8sIFllcyB9OworCisgICAgdmlydHVhbCB2b2lkIGJlZ2luUm91dGluZ0FyYml0
cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2Vk
KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpID0g
MDsKKworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC0xNjQsNiArMTg2LDIzIEBAIHRlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lPiB7CiAgICAg
PjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLAorICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3I6Ok5vbmUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLAorICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0
cmF0aW9uRXJyb3I6OkNhbmNlbGxlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6
OkRlZmF1bHRSb3V0ZUNoYW5nZWQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1
bHRSb3V0ZUNoYW5nZWQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpObywKKyAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ6Olllcwor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogc3RydWN0IExvZ0FyZ3VtZW50
OwogCkBAIC0xODMsNiArMjIyLDIxIEBAIHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1
Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcj4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVybiBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcik7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+Citz
dHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9u
Q2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRl
ZmF1bHRSb3V0ZUNoYW5nZWQgY2hhbmdlZCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyhjaGFuZ2VkKTsKKyAgICB9Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggYzI1YTBj
YWE1NzMuLjhkN2JiOTQzM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KQEAgLTk2LDI1ICs5Niw2IEBAIEBlbmQKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUxPR19ESVNBQkxFRAotc3RhdGljIGNvbnN0IGNo
YXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKLXsK
LSNkZWZpbmUgQ0FTRShjYXRlZ29yeSkgY2FzZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5OiByZXR1
cm4gI2NhdGVnb3J5Ci0gICAgc3dpdGNoIChjYXRlZ29yeSkgewotICAgICAgICBDQVNFKE5vbmUp
OwotICAgICAgICBDQVNFKEFtYmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoU29sb0FtYmllbnRT
b3VuZCk7Ci0gICAgICAgIENBU0UoTWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIENBU0UoUmVjb3Jk
QXVkaW8pOwotICAgICAgICBDQVNFKFBsYXlBbmRSZWNvcmQpOwotICAgICAgICBDQVNFKEF1ZGlv
UHJvY2Vzc2luZyk7Ci0gICAgfQotICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiAiIjsKLX0KLSNlbmRpZgotCiBjbGFzcyBBdWRpb1Nlc3Npb25Qcml2YXRlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTE1NSw3ICsxMzYsNyBAQCB2
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBS
b3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkxvbmdGb3JtQXVkaW87CiAjZW5kaWYKIAotICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjYXRlZ29yeU5hbWUobmV3Q2F0ZWdv
cnkpKTsKKyAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRl
Z29yeSA9ICVzIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobmV3Q2F0ZWdvcnkpLmFzY2lp
KCkuZGF0YSgpKTsKIAogICAgIGlmIChjYXRlZ29yeU92ZXJyaWRlKCkgJiYgY2F0ZWdvcnlPdmVy
cmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnkoKSAtIG92ZXJyaWRlIHNldCwgTk9UIGNoYW5naW5nIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0K
c2ltaWxhcml0eSBpbmRleCA3NyUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KaW5kZXggY2MwNGYwYmUzMDkuLmRk
NjIzMGQyYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9TZXNzaW9uTWFjLm1tCkBAIC0yMywxNyArMjMsMTkgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQXVkaW9TZXNzaW9uLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkF1ZGlvU2Vz
c2lvbi5oIgogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKIAotI2lu
Y2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+
Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKyNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgor
I2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgPENvcmVBdWRpby9BdWRpb0hhcmR3
YXJlLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYxLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgOiBsYXN0TXV0ZWRTdGF0ZShtdXRlZFN0YXRlKSB7IH0KICAgICBib29sIGxhc3RNdXRlZFN0
YXRlOwogICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNz
aW9uOjpOb25lIH07CisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisgICAgYm9vbCBz
ZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZhbHNlIH07CisjZW5kaWYKKyAgICBBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5T3ZlcnJpZGU7CiB9OwogCiBBdWRpb1Nlc3Npb246
OkF1ZGlvU2Vzc2lvbigpCkBAIC03NSwxOCArODEsNjEgQEAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiAKIHZvaWQgQXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkK
IHsKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAgICBpZiAoY2F0ZWdvcnkgPT0g
QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9BbWJpZW50U291bmQgfHwgY2F0ZWdvcnkg
PT0gQXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRl
Z29yeTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjYXRlZ29yeSA9PSBtX3By
aXZhdGUtPmNhdGVnb3J5KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wcml2YXRlLT5z
ZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGEgYmVnaW5BcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSBpcyBzdGlsbCBvbmdvaW5nIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoIW1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSAhPSBOb25lKQorICAgICAgICBtX3JvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudC0+bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKTsKKwogICAgIG1fcHJpdmF0
ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSA9PSBO
b25lKQorICAgICAgICByZXR1cm47CisKKyAgICB1c2luZyBSb3V0aW5nQXJiaXRyYXRpb25FcnJv
ciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsKKworICAgIG1fcm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50LT5iZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29y
eShtX3ByaXZhdGUtPmNhdGVnb3J5LCBbdGhpc10gKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVy
cm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIHsKKyAgICAgICAg
bV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IGZhbHNlOworICAgICAgICBpZiAo
ZXJyb3IgIT0gUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gYmVn
aW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeTolcyBmYWlsZWQgd2l0aCBlcnJvciAlcyIsIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkpLmFzY2lpKCkuZGF0YSgp
LCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcikuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IERvIHdlIG5l
ZWQgdG8gcmVzZXQgc2FtcGxlIHJhdGUgYW5kIGJ1ZmZlciBzaXplIGZvciB0aGUgbmV3IGRlZmF1
bHQgZGV2aWNlPworICAgICAgICBpZiAoZGVmYXVsdFJvdXRlQ2hhbmdlZCA9PSBEZWZhdWx0Um91
dGVDaGFuZ2VkOjpZZXMpCisgICAgICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNl
dENhdGVnb3J5KCkgLSBkZWZhdWx0Um91dGVDaGFuZ2VkISIpOworICAgIH0pOworI2Vsc2UKKyAg
ICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisjZW5kaWYKIH0KIAogQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBt
X3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNl
dENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKQordm9pZCBBdWRpb1Nlc3Npb246OnNldENh
dGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgaWYgKG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRlID09IGNhdGVnb3J5
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZSA9
IGNhdGVnb3J5OworICAgIHNldENhdGVnb3J5KGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3k6
OkRlZmF1bHQpOwogfQogCiBmbG9hdCBBdWRpb1Nlc3Npb246OnNhbXBsZVJhdGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaAppbmRleCAx
NGRkNGQ5MTY3Mi4uMWQ3Y2Q5NmM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpZiBVU0UoTElCV0VC
UlRDKQogCisjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJM
aXN0LmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CkBAIC0zNyw4ICsz
OCw2IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24gKkNN
Rm9ybWF0RGVzY3JpcHRpb25SZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7Ci0KIGNsYXNzIFJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZUNvY29hIGZpbmFsIDogcHVibGljIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2Nv
YT4gY3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+
JiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDliNDA3NjY4YmIuLjY0MDEwZjM4ZGRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0
ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwMTY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTExMzk5ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgbmV3IGNyb3NzLXByb2Nl
c3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJvdXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBw
YXNzZXMgcm91dGluZworICAgICAgICBhcmJpdHJhdGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRl
bnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBVSVByb2Nlc3MgY2FuIHJlcHJlc2VudAorICAg
ICAgICBtdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3NlcywgaXQgbXVzdCB0cmFjayBhbGwgb3V0
c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xvYmFsbHkuCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vz
czo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlv
bkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRl
Z29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHk6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpz
dXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJh
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIwLTA0LTEwICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdBUk5fVU5VU0VE
X1JFVFVSTiB0byBkZWNvZGUgbWV0aG9kcyBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA4ZjQ5Njg4
YTY3OS4uOGJkYjUxYTE2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTkzLDYgKzkzLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDUzNWE2N2Q3ZDE1Li5kMTAwNDYzMzlmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xLDQgKzEsNyBA
QAogIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyBz
Y3JpcHQuCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
QXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVu
dGljYXRpb25NYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAyZDU5ZDg2YmMyYS4uNmM3MzFjNThmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTg2LDYgKzg2LDggQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvR1BVIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9JbnNwZWN0b3IgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL01lZGlhIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9NZWRpYS9jb2NvYSBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvTWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzIFwKQEAgLTExMCw2ICsxMTIsNyBAQCBlbHNlCiBlbmRpZgogCiBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKKwlBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKICAgICBBdXRo
ZW50aWNhdGlvbk1hbmFnZXIgXAogICAgIEF1eGlsaWFyeVByb2Nlc3MgXAogICAgIENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCmluZGV4IGVmMjM5NWVjNTlmLi45NTA3NmYyNjQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgR1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQo
KTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQog
ICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNDdjY2JlZDQ1MWMuLmQz
ODRjZTU2NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ0MSw2ICs0NDEsOCBAQCBVSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNwcAogCiBVSVByb2Nlc3MvSW5zcGVj
dG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCiAKK1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAorCiBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDE3
YjViZGM3Y2VmLi42ZmY3Y2M3ZWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yNTYsNyArMjU2LDcgQEAgc3Rh
dGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMoKQogI2lm
IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgICAgICJjb20uYXBw
bGUuY29yZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmVu
ZHBvaW50cGxheWJhY2tzZXNzaW9uLnhwYyIsCiAgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlh
LmVuZHBvaW50cmVtb3RlY29udHJvbHNlc3Npb24ueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEu
dmlkZW9kZWNvZGVyIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVy
IgorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2VuY29kZXIiLCAiY29tLmFwcGxl
LkJsdWV0b290aFNlcnZpY2VzIgogI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0dXJuIHNlcnZpY2Vz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmEyNzYyNzEwMjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikgJiYgIUhBVkUoQVZBVURJT19ST1VUSU5HX0FS
QklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNz
YWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNz
UHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNzKHByb3h5KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGlu
Z0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlU
eXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICBjYWxsYmFjayhSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLCBEZWZh
dWx0Um91dGVDaGFuZ2VkOjpObyk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6ZW5kUm91dGluZ0FyYml0cmF0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMmNkZjhkMDUwNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eQorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgLCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgdmlydHVhbCB+QXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSgpOworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5OyB9CisK
KyAgICBzdGF0aWMgdWludDY0X3QgZGVzdGluYXRpb25JZCgpIHsgcmV0dXJuIDE7IH0KKworICAg
IHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjsKKyAgICB1c2lu
ZyBEZWZhdWx0Um91dGVDaGFuZ2VkID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOworICAgIHVzaW5nIEFyYml0cmF0aW9u
Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9y
LCBEZWZhdWx0Um91dGVDaGFuZ2VkKT47CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGJlZ2luUm91
dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQgZW5kUm91dGluZ0FyYml0
cmF0aW9uKCk7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKKyAgICBXZWJDb3Jl
OjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVkaW9T
ZXNzaW9uOjpOb25lIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjVjYzk5NDFkMmFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKK21lc3NhZ2VzIC0+
IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAg
QmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90IFdl
YktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkgQXN5
bmMKKyAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29j
b2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MzI5ZjM5YjRlYQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5oIgorCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUoQVZB
VURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiV2Vi
UGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNv
cmUvQXVkaW9TZXNzaW9uLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2lt
cG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU2hhcmVkQXJiaXRyYXRv
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFNoYXJlZEFyYml0cmF0b3ImIHNoYXJlZEluc3RhbmNl
KCk7CisKKyAgICB1c2luZyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAgdXNp
bmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNs
aWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsKKyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxiYWNr
ID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXJiaXRyYXRpb25DYWxsYmFj
azsKKworICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkmLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOwor
ICAgIHZvaWQgZW5kUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcihBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Jik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8QXVkaW9T
ZXNzaW9uOjpDYXRlZ29yeVR5cGU+IG1fY3VycmVudENhdGVnb3J5IHsgQXVkaW9TZXNzaW9uOjpO
b25lIH07CisgICAgV2Vha0hhc2hTZXQ8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eT4gbV9hcmJpdHJhdG9yczsKKyAgICBWZWN0b3I8QXJiaXRyYXRpb25DYWxsYmFjaz4gbV9lbnF1
ZXVlZENhbGxiYWNrczsKKyAgICBib29sIG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBmYWxz
ZSB9OworfTsKKworU2hhcmVkQXJiaXRyYXRvciYgU2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5z
dGFuY2UoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTaGFyZWRBcmJpdHJhdG9yPiBp
bnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKK3ZvaWQgU2hhcmVkQXJiaXRyYXRv
cjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkmIHByb3h5LCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2sp
Cit7CisgICAgQVNTRVJUKCFtX2FyYml0cmF0b3JzLmNvbnRhaW5zKHByb3h5KSk7CisgICAgbV9h
cmJpdHJhdG9ycy5hZGQocHJveHkpOworCisgICAgaWYgKG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29p
bmcpIHsKKyAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxsYmFj
aykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXF1ZXN0ZWRDYXRlZ29y
eSA9IHByb3h5LmNhdGVnb3J5KCk7CisKKyAgICBpZiAobV9jdXJyZW50Q2F0ZWdvcnkpIHsKKyAg
ICAgICAgaWYgKCptX2N1cnJlbnRDYXRlZ29yeSA+PSByZXF1ZXN0ZWRDYXRlZ29yeSkgeworICAg
ICAgICAgICAgY2FsbGJhY2soUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsIERlZmF1bHRS
b3V0ZUNoYW5nZWQ6Ok5vKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJlZFJvdXRpbmdB
cmJpdGVyXSBsZWF2ZUFyYml0cmF0aW9uXTsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRDYXRlZ29y
eSA9IHJlcXVlc3RlZENhdGVnb3J5OworCisgICAgQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNh
dGVnb3J5IGFyYml0cmF0aW9uQ2F0ZWdvcnk7CisgICAgc3dpdGNoIChyZXF1ZXN0ZWRDYXRlZ29y
eSkgeworICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOgorICAgICAgICBhcmJp
dHJhdGlvbkNhdGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJh
Y2s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRpbzoK
KyAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25D
YXRlZ29yeVBsYXlBbmRSZWNvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXVkaW9TZXNz
aW9uOjpQbGF5QW5kUmVjb3JkOgorICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZBdWRp
b1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZFZvaWNlOworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisKKyAgICBtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nID0gdHJ1ZTsKKyAgICBtX2VucXVldWVk
Q2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBbW1BBTDo6Z2V0QVZB
dWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSBzaGFyZWRSb3V0aW5nQXJiaXRlcl0gYmVnaW5BcmJp
dHJhdGlvbldpdGhDYXRlZ29yeTphcmJpdHJhdGlvbkNhdGVnb3J5IGNvbXBsZXRpb25IYW5kbGVy
Olt0aGlzXShCT09MIGRlZmF1bHREZXZpY2VDaGFuZ2VkLCBOU0Vycm9yICogX051bGxhYmxlIGVy
cm9yKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGRlZmF1bHREZXZpY2VDaGFu
Z2VkLCBlcnJvciA9IHJldGFpblB0cihlcnJvcildIHsKKyAgICAgICAgICAgIG1fc2V0dXBBcmJp
dHJhdGlvbk9uZ29pbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlNoYXJlZEFyYml0cmF0b3I6OmJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcjogJXMgZmFpbGVkIHdpdGggZXJyb3IgJXM6
JXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZygqbV9jdXJyZW50Q2F0ZWdvcnkpLmFzY2lp
KCkuZGF0YSgpLCBbW2Vycm9yIGRvbWFpbl0gVVRGOFN0cmluZ10sIFtbZXJyb3IgbG9jYWxpemVk
RGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKKworICAgICAgICAgICAgLy8gRklYTUU6IERvIHdl
IG5lZWQgdG8gcmVzZXQgc2FtcGxlIHJhdGUgYW5kIGJ1ZmZlciBzaXplIGZvciB0aGUgbmV3IGRl
ZmF1bHQgZGV2aWNlPworICAgICAgICAgICAgaWYgKGRlZmF1bHREZXZpY2VDaGFuZ2VkKQorICAg
ICAgICAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGRl
ZmF1bHREZXZpY2VDaGFuZ2VkISIpOworCisgICAgICAgICAgICBWZWN0b3I8QXJiaXRyYXRpb25D
YWxsYmFjaz4gY2FsbGJhY2tzID0gV1RGTW92ZShtX2VucXVldWVkQ2FsbGJhY2tzKTsKKyAgICAg
ICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAgICAgICAgICAgICAg
Y2FsbGJhY2soZXJyb3IgPyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkIDogUm91dGlu
Z0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsIGRlZmF1bHREZXZpY2VDaGFuZ2VkID8gRGVmYXVsdFJv
dXRlQ2hhbmdlZDo6WWVzIDogRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworICAgICAgICB9KTsK
KyAgICB9XTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjplbmRSb3V0aW5nQXJiaXRyYXRp
b25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkmIHByb3h5
KQoreworICAgIEFTU0VSVChtX2FyYml0cmF0b3JzLmNvbnRhaW5zKHByb3h5KSk7CisgICAgbV9h
cmJpdHJhdG9ycy5yZW1vdmUocHJveHkpOworCisgICAgaWYgKCFtX2FyYml0cmF0b3JzLmNvbXB1
dGVzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6
IG1fZW5xdWV1ZWRDYWxsYmFja3MpCisgICAgICAgIGNhbGxiYWNrKFJvdXRpbmdBcmJpdHJhdGlv
bkVycm9yOjpDYW5jZWxsZWQsIERlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vKTsKKworICAgIG1fZW5x
dWV1ZWRDYWxsYmFja3MuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRDYXRlZ29yeS5yZXNldCgpOwor
ICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJlZFJvdXRpbmdB
cmJpdGVyXSBsZWF2ZUFyYml0cmF0aW9uXTsKK30KKworQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9jZXNz
UHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNzKHByb3h5KQoreworICAgIG1fcHJvY2Vzcy5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgZGVzdGluYXRpb25JZCgpLCAqdGhpcyk7Cit9
CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9uSWQoKSk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdv
cnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIEFyYml0cmF0
aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7Cisg
ICAgU2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UoKS5iZWdpblJvdXRpbmdBcmJpdHJh
dGlvbkZvckFyYml0cmF0b3IoKnRoaXMsIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9pZCBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjplbmRSb3V0aW5nQXJiaXRyYXRpb24o
KQoreworICAgIFNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkuZW5kUm91dGluZ0Fy
Yml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcyk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3MTM2ZDUwMWI0Li44MjM1MGI1MGM0
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3MSw2ICsyNzEs
NyBAQCBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworY2xh
c3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTsKIGNsYXNzIERyYXdpbmdBcmVh
UHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKIGNsYXNzIEdhbWVwYWREYXRh
OwpAQCAtMjc3NSw2ICsyNzc2LDEwIEBAIHByaXZhdGU6CiAgICAgTmF2aWdhdGVkQXdheUZyb21B
cHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4geyBOYXZp
Z2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogICAgIGJvb2wgbV9pZ25vcmVzQXBw
Qm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1fdXNlclNjcmlwdHNOb3RpZmllZCB7
IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4gbV9yb3V0aW5nQXJi
aXRyYXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYWVkZGFkMDE3NC4uYzNh
ZmM1NmEwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cApAQCAtODcsNiArODcsMTAgQEAKICNpbmNsdWRlICJTZWNJdGVtU2hpbVByb3h5LmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorI2luY2x1ZGUgIkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0Vf
Q0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9u
KCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkgTUVTU0FHRV9DSEVDS19CQVNFKGNo
ZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBjb25uZWN0aW9uKCkpCiAKQEAgLTE4
Nyw2ICsxOTEsOSBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNz
UG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX21heUhhdmVVbml2
ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oZmFsc2UpCiAgICAgLCBtX251bWJlck9mVGlt
ZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkKDApCiAgICAgLCBtX3Rocm90dGxlcigqdGhp
cywgcHJvY2Vzc1Bvb2wuc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigpKQorI2lmIEVO
QUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgICwgbV9yb3V0aW5nQXJiaXRyYXRvcihtYWtl
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+KCp0aGlzKSkKKyNl
bmRpZgogICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1fdmlz
aWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dyb3Vu
ZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJz
aXRlRGF0YVN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApp
bmRleCAyMTFiYjQ1NWU1ZS4uM2FiMWI4ZTIzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIGVudW0gY2xhc3MgVGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3Q7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OwogY2xhc3MgTmV0d29ya1By
b2Nlc3NQcm94eTsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKIGNsYXNzIFBhZ2VDbGllbnQ7CkBA
IC01MzYsNiArNTM3LDEwIEBAIHByaXZhdGU6CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NUb2tl
biBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fYmFj
a2dyb3VuZFRva2VuOwogCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisgICAgVW5p
cXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+IG1fcm91dGluZ0FyYml0
cmF0b3I7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgbV9oYXNTZW50
TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlIHsgZmFsc2UgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZh
Y2U5ZTI3MjMzLi5lMjYzZDFjMTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzA3LDYgKzE3MDcsOCBAQAogCQlDRDE5RDJFQTIw
NDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIwNDY0MDZGMDAx
NzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyODY1RUUyMjU1NTYyMDAwNjA2QUM3
IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlci5oICovOyB9OwogCQlDRDI4NjVFRjIyNTU1NjIwMDA2MDZBQzcgLyog
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUQyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlci5tbSAqLzsgfTsKKwkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8qIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwRDAyNDQxMDE0
QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmNwcCAqLzsgfTsKIAkJQ0Q0NjYxODMyNDAxMEE2NzAwNDdDQTM1IC8q
IFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ2NjE4MTI0MDEwNTY0MDA0N0NB
MzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwNjFF
NzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLzsgfTsKIAkJQ0Q0
OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xNzIxLDYgKzE3MjMsNyBAQAogCQlDRDc4RTExNTFE
QjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMTMxREI3RDdFRDAwMTRBMkRFIC8qIEZ1
bGxzY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q3OEUxMTcxREI3REMwQTAwMTRBMkRFIC8qIEFQ
SUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xpZW50
LmggKi87IH07CiAJCUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDdDRjM2MTI0NDRD
Q0E2MDAzQkM0RDUgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwREUy
NDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2Nv
YS5tbSAqLzsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZp
Y2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLzsgfTsK
IAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTE5MUNC
REJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi87IH07CiAJCUNEQTI5
QTIwMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTFFMUNCRUI1
RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKQEAgLTUw
MzIsNiArNTAzNSwxNSBAQAogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVl
blRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1bGxzY3JlZW5Ub3Vj
aFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxsc2NyZWVuVG91Y2hT
ZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI4NjVFQzIy
NTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0
NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwRDAyNDQxMDE0QTAwQTNEQ0VCIC8q
IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MEQxMjQ0
MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MEQyMjQ0MTAxNEIw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNSZXBs
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlN
ZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwREIy
NDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0
NjYxN0YyNDAxMDQ1ODAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgwMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1vdGVD
RE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
Q0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNENDY2MTgxMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1vdGVDRE1JbnN0YW5jZVNl
c3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ0RNSW5z
dGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTgzMDksNiArODMyMSw4IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBj
b2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q0
NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cCAqLywKKwkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IuaCAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogUGxheWJh
Y2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE4MUNCREJG
NDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApAQCAtODg0MSw2ICs4
ODU1LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJD
MTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0Yz
Qjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCUNENDU3MEQ4MjQ0NENBMTcwMEEzRENFQiAvKiBN
ZWRpYSAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJ
CQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUVG
Q0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKQEAgLTk4OTYsNiArOTkxMSw5IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEN0RFQkUyMjEyNjlF
NEIwMEI5RjczQyAvKiB1bmlmaWVkLXNvdXJjZXMgKi8sCisJCQkJQ0Q0NTcwRDAyNDQxMDE0QTAw
QTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovLAorCQkJCUNENDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ1NzBEMjI0NDEwMTRC
MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzUmVw
bGllcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgzQUQwMDYy
OTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTk5NTVBNkYw
MUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLywK
QEAgLTEwMjEyLDYgKzEwMjMwLDI1IEBACiAJCQluYW1lID0gZm9ybXM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OworCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RDRUIgLyogTWVkaWEg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENDU3MEQ5
MjQ0NENBNTgwMEEzRENFQiAvKiBjb2NvYSAqLywKKwkJCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RD
RUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8sCisJCQkJQ0Q0
NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuaCAqLywKKwkJCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVk
aWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlDRDQ1NzBEOTI0NDRDQTU4
MDBBM0RDRUIgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCUNENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q2MTc4MTExRTZERTk4MDAwRkRBNTdE
IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTEyNTc5LDYgKzEyNjE2LDkgQEAKIAkJCQkyRDkyQTc3QjIxMkI2QTcxMDBGNDkzRkQgLyogQXJn
dW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAwOTMz
OTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3N0My
MTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0Q0
NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNEN0NGMzYxMjQ0NENDQTYwMDNCQzRENSAvKiBBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQlD
RDQ1NzBEMzI0NDExM0I1MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThBMjEyQTg4
M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5MjQ5QUQ1MUYxRjFF
NTYwMEI2MkZCQiAvKiBBdXRvbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggZjY3ZjI3OTJiNWUuLjVhMTk5NGYyMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTYwLDcgKzU2MCw3IEBAIFdlYlBhZ2U6OldlYlBh
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKIAogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHBhcmFtZXRlcnMuc3RvcmUpOwogCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBFTkFC
TEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51c2VH
UFVQcm9jZXNzRm9yTWVkaWEoKSkKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpz
ZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDBiOWRkZGI3YTYxLi5lYjFlMmI2
ZTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTg0LDYg
KzE4NCwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyNpbmNsdWRlICJBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfU0VT
U0lPTl9JRCAobV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9H
X0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lvbklE
PSUiIFBSSXU2NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VTU0lP
Tl9JRCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdlYlBy
b2Nlc3M6OiIgZm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJHU19f
KQpAQCAtMjU5LDYgKzI2MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRT
dXBwbGVtZW50PFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgIGFkZFN1cHBsZW1lbnQ8QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3I+KCk7CisjZW5kaWYKKwogICAgIEdpZ2FjYWdlOjpmb3JiaWREaXNhYmxp
bmdQcmltaXRpdmVHaWdhY2FnZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTY5ODllN2E3ZjYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3IuaCIKKworI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAiQXVk
aW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoV2ViUHJvY2VzcyYgcHJv
Y2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIEF1ZGlvU2Vzc2lvbjo6c2hh
cmVkU2Vzc2lvbigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtYWtlV2Vha1B0cih0aGlz
KSk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjp+QXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvciI7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lv
bjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdB
cmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpCZWdpblJvdXRp
bmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShjYXRlZ29yeSksIFdURk1vdmUoY2FsbGJhY2spLCBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlvbklkKCkpOworfQor
Cit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJh
dGlvbigpCit7CisgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkVuZFJvdXRpbmdB
cmJpdHJhdGlvbigpLCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5h
dGlvbklkKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzU2MGFiNTY2NDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3IuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUHJvY2VzczsKKworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IgZmluYWwK
KyAgICA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudAorICAgICwgcHVibGljIFdlYkNvcmU6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudAorICAgICwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yPiB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3IoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUo
KTsKKworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRpb25DbGllbnQ7CisKK3ByaXZhdGU6CisgICAgLy8gQXVkaW9TZXNzaW9uUm91
dGluZ0Ficml0cmF0b3IKKyAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVn
b3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJikg
ZmluYWw7CisgICAgdm9pZCBsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpIGZpbmFsOworCisgICAg
V2ViUHJvY2VzcyYgbV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCmluZGV4IDAwNGI4NTRjY2RkLi4wYWMzODQxMWU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CkBAIC01MjEsNyArNTIxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICBpZiAobV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgeyAiQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJf
cyB9OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSB8fCBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICAvLyBGSVhNRTogUmVt
b3ZlIGRpc2FibGluZyBvZiB0aGUgYXVkaW8gc2Vzc2lvbiBjYXRlZ29yeSBtYW5hZ2VtZWVudCBv
bmNlIHdlIG1vdmUgYWxsIG1lZGlhIHBsYXlpbmcgdG8gR1BVUHJvY2Vzcy4KICAgICBpZiAobV9z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4
IDViMzA1NGY0MzhiLi4zNTVlM2JhMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtOTA1LDYgKzkwNSw3IEBACiAg
ICAgICAgICAgICAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIKICAgICAgICAgICAgICJjb20u
YXBwbGUudGNjZCIKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm1hcGRiIgorICAgICAgICAg
ICAgImNvbS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyIKIAogICAgICAgICAgICAgOzs7IEZJWE1F
KDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BVIHBy
b2Nlc3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21w
b25lbnRSZWdpc3RyYXIiICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50LnhwYyIgImNvbS5h
cHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRzdHJlYW0ueHBjIgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhZDAxNzUwNTBlLi44ZmI2NDEyYTQ1ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHRlc3QgZm9y
IHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0xMCAgQWxpY2lhIEJveWEg
R2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gRGF0YU11dGV4OiBB
ZGQgcnVuVW5sb2NrZWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0KaW5k
ZXggOTkyOTQwZTRlMjguLmIzMTQ3YmIwZDA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGlua1Rlc3QubW0KQEAgLTc1LDYgKzc1LDEwIEBAIFRFU1QoQVZGb3VuZGF0aW9uU29mdExpbmss
IENsYXNzZXMpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZTcGVlY2hTeW50aGVzaXNWb2ljZUNs
YXNzKCksIG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJ
VEVSKQorICAgIEVYUEVDVF9ORShQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNzKCks
IG51bGxwdHIpOworI2VuZGlmCisKICNpZiBIQVZFKE1FRElBX1BMQVlFUikgJiYgIVBMQVRGT1JN
KFdBVENIT1MpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZSb3V0ZURldGVjdG9yQ2xhc3MoKSwg
bnVsbHB0cik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396461</attachid>
            <date>2020-04-14 14:20:22 -0700</date>
            <delta_ts>2020-04-14 15:35:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-Adopt-interface-AVAudioRoutingArbiter-for-Mac.patch</filename>
            <type>text/plain</type>
            <size>72012</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">RnJvbSBkOWYzMjlhZmEyN2NhNDI4MDkzZjdlMWVhNmI1Zjg5NWQ4N2I3ZmNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXIgTm9ibGUgPGplci5ub2JsZUBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTAgQXByIDIwMjAgMTY6MzQ6NTAgLTA3MDAKU3ViamVjdDogQWRvcHQgaW50ZXJmYWNl
IEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEwMTY3IFNvdXJjZS9XZWJDb3JlOgoKUGF0Y2ggYnkgUGVuZyBMaXUg
PHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgoKKiBTb3VyY2VzQ29jb2EudHh0OgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKiBwbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tOgooV2ViQ29yZTo6
QXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CihXZWJDb3JlOjpjYXRlZ29yeU5hbWUpOiBEZWxl
dGVkLgoqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW06IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNwcC4K
KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkpOgooV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpjYXRlZ29yeU92ZXJyaWRlIGNvbnN0KToKKFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6c2V0
Q2F0ZWdvcnlPdmVycmlkZSk6CgpGaXggdW5pZmllZCBidWlsZCBmYWlsdXJlcy4KKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDoKClNv
dXJjZS9XZWJDb3JlL1BBTDoKClBhdGNoIGJ5IFBlbmcgTGl1IDxwZW5nLmxpdTZAYXBwbGUuY29t
PiBvbiAyMDIwLTA0LTEwClJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KCkFkZCBzb2Z0bGluayBm
b3IgQVZBdWRpb1JvdXRpbmdBcmJpdGVyLgoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsuaDoKKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW06CgpTb3VyY2UvV2ViS2l0
OgoKPHJkYXI6Ly9wcm9ibGVtLzU5MTEzOTk0PgoKUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoK
QWRkIGEgbmV3IGNyb3NzLXByb2Nlc3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJvdXRlckFi
aXRyYXRvci9Qcm94eSB3aGljaCBwYXNzZXMgcm91dGluZwphcmJpdHJhdGlvbiBjb21tYW5kcyBm
cm9tIFdlYkNvbnRlbnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBVSVByb2Nlc3MgY2FuIHJl
cHJlc2VudAptdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3NlcywgaXQgbXVzdCB0cmFjayBhbGwg
b3V0c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xvYmFsbHkuCgoqIERlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3Q6CiogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6
CiogRGVyaXZlZFNvdXJjZXMubWFrZToKKiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwOgooV2Vi
S2l0OjpHUFVQcm9jZXNzOjppbml0aWFsaXplR1BVUHJvY2Vzcyk6CiogU291cmNlcy50eHQ6Ciog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CihXZWJLaXQ6Om1lZGlhUmVs
YXRlZE1hY2hTZXJ2aWNlcyk6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkpOgooV2ViS2l0OjpB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlv
bik6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aDogQWRkZWQuCihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmNh
dGVnb3J5IGNvbnN0KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eTo6ZGVzdGluYXRpb25JZCk6CiogVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgoqIFVJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW06IEFkZGVkLgooV2Vi
S2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpzaGFyZWRJbnN0YW5jZSk6CihXZWJLaXQ6OlNoYXJlZEFy
Yml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6CihXZWJLaXQ6
OlNoYXJlZEFyYml0cmF0b3I6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcik6
CihXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgooV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSk6CihXZWJL
aXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91dGluZ0FyYml0
cmF0aW9uV2l0aENhdGVnb3J5KToKKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRpb24pOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpXZWJQcm9jZXNzUHJveHkpOgoqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CihXZWJLaXQ6Om1fcHJvY2Vzc0Rpc3BsYXlOYW1lKToKKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgoqIFdlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwOiBBZGRlZC4KKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3I6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yKToKKFdlYktpdDo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I6OnN1cHBsZW1lbnROYW1lKToKKFdlYktpdDo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KToK
KFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3I6OmxlYXZlUm91dGluZ0Ficml0
cmF0aW9uKToKKiBXZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
Lmg6IEFkZGVkLgoqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
OgooV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UpOgoqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2Iu
aW46CgpTb3VyY2UvV1RGOgoKUGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+
IG9uIDIwMjAtMDQtMTAKUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoKQWRkIG1hY3JvIEhBVkVf
QVZBVURJT19ST1VUSU5HX0FSQklURVIuCgoqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKClRvb2xzOgoK
UGF0Y2ggYnkgUGVuZyBMaXUgPHBlbmcubGl1NkBhcHBsZS5jb20+IG9uIDIwMjAtMDQtMTAKUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgoKQWRkIHRlc3QgZm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9S
b3V0aW5nQXJiaXRlci4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rVGVzdC5tbToKKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgotLS0KIFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oICAgICAgICAgIHwgICA0ICsKIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtSGF2ZS5oICAgICAgICAgICAgICAgICB8ICAgNCArCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBTb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgfCAgMTIgKysKIC4uLi9QQUwvcGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmggICAgICB8ICAgNCArCiAuLi4vUEFML3BhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAgICAgfCAgIDQgKwogU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dCAgICAgICAgICAgICAgIHwgICAyICstCiAuLi4vV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogfCAgIDQgKy0KIC4uLi9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAgICB8ICAyNyArKysKIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oICB8ICA1OCArKysrKy0KIC4uLi9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tICAgICB8ICAyMSArLS0KIC4uLkF1ZGlvU2Vzc2lv
bk1hYy5jcHAgPT4gQXVkaW9TZXNzaW9uTWFjLm1tfSB8ICA3MyArKysrKystLQogLi4uL21hYy9S
ZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oICAgIHwgICAzICstCiBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgfCAgNTUgKysrKysrCiBTb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgfCAgIDEgKwogLi4uL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCAgIHwgICAzICsKIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSAgICAgICAgICAgICB8ICAgMyArCiBTb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAuLi4vVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gICAgfCAgIDIgKy0KIC4uLi9BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcCAgICB8ICA1OSArKysrKysrCiAuLi4vQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oICAgICAgfCAgNjggKysrKysrKwogLi4ub1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluIHwgIDI4ICsrKwogLi4uQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tIHwgMTY2ICsrKysrKysrKysrKysr
KysrKwogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgIHwgICA1
ICsKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgICB8ICAgNyAr
CiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCAgICAgfCAgIDUgKwog
Li4uL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDQwICsrKysr
CiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCAgICAgICB8ICAgOCArCiAu
Li4vY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwICAgfCAgNjUgKysrKysr
KwogLi4uL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggICAgIHwgIDYxICsr
KysrKysKIC4uLi9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgICAgICAgICB8ICAg
MiArLQogLi4uL1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW4gICAgIHwgICAx
ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiAr
KwogLi4uL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tIHwgICA0ICsK
IDM3IGZpbGVzIGNoYW5nZWQsIDgwNSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKIHJl
bmFtZSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMve0F1ZGlvU2Vzc2lvbk1hYy5j
cHAgPT4gQXVkaW9TZXNzaW9uTWFjLm1tfSAoNzclKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHkuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tZXNzYWdlcy5pbgogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlDb2Nv
YS5tbQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3Iu
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggODU1OTBmOTIwOWIuLjUzYzcxZGRjYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRv
cHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIG1hY3JvIEhBVkVfQVZBVURJT19S
T1VUSU5HX0FSQklURVIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjAt
MDQtMTAgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtXVEZdIERhdGFNdXRleDogQWRkIHJ1blVubG9ja2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5h
YmxlQ29jb2EuaAppbmRleCA2YTNhNTE3NDQwNi4uOGFlZmRhNjg0MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUVuYWJsZUNvY29hLmgKQEAgLTI4NCwzICsyODQsNyBAQAogI2lmICFkZWZpbmVkKEVO
QUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIpICYmIChQTEFURk9STShJT1NfRkFNSUxZKSAmJiAh
UExBVEZPUk0oV0FUQ0hPUykpCiAjZGVmaW5lIEVOQUJMRV9TSUdJTExfQ1JBU0hfQU5BTFlaRVIg
MQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTYwMCkKKyNkZWZpbmUgRU5BQkxFX1JPVVRJTkdfQVJCSVRSQVRJT04g
MQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IDE2NmExMzVkN2UwLi4zNzEwMjVjZTNm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY2OSwzICs2NjksNyBAQAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQogI2RlZmluZSBIQVZFX0lPU19KSVRfUkVTVFJJQ1RJT05TIDEKICNl
bmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE2MDApCisjZGVmaW5lIEhBVkVfQVZBVURJT19ST1VUSU5HX0FSQklURVIgMQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhMWQ2M2M2ODEuLjFlZWExYmI2YzlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZv
ciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
MDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OmNhdGVnb3J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8v
bWFjL0F1ZGlvU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMuY3BwLgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpzZXRDYXRlZ29yeSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nlc3Npb246
OmNhdGVnb3J5T3ZlcnJpZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeU92ZXJyaWRlKToKKworICAgICAgICBGaXggdW5pZmllZCBidWlsZCBmYWls
dXJlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z0F1ZGlvU291cmNlQ29jb2EuaDoKKwogMjAyMC0wNC0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgcGxheWJhY2sgb2YgcmVtb3RlIGF1ZGlv
IHRyYWNrcyBpcyBzdGFibGUgZXZlbiBpZiBwYWdlcyBhcmUgdXNpbmcgd2ViYXVkaW8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDhiZjFlZjQwOTc2Li45MzE0YWNhOTE0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMTAgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFw
cGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVy
IGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBB
ZGQgc29mdGxpbmsgZm9yIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5tbToKKwogMjAyMC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgVHJhY2sgZWRpdGFibGUgZWxlbWVudHMgb24gc2NyZWVuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKaW5kZXggZTFmMjEzZWE1ZWQuLjEyNzgzNTM3YzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC03OCw2ICs3OCwx
MCBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoU3ludGhlc2l6ZXIp
CiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWU3BlZWNoVXR0ZXJhbmNlKQogI2Vu
ZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19BUkJJVEVSKQorU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBBVkF1ZGlvUm91dGluZ0FyYml0ZXIpCisjZW5kaWYKKwogI2lmICFQ
TEFURk9STShXQVRDSE9TKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBBVlJvdXRl
RGV0ZWN0b3IpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWVmlkZW9QZXJmb3Jt
YW5jZU1ldHJpY3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCA1MWI2NjM2YWFlMS4uYTJjZmI3ZTRjNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbQpAQCAtMTA0LDYgKzEwNCwxMCBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTcGVlY2hTeW50aGVzaXplciwgUAogU09GVF9M
SU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3Bl
ZWNoVXR0ZXJhbmNlLCBQQUxfRVhQT1JUKQogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9V
VElOR19BUkJJVEVSKQorU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBBVkZvdW5kYXRpb24sIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciwgUEFMX0VYUE9SVCkKKyNlbmRp
ZgorCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZSb3V0ZURldGVjdG9yLCBQQUxfRVhQT1JU
KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVmlkZW9QZXJmb3JtYW5jZU1ldHJpY3MsIFBBTF9FWFBPUlQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dAppbmRleCAwYmFmZDM2ZmE2NS4uNThmNWVkODEyYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
U291cmNlc0NvY29hLnR4dApAQCAtMTgxLDcgKzE4MSw3IEBAIHBsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb0J1c01hYy5tbQogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3Bw
CiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9GaWxlUmVhZGVyTWFjLmNwcAogcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvSGFyZHdhcmVMaXN0ZW5lck1hYy5jcHAKLXBsYXRmb3JtL2F1ZGlvL21hYy9B
dWRpb1Nlc3Npb25NYWMuY3BwCitwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLm1t
CiBwbGF0Zm9ybS9hdWRpby9tYWMvQ0FSaW5nQnVmZmVyLmNwcAogcGxhdGZvcm0vYXVkaW8vbWFj
L0ZGVEZyYW1lTWFjLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTIxYmQ1MGVlMzguLjMwYzdmMzVmYTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
Mzk0Nyw3ICsxMzk0Nyw3IEBACiAJCUNENTM5M0QyMTc1RTAxODYwMEMwNzEyMyAvKiBKU01lbW9y
eUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRBNzYwMTgwRjlGNzAwMEIwNzZDOSAv
KiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTRBNzYxMTgwRjlGNzAwMEIw
NzZDOSAvKiBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlDRDU0REU0OTE3NDY5QzZEMDA1RTVC
MzYgLyogQXVkaW9TZXNzaW9uTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEF1ZGlvU2Vzc2lvbk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Npb25NYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1Nlc3Npb25NYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTU5NjhGMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRp
b0ZpbGVSZWFkZXJJT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QXVkaW9GaWxlUmVhZGVySU9TLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1
NTk2OTAxNDc1QjY3ODAwMUQwQkQwIC8qIEF1ZGlvRmlsZVJlYWRlcklPUy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb0ZpbGVSZWFkZXJJT1MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1ODk0OTMyMTg3NDA2NDAwNEY0MjRBIC8qIEltYWdlQnVmZmVy
VXRpbGl0aWVzQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJVdGlsaXRpZXND
Ry5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTE2MCw3ICsyOTE2MCw3IEBA
CiAJCQkJMDczQjg3NjMxRTQzODU5RDAwNzFDMEVDIC8qIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdC5o
ICovLAogCQkJCTA3M0I4NzY1MUU0Mzg1OUQwMDcxQzBFQyAvKiBBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UuaCAqLywKIAkJCQkwNzNCODc2NDFFNDM4NTlEMDA3MUMwRUMgLyogQXVkaW9TYW1wbGVEYXRh
U291cmNlLm1tICovLAotCQkJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Np
b25NYWMuY3BwICovLAorCQkJCUNENTRERTQ5MTc0NjlDNkQwMDVFNUIzNiAvKiBBdWRpb1Nlc3Np
b25NYWMubW0gKi8sCiAJCQkJMDczQjg3NTcxRTQwRENGRDAwNzFDMEVDIC8qIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5jcHAgKi8sCiAJCQkJMDczQjg3NTgxRTQwRENGRDAwNzFDMEVDIC8qIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oICovLAogCQkJCUNEQzczNDEyMTk3Nzg5NkMwMDQ2QkZD
NSAvKiBDQVJpbmdCdWZmZXIuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggOWIyZmFlNTZkZDEuLjUxYThkM2EyODI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb1Nlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5jcHAKQEAgLTIw
MCw2ICsyMDAsMzMgQEAgU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGVudW1lcmF0aW9uVmFsdWUpCiAgICAgQVNTRVJUKHN0YXRpY19j
YXN0PHNpemVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykp
OwogICAgIHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVl
KV07CiB9CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVudW1lcmF0
aW9uVmFsdWUpCit7CisgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdmFs
dWVzW10gPSB7CisgICAgICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJOb25lIiksCisgICAg
ICAgIE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJGYWlsZWQiKSwKKyAgICAgICAgTUFLRV9TVEFU
SUNfU1RSSU5HX0lNUEwoIkNhbmNlbGxlZCIpLAorICAgIH07CisgICAgc3RhdGljX2Fzc2VydCgh
c3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6
OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpOb25lKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUgaXMgbm90IDAgYXMg
ZXhwZWN0ZWQiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHNpemVfdD4oQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6
RmFpbGVkKSwgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3I6OkZhaWxlZCBpcyBub3QgMSBhcyBleHBlY3RlZCIpOworICAgIHN0YXRp
Y19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRp
b25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yOjpDYW5jZWxsZWQpLCAiQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6Q2Fu
Y2VsbGVkIGlzIG5vdCAyIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNp
emVfdD4oZW51bWVyYXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAg
IHJldHVybiB2YWx1ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9
CisKK1N0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZW51bWVyYXRpb25WYWx1ZSkK
K3sKKyAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2YWx1ZXNbXSA9IHsK
KyAgICAgICAgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIk5vIiksCisgICAgICAgIE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJZZXMiKSwKKyAgICB9OworICAgIHN0YXRpY19hc3NlcnQoIXN0YXRp
Y19jYXN0PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVs
dFJvdXRlQ2hhbmdlZDo6Tm8pLCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpObyBpcyBub3QgZmFsc2UgYXMgZXhwZWN0ZWQiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PGJvb2w+KEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzKSwgIkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDo6WWVzIGlzIG5vdCB0
cnVlIGFzIGV4cGVjdGVkIik7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PHNpemVfdD4oZW51bWVy
YXRpb25WYWx1ZSkgPCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcykpOworICAgIHJldHVybiB2YWx1
ZXNbc3RhdGljX2Nhc3Q8c2l6ZV90PihlbnVtZXJhdGlvblZhbHVlKV07Cit9CisKIH0KIAogI2Vu
ZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb1Nlc3Npb24uaAppbmRleCA2MzdkMjkzNWM5NC4uOTA3MTgzYmRiMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgVVNFKEFVRElPX1NFU1NJT04pCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KQEAgLTQ2LDYgKzQ3LDggQEAgZW51bSBjbGFzcyBSb3V0ZVNoYXJpbmdQb2xpY3kgOiB1
aW50OF90IHsKICAgICBMb25nRm9ybVZpZGVvCiB9OwogCitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRpb25DbGllbnQ7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEF1ZGlvU2Vzc2lv
biB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQXVkaW9TZXNzaW9uKTsKQEAgLTExMyw2ICsxMTYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZTsgfQogCisgICAgdm9p
ZCBzZXRSb3V0aW5nQXJiaXRyYXRpb25DbGllbnQoV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRpb25DbGllbnQ+JiYgY2xpZW50KSB7IG1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50
ID0gY2xpZW50OyB9CisKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95
ZWQ8QXVkaW9TZXNzaW9uPjsKICAgICBBdWRpb1Nlc3Npb24oKTsKQEAgLTEyNCwxMSArMTI5LDI4
IEBAIHByb3RlY3RlZDoKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYWtIYXNoU2V0
PEludGVycnVwdGlvbk9ic2VydmVyPiBtX2ludGVycnVwdGlvbk9ic2VydmVyczsKICNlbmRpZgor
CisgICAgV2Vha1B0cjxBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ+IG1fcm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV9hY3RpdmUgeyBmYWxzZSB9OyAvLyBV
c2VkIG9ubHkgZm9yIHRlc3RpbmcuCiB9OwogCi1TdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9T
dHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsKLVN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0
cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKKwor
ICAgIGVudW0gY2xhc3MgUm91dGluZ0FyYml0cmF0aW9uRXJyb3IgOiB1aW50OF90IHsgTm9uZSwg
RmFpbGVkLCBDYW5jZWxsZWQgfTsKKyAgICBlbnVtIGNsYXNzIERlZmF1bHRSb3V0ZUNoYW5nZWQg
OiBib29sIHsgTm8sIFllcyB9OworCisgICAgdmlydHVhbCB2b2lkIGJlZ2luUm91dGluZ0FyYml0
cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2Vk
KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpID0g
MDsKKworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRpb25DbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0
aW9uVG9TdHJpbmcoUm91dGVTaGFyaW5nUG9saWN5KTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSk7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcik7CitX
RUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCkBAIC0xNjQsNiArMTg2LDIzIEBAIHRlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6TWF5UmVzdW1lPiB7CiAgICAg
PjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwKKyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OlJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLAorICAg
IFdlYkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0Fy
Yml0cmF0aW9uRXJyb3I6Ok5vbmUsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLAorICAgIFdl
YkNvcmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0
cmF0aW9uRXJyb3I6OkNhbmNlbGxlZAorICAgID47Cit9OworCit0ZW1wbGF0ZSA8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6
OkRlZmF1bHRSb3V0ZUNoYW5nZWQ+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzIDwK
KyAgICBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1
bHRSb3V0ZUNoYW5nZWQsCisgICAgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOjpObywKKyAgICBXZWJDb3JlOjpBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRlZmF1bHRSb3V0ZUNoYW5nZWQ6Olllcwor
ICAgID47Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogc3RydWN0IExvZ0FyZ3VtZW50
OwogCkBAIC0xODMsNiArMjIyLDIxIEBAIHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpBdWRp
b1Nlc3Npb246OkNhdGVnb3J5VHlwZT4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlIDw+CitzdHJ1
Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xp
ZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcj4geworICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoY29uc3QgV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpS
b3V0aW5nQXJiaXRyYXRpb25FcnJvciBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVybiBjb252
ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcik7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+Citz
dHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0aW9u
Q2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkPiB7CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmlu
Zyhjb25zdCBXZWJDb3JlOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRpb25DbGllbnQ6OkRl
ZmF1bHRSb3V0ZUNoYW5nZWQgY2hhbmdlZCkKKyAgICB7CisgICAgICAgIHJldHVybiBjb252ZXJ0
RW51bWVyYXRpb25Ub1N0cmluZyhjaGFuZ2VkKTsKKyAgICB9Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogI2VuZGlmIC8vIFVTRShBVURJT19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvU2Vzc2lvbklPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KaW5kZXggYzI1YTBj
YWE1NzMuLjhkN2JiOTQzM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvQXVkaW9TZXNzaW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9BdWRpb1Nlc3Npb25JT1MubW0KQEAgLTk2LDI1ICs5Niw2IEBAIEBlbmQKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUxPR19ESVNBQkxFRAotc3RhdGljIGNvbnN0IGNo
YXIqIGNhdGVnb3J5TmFtZShBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBjYXRlZ29yeSkKLXsK
LSNkZWZpbmUgQ0FTRShjYXRlZ29yeSkgY2FzZSBBdWRpb1Nlc3Npb246OmNhdGVnb3J5OiByZXR1
cm4gI2NhdGVnb3J5Ci0gICAgc3dpdGNoIChjYXRlZ29yeSkgewotICAgICAgICBDQVNFKE5vbmUp
OwotICAgICAgICBDQVNFKEFtYmllbnRTb3VuZCk7Ci0gICAgICAgIENBU0UoU29sb0FtYmllbnRT
b3VuZCk7Ci0gICAgICAgIENBU0UoTWVkaWFQbGF5YmFjayk7Ci0gICAgICAgIENBU0UoUmVjb3Jk
QXVkaW8pOwotICAgICAgICBDQVNFKFBsYXlBbmRSZWNvcmQpOwotICAgICAgICBDQVNFKEF1ZGlv
UHJvY2Vzc2luZyk7Ci0gICAgfQotICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiAiIjsKLX0KLSNlbmRpZgotCiBjbGFzcyBBdWRpb1Nlc3Npb25Qcml2YXRlIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTE1NSw3ICsxMzYsNyBAQCB2
b2lkIEF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIG5ld0NhdGVnb3J5LCBS
b3V0ZVNoYXJpbmdQb2xpY3kgcG9saQogICAgICAgICBwb2xpY3kgPSBSb3V0ZVNoYXJpbmdQb2xp
Y3k6OkxvbmdGb3JtQXVkaW87CiAjZW5kaWYKIAotICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnkoKSAtIGNhdGVnb3J5ID0gJXMiLCBjYXRlZ29yeU5hbWUobmV3Q2F0ZWdv
cnkpKTsKKyAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KCkgLSBjYXRl
Z29yeSA9ICVzIiwgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcobmV3Q2F0ZWdvcnkpLmFzY2lp
KCkuZGF0YSgpKTsKIAogICAgIGlmIChjYXRlZ29yeU92ZXJyaWRlKCkgJiYgY2F0ZWdvcnlPdmVy
cmlkZSgpICE9IG5ld0NhdGVnb3J5KSB7CiAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lv
bjo6c2V0Q2F0ZWdvcnkoKSAtIG92ZXJyaWRlIHNldCwgTk9UIGNoYW5naW5nIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9TZXNzaW9uTWFjLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0K
c2ltaWxhcml0eSBpbmRleCA3NyUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvU2Vzc2lvbk1hYy5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL21hYy9BdWRpb1Nlc3Npb25NYWMubW0KaW5kZXggY2MwNGYwYmUzMDkuLmRk
NjIzMGQyYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
QXVkaW9TZXNzaW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9TZXNzaW9uTWFjLm1tCkBAIC0yMywxNyArMjMsMTkgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQXVkaW9TZXNzaW9uLmgiCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkF1ZGlvU2Vz
c2lvbi5oIgogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKIAotI2lu
Y2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgPENvcmVBdWRpby9BdWRpb0hhcmR3YXJlLmg+
Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKyNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgor
I2ltcG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgPENvcmVBdWRpby9BdWRpb0hhcmR3
YXJlLmg+CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYxLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgOiBsYXN0TXV0ZWRTdGF0ZShtdXRlZFN0YXRlKSB7IH0KICAgICBib29sIGxhc3RNdXRlZFN0
YXRlOwogICAgIEF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5IHsgQXVkaW9TZXNz
aW9uOjpOb25lIH07CisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisgICAgYm9vbCBz
ZXR1cEFyYml0cmF0aW9uT25nb2luZyB7IGZhbHNlIH07CisjZW5kaWYKKyAgICBBdWRpb1Nlc3Np
b246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5T3ZlcnJpZGU7CiB9OwogCiBBdWRpb1Nlc3Npb246
OkF1ZGlvU2Vzc2lvbigpCkBAIC03NSwxOCArODEsNjEgQEAgQXVkaW9TZXNzaW9uOjpDYXRlZ29y
eVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpIGNvbnN0CiAKIHZvaWQgQXVkaW9TZXNzaW9u
OjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIFJvdXRlU2hhcmluZ1BvbGljeSkK
IHsKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAgICBpZiAoY2F0ZWdvcnkgPT0g
QW1iaWVudFNvdW5kIHx8IGNhdGVnb3J5ID09IFNvbG9BbWJpZW50U291bmQgfHwgY2F0ZWdvcnkg
PT0gQXVkaW9Qcm9jZXNzaW5nKSB7CisgICAgICAgIG1fcHJpdmF0ZS0+Y2F0ZWdvcnkgPSBjYXRl
Z29yeTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjYXRlZ29yeSA9PSBtX3By
aXZhdGUtPmNhdGVnb3J5KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wcml2YXRlLT5z
ZXR1cEFyYml0cmF0aW9uT25nb2luZykgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRp
YSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAtIGEgYmVnaW5BcmJpdHJhdGlvbldpdGhD
YXRlZ29yeSBpcyBzdGlsbCBvbmdvaW5nIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoIW1fcm91dGluZ0FyYml0cmF0aW9uQ2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSAhPSBOb25lKQorICAgICAgICBtX3JvdXRpbmdBcmJp
dHJhdGlvbkNsaWVudC0+bGVhdmVSb3V0aW5nQWJyaXRyYXRpb24oKTsKKwogICAgIG1fcHJpdmF0
ZS0+Y2F0ZWdvcnkgPSBjYXRlZ29yeTsKKyAgICBpZiAobV9wcml2YXRlLT5jYXRlZ29yeSA9PSBO
b25lKQorICAgICAgICByZXR1cm47CisKKyAgICB1c2luZyBSb3V0aW5nQXJiaXRyYXRpb25FcnJv
ciA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0
aW9uRXJyb3I7CisgICAgdXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsKKworICAgIG1fcm91
dGluZ0FyYml0cmF0aW9uQ2xpZW50LT5iZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29y
eShtX3ByaXZhdGUtPmNhdGVnb3J5LCBbdGhpc10gKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yIGVy
cm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkIGRlZmF1bHRSb3V0ZUNoYW5nZWQpIHsKKyAgICAgICAg
bV9wcml2YXRlLT5zZXR1cEFyYml0cmF0aW9uT25nb2luZyA9IGZhbHNlOworICAgICAgICBpZiAo
ZXJyb3IgIT0gUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeSgpIC0gYmVn
aW5BcmJpdHJhdGlvbldpdGhDYXRlZ29yeTolcyBmYWlsZWQgd2l0aCBlcnJvciAlcyIsIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKG1fcHJpdmF0ZS0+Y2F0ZWdvcnkpLmFzY2lpKCkuZGF0YSgp
LCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhlcnJvcikuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gRklYTUU6IERvIHdlIG5l
ZWQgdG8gcmVzZXQgc2FtcGxlIHJhdGUgYW5kIGJ1ZmZlciBzaXplIGZvciB0aGUgbmV3IGRlZmF1
bHQgZGV2aWNlPworICAgICAgICBpZiAoZGVmYXVsdFJvdXRlQ2hhbmdlZCA9PSBEZWZhdWx0Um91
dGVDaGFuZ2VkOjpZZXMpCisgICAgICAgICAgICBMT0coTWVkaWEsICJBdWRpb1Nlc3Npb246OnNl
dENhdGVnb3J5KCkgLSBkZWZhdWx0Um91dGVDaGFuZ2VkISIpOworICAgIH0pOworI2Vsc2UKKyAg
ICBtX3ByaXZhdGUtPmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisjZW5kaWYKIH0KIAogQXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgQXVkaW9TZXNzaW9uOjpjYXRlZ29yeU92ZXJyaWRlKCkgY29uc3QK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBOb25lOworICAgIHJldHVybiBt
X3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZTsKIH0KIAotdm9pZCBBdWRpb1Nlc3Npb246OnNl
dENhdGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlKQordm9pZCBBdWRpb1Nlc3Npb246OnNldENh
dGVnb3J5T3ZlcnJpZGUoQ2F0ZWdvcnlUeXBlIGNhdGVnb3J5KQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgaWYgKG1fcHJpdmF0ZS0+bV9jYXRlZ29yeU92ZXJyaWRlID09IGNhdGVnb3J5
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ByaXZhdGUtPm1fY2F0ZWdvcnlPdmVycmlkZSA9
IGNhdGVnb3J5OworICAgIHNldENhdGVnb3J5KGNhdGVnb3J5LCBSb3V0ZVNoYXJpbmdQb2xpY3k6
OkRlZmF1bHQpOwogfQogCiBmbG9hdCBBdWRpb1Nlc3Npb246OnNhbXBsZVJhdGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaAppbmRleCAx
NGRkNGQ5MTY3Mi4uMWQ3Y2Q5NmM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpZiBVU0UoTElCV0VC
UlRDKQogCisjaW5jbHVkZSAiQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi
UmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmgiCiAjaW5jbHVkZSAiV2ViQXVkaW9CdWZmZXJM
aXN0LmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CkBAIC0zNyw4ICsz
OCw2IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3JpcHRpb24gKkNN
Rm9ybWF0RGVzY3JpcHRpb25SZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7Ci0KIGNsYXNzIFJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZUNvY29hIGZpbmFsIDogcHVibGljIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2Nv
YT4gY3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+
JiYsIFN0cmluZyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDliNDA3NjY4YmIuLjY0MDEwZjM4ZGRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTEwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0
ZXIgZm9yIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwMTY3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTExMzk5ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIGEgbmV3IGNyb3NzLXByb2Nl
c3Mgb2JqZWN0IHBhaXIsIEF1ZGlvU2Vzc2lvblJvdXRlckFiaXRyYXRvci9Qcm94eSB3aGljaCBw
YXNzZXMgcm91dGluZworICAgICAgICBhcmJpdHJhdGlvbiBjb21tYW5kcyBmcm9tIFdlYkNvbnRl
bnQgLT4gVUlQcm9jZXNzLiBCZWNhdXNlIHRoZSBVSVByb2Nlc3MgY2FuIHJlcHJlc2VudAorICAg
ICAgICBtdWx0aXBsZSBXZWJDb250ZW50IHByb2Nlc3NlcywgaXQgbXVzdCB0cmFjayBhbGwgb3V0
c3RhbmRpbmcgYXJiaXRyYXRpb24gcmVxdWVzdHMgZ2xvYmFsbHkuCisKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vz
czo6aW5pdGlhbGl6ZUdQVVByb2Nlc3MpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjptZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5Ojp+QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6
OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KToKKyAgICAgICAgKFdlYktpdDo6
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6bGVhdmVSb3V0aW5nQXJiaXRyYXRp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5OjpjYXRlZ29yeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmRlc3RpbmF0aW9uSWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6U2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UpOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRBcmJpdHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbkZvckFyYml0cmF0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpTaGFyZWRBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBcmJpdHJhdGlv
bkZvckFyYml0cmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvclByb3h5OjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6fkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRl
Z29yeSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHk6OmxlYXZlUm91dGluZ0FyYml0cmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0F1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvcik6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpz
dXBwbGVtZW50TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yOjpiZWdpblJvdXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeSk6CisgICAgICAgIChX
ZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJpdHJh
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJi
aXRyYXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOgorCiAyMDIwLTA0LTEwICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdBUk5fVU5VU0VE
X1JFVFVSTiB0byBkZWNvZGUgbWV0aG9kcyBpbiBXZWJDb3JlQXJndW1lbnRDb2RlcnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA4ZjQ5Njg4
YTY3OS4uOGJkYjUxYTE2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTkzLDYgKzkzLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL05ldHdvcmsvQ3Vz
dG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CmluZGV4IDUzNWE2N2Q3ZDE1Li5kMTAwNDYzMzlmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xLDQgKzEsNyBA
QAogIyBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyBz
Y3JpcHQuCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
QXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2Fn
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvQXV0aGVu
dGljYXRpb25NYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCAyZDU5ZDg2YmMyYS4uNmM3MzFjNThmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKQEAgLTg2LDYgKzg2LDggQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9VSVByb2Nl
c3MvR1BVIFwKICAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9JbnNwZWN0b3IgXAogICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMgXAorICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL01lZGlhIFwKKyAgICAkKFdlYktpdDIpL1VJUHJvY2Vzcy9NZWRpYS9jb2NvYSBcCiAgICAg
JChXZWJLaXQyKS9VSVByb2Nlc3MvTWVkaWFTdHJlYW0gXAogICAgICQoV2ViS2l0MikvVUlQcm9j
ZXNzL05ldHdvcmsgXAogICAgICQoV2ViS2l0MikvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJv
dG9jb2xzIFwKQEAgLTExMCw2ICsxMTIsNyBAQCBlbHNlCiBlbmRpZgogCiBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKKwlBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IFwKICAgICBBdXRo
ZW50aWNhdGlvbk1hbmFnZXIgXAogICAgIEF1eGlsaWFyeVByb2Nlc3MgXAogICAgIENhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCmluZGV4IGVmMjM5NWVjNTlmLi45NTA3NmYyNjQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVQcm9jZXNzLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIHZvaWQgR1BVUHJvY2Vzczo6
aW5pdGlhbGl6ZUdQVVByb2Nlc3MoR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgV1RGOjpUaHJlYWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQo
KTsKICAgICBBdG9tU3RyaW5nOjppbml0KCk7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQog
ICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0U2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9u
Q2F0ZWdvcnkodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNDdjY2JlZDQ1MWMuLmQz
ODRjZTU2NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ0MSw2ICs0NDEsOCBAQCBVSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYlBhZ2VJbnNwZWN0b3JDb250cm9sbGVyLmNwcAogCiBVSVByb2Nlc3MvSW5zcGVj
dG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCiAKK1VJUHJvY2Vzcy9NZWRpYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAorCiBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDE3
YjViZGM3Y2VmLi42ZmY3Y2M3ZWVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yNTYsNyArMjU2LDcgQEAgc3Rh
dGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtZWRpYVJlbGF0ZWRNYWNoU2VydmljZXMoKQogI2lm
IFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgICAgICJjb20uYXBw
bGUuY29yZW1lZGlhLmVuZHBvaW50c3RyZWFtLnhwYyIsICJjb20uYXBwbGUuY29yZW1lZGlhLmVu
ZHBvaW50cGxheWJhY2tzZXNzaW9uLnhwYyIsCiAgICAgICAgICJjb20uYXBwbGUuY29yZW1lZGlh
LmVuZHBvaW50cmVtb3RlY29udHJvbHNlc3Npb24ueHBjIiwgImNvbS5hcHBsZS5jb3JlbWVkaWEu
dmlkZW9kZWNvZGVyIiwKLSAgICAgICAgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlkZW9lbmNvZGVy
IgorICAgICAgICAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2VuY29kZXIiLCAiY29tLmFwcGxl
LkJsdWV0b290aFNlcnZpY2VzIgogI2VuZGlmCiAgICAgfSk7CiAgICAgcmV0dXJuIHNlcnZpY2Vz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2I0OGZjNmYwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRv
clByb3h5LmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKwor
I2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKSAmJiAhSEFWRShBVkFVRElPX1JPVVRJTkdf
QVJCSVRFUikKKworI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlN
ZXNzYWdlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9j
ZXNzUHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNzKHByb3h5KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OmJlZ2luUm91
dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdv
cnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBjYWxsYmFjayhSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkLCBE
ZWZhdWx0Um91dGVDaGFuZ2VkOjpObyk7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6ZW5kUm91dGluZ0FyYml0cmF0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMmNkZjhkMDUwNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9TZXNzaW9u
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eQorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgLCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgdmlydHVhbCB+QXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eSgpOworCisgICAgV2ViQ29yZTo6QXVkaW9TZXNz
aW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5OyB9
CisKKyAgICBzdGF0aWMgdWludDY0X3QgZGVzdGluYXRpb25JZCgpIHsgcmV0dXJuIDE7IH0KKwor
ICAgIHVzaW5nIFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0aW9uQ2xpZW50OjpSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjsKKyAgICB1
c2luZyBEZWZhdWx0Um91dGVDaGFuZ2VkID0gV2ViQ29yZTo6QXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0aW9uQ2xpZW50OjpEZWZhdWx0Um91dGVDaGFuZ2VkOworICAgIHVzaW5nIEFyYml0cmF0
aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVy
cm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT47CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgLy8gTWVzc2FnZXMKKyAgICB2b2lkIGJlZ2lu
Um91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0
ZWdvcnlUeXBlLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYpOworICAgIHZvaWQgZW5kUm91dGluZ0Fy
Yml0cmF0aW9uKCk7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKKyAgICBXZWJD
b3JlOjpBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBtX2NhdGVnb3J5IHsgV2ViQ29yZTo6QXVk
aW9TZXNzaW9uOjpOb25lIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL0F1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjVjYzk5NDFkMmFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
KyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKK21lc3NhZ2Vz
IC0+IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkgTm90UmVmQ291bnRlZCB7Cisg
ICAgQmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0ZWdvcnkoZW51bTp1aW50OF90IFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5KSAtPiAoZW51bTp1aW50OF90
IFdlYktpdDo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6Um91dGluZ0FyYml0
cmF0aW9uRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJLaXQ6OkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk6OkRlZmF1bHRSb3V0ZUNoYW5nZWQgZGVmYXVsdFJvdXRlQ2hhbmdlZCkg
QXN5bmMKKyAgICBFbmRSb3V0aW5nQXJiaXRyYXRpb24oKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
Y29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40MzI5ZjM5YjRlYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbQpAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3JQcm94eS5oIgorCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pICYmIEhBVkUo
QVZBVURJT19ST1VUSU5HX0FSQklURVIpCisKKyNpbXBvcnQgIkF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvQXVkaW9TZXNzaW9uLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwor
I2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworY2xhc3MgU2hhcmVkQXJiaXRy
YXRvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFNoYXJlZEFyYml0cmF0b3ImIHNoYXJlZEluc3Rh
bmNlKCk7CisKKyAgICB1c2luZyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvciA9IEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudDo6Um91dGluZ0FyYml0cmF0aW9uRXJyb3I7CisgICAg
dXNpbmcgRGVmYXVsdFJvdXRlQ2hhbmdlZCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlv
bkNsaWVudDo6RGVmYXVsdFJvdXRlQ2hhbmdlZDsKKyAgICB1c2luZyBBcmJpdHJhdGlvbkNhbGxi
YWNrID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6QXJiaXRyYXRpb25DYWxs
YmFjazsKKworICAgIHZvaWQgYmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkmLCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYp
OworICAgIHZvaWQgZW5kUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcihBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Jik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8QXVk
aW9TZXNzaW9uOjpDYXRlZ29yeVR5cGU+IG1fY3VycmVudENhdGVnb3J5IHsgQXVkaW9TZXNzaW9u
OjpOb25lIH07CisgICAgV2Vha0hhc2hTZXQ8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQ
cm94eT4gbV9hcmJpdHJhdG9yczsKKyAgICBWZWN0b3I8QXJiaXRyYXRpb25DYWxsYmFjaz4gbV9l
bnF1ZXVlZENhbGxiYWNrczsKKyAgICBib29sIG1fc2V0dXBBcmJpdHJhdGlvbk9uZ29pbmcgeyBm
YWxzZSB9OworfTsKKworU2hhcmVkQXJiaXRyYXRvciYgU2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVk
SW5zdGFuY2UoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTaGFyZWRBcmJpdHJhdG9y
PiBpbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisKK3ZvaWQgU2hhcmVkQXJiaXRy
YXRvcjo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yUHJveHkmIHByb3h5LCBBcmJpdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgQVNTRVJUKCFtX2FyYml0cmF0b3JzLmNvbnRhaW5zKHByb3h5KSk7CisgICAg
bV9hcmJpdHJhdG9ycy5hZGQocHJveHkpOworCisgICAgaWYgKG1fc2V0dXBBcmJpdHJhdGlvbk9u
Z29pbmcpIHsKKyAgICAgICAgbV9lbnF1ZXVlZENhbGxiYWNrcy5hcHBlbmQoV1RGTW92ZShjYWxs
YmFjaykpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXF1ZXN0ZWRDYXRl
Z29yeSA9IHByb3h5LmNhdGVnb3J5KCk7CisKKyAgICBpZiAobV9jdXJyZW50Q2F0ZWdvcnkpIHsK
KyAgICAgICAgaWYgKCptX2N1cnJlbnRDYXRlZ29yeSA+PSByZXF1ZXN0ZWRDYXRlZ29yeSkgewor
ICAgICAgICAgICAgY2FsbGJhY2soUm91dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsIERlZmF1
bHRSb3V0ZUNoYW5nZWQ6Ok5vKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJlZFJvdXRp
bmdBcmJpdGVyXSBsZWF2ZUFyYml0cmF0aW9uXTsKKyAgICB9CisKKyAgICBtX2N1cnJlbnRDYXRl
Z29yeSA9IHJlcXVlc3RlZENhdGVnb3J5OworCisgICAgQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlv
bkNhdGVnb3J5IGFyYml0cmF0aW9uQ2F0ZWdvcnk7CisgICAgc3dpdGNoIChyZXF1ZXN0ZWRDYXRl
Z29yeSkgeworICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpNZWRpYVBsYXliYWNrOgorICAgICAgICBh
cmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxh
eWJhY2s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpSZWNvcmRBdWRp
bzoKKyAgICAgICAgYXJiaXRyYXRpb25DYXRlZ29yeSA9IEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRp
b25DYXRlZ29yeVBsYXlBbmRSZWNvcmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXVkaW9T
ZXNzaW9uOjpQbGF5QW5kUmVjb3JkOgorICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZB
dWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheUFuZFJlY29yZFZvaWNlOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICB9CisKKyAgICBtX3NldHVwQXJiaXRyYXRpb25PbmdvaW5nID0gdHJ1ZTsKKyAgICBtX2VucXVl
dWVkQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBbW1BBTDo6Z2V0
QVZBdWRpb1JvdXRpbmdBcmJpdGVyQ2xhc3MoKSBzaGFyZWRSb3V0aW5nQXJiaXRlcl0gYmVnaW5B
cmJpdHJhdGlvbldpdGhDYXRlZ29yeTphcmJpdHJhdGlvbkNhdGVnb3J5IGNvbXBsZXRpb25IYW5k
bGVyOlt0aGlzXShCT09MIGRlZmF1bHREZXZpY2VDaGFuZ2VkLCBOU0Vycm9yICogX051bGxhYmxl
IGVycm9yKSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGRlZmF1bHREZXZpY2VD
aGFuZ2VkLCBlcnJvciA9IHJldGFpblB0cihlcnJvcildIHsKKyAgICAgICAgICAgIG1fc2V0dXBB
cmJpdHJhdGlvbk9uZ29pbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlNoYXJlZEFyYml0cmF0b3I6OmJl
Z2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcjogJXMgZmFpbGVkIHdpdGggZXJyb3Ig
JXM6JXMiLCBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZygqbV9jdXJyZW50Q2F0ZWdvcnkpLmFz
Y2lpKCkuZGF0YSgpLCBbW2Vycm9yIGRvbWFpbl0gVVRGOFN0cmluZ10sIFtbZXJyb3IgbG9jYWxp
emVkRGVzY3JpcHRpb25dIFVURjhTdHJpbmddKTsKKworICAgICAgICAgICAgLy8gRklYTUU6IERv
IHdlIG5lZWQgdG8gcmVzZXQgc2FtcGxlIHJhdGUgYW5kIGJ1ZmZlciBzaXplIGZvciB0aGUgbmV3
IGRlZmF1bHQgZGV2aWNlPworICAgICAgICAgICAgaWYgKGRlZmF1bHREZXZpY2VDaGFuZ2VkKQor
ICAgICAgICAgICAgICAgIExPRyhNZWRpYSwgIkF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoKSAt
IGRlZmF1bHREZXZpY2VDaGFuZ2VkISIpOworCisgICAgICAgICAgICBWZWN0b3I8QXJiaXRyYXRp
b25DYWxsYmFjaz4gY2FsbGJhY2tzID0gV1RGTW92ZShtX2VucXVldWVkQ2FsbGJhY2tzKTsKKyAg
ICAgICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAgICAgICAgICAg
ICAgY2FsbGJhY2soZXJyb3IgPyBSb3V0aW5nQXJiaXRyYXRpb25FcnJvcjo6RmFpbGVkIDogUm91
dGluZ0FyYml0cmF0aW9uRXJyb3I6Ok5vbmUsIGRlZmF1bHREZXZpY2VDaGFuZ2VkID8gRGVmYXVs
dFJvdXRlQ2hhbmdlZDo6WWVzIDogRGVmYXVsdFJvdXRlQ2hhbmdlZDo6Tm8pOworICAgICAgICB9
KTsKKyAgICB9XTsKK30KKwordm9pZCBTaGFyZWRBcmJpdHJhdG9yOjplbmRSb3V0aW5nQXJiaXRy
YXRpb25Gb3JBcmJpdHJhdG9yKEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkmIHBy
b3h5KQoreworICAgIEFTU0VSVChtX2FyYml0cmF0b3JzLmNvbnRhaW5zKHByb3h5KSk7CisgICAg
bV9hcmJpdHJhdG9ycy5yZW1vdmUocHJveHkpOworCisgICAgaWYgKCFtX2FyYml0cmF0b3JzLmNv
bXB1dGVzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBjYWxsYmFj
ayA6IG1fZW5xdWV1ZWRDYWxsYmFja3MpCisgICAgICAgIGNhbGxiYWNrKFJvdXRpbmdBcmJpdHJh
dGlvbkVycm9yOjpDYW5jZWxsZWQsIERlZmF1bHRSb3V0ZUNoYW5nZWQ6Ok5vKTsKKworICAgIG1f
ZW5xdWV1ZWRDYWxsYmFja3MuY2xlYXIoKTsKKyAgICBtX2N1cnJlbnRDYXRlZ29yeS5yZXNldCgp
OworICAgIFtbUEFMOjpnZXRBVkF1ZGlvUm91dGluZ0FyYml0ZXJDbGFzcygpIHNoYXJlZFJvdXRp
bmdBcmJpdGVyXSBsZWF2ZUFyYml0cmF0aW9uXTsKK30KKworQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3JQcm94eTo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eShXZWJQcm9j
ZXNzUHJveHkmIHByb3h5KQorICAgIDogbV9wcm9jZXNzKHByb3h5KQoreworICAgIG1fcHJvY2Vz
cy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgZGVzdGluYXRpb25JZCgpLCAqdGhpcyk7
Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6On5BdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRvclByb3h5KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIGRlc3RpbmF0aW9uSWQoKSk7Cit9CisKK3ZvaWQgQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTo6YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25XaXRoQ2F0
ZWdvcnkoV2ViQ29yZTo6QXVkaW9TZXNzaW9uOjpDYXRlZ29yeVR5cGUgY2F0ZWdvcnksIEFyYml0
cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBtX2NhdGVnb3J5ID0gY2F0ZWdvcnk7
CisgICAgU2hhcmVkQXJiaXRyYXRvcjo6c2hhcmVkSW5zdGFuY2UoKS5iZWdpblJvdXRpbmdBcmJp
dHJhdGlvbkZvckFyYml0cmF0b3IoKnRoaXMsIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwordm9p
ZCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjplbmRSb3V0aW5nQXJiaXRyYXRp
b24oKQoreworICAgIFNoYXJlZEFyYml0cmF0b3I6OnNoYXJlZEluc3RhbmNlKCkuZW5kUm91dGlu
Z0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcigqdGhpcyk7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk3MTM2ZDUwMWI0Li44MjM1MGI1
MGM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3MSw2ICsy
NzEsNyBAQCBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewor
Y2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTsKIGNsYXNzIERyYXdpbmdB
cmVhUHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKIGNsYXNzIEdhbWVwYWRE
YXRhOwpAQCAtMjc3NSw2ICsyNzc2LDEwIEBAIHByaXZhdGU6CiAgICAgTmF2aWdhdGVkQXdheUZy
b21BcHBCb3VuZERvbWFpbiBtX2hhc05hdmlnYXRlZEF3YXlGcm9tQXBwQm91bmREb21haW4geyBO
YXZpZ2F0ZWRBd2F5RnJvbUFwcEJvdW5kRG9tYWluOjpObyB9OwogICAgIGJvb2wgbV9pZ25vcmVz
QXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1fdXNlclNjcmlwdHNOb3RpZmll
ZCB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eT4gbV9yb3V0aW5n
QXJiaXRyYXRvcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyYWVkZGFkMDE3NC4u
YzNhZmM1NmEwNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtODcsNiArODcsMTAgQEAKICNpbmNsdWRlICJTZWNJdGVtU2hpbVByb3h5LmgiCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorI2luY2x1ZGUgIkF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuaCIKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NB
R0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0
aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfVVJMKHVybCkgTUVTU0FHRV9DSEVDS19CQVNF
KGNoZWNrVVJMUmVjZWl2ZWRGcm9tV2ViUHJvY2Vzcyh1cmwpLCBjb25uZWN0aW9uKCkpCiAKQEAg
LTE4Nyw2ICsxOTEsOSBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9j
ZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX21heUhhdmVV
bml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24oZmFsc2UpCiAgICAgLCBtX251bWJlck9m
VGltZXNTdWRkZW5UZXJtaW5hdGlvbldhc0Rpc2FibGVkKDApCiAgICAgLCBtX3Rocm90dGxlcigq
dGhpcywgcHJvY2Vzc1Bvb2wuc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbigpKQorI2lm
IEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgICwgbV9yb3V0aW5nQXJiaXRyYXRvciht
YWtlVW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+KCp0aGlzKSkK
KyNlbmRpZgogICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1f
dmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3
ZWJzaXRlRGF0YVN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCAyMTFiYjQ1NWU1ZS4uM2FiMWI4ZTIzOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC03Nyw2ICs3Nyw3IEBAIGVudW0gY2xhc3MgVGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA6IHVpbnQ4X3Q7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CitjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OwogY2xhc3MgTmV0d29y
a1Byb2Nlc3NQcm94eTsKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKIGNsYXNzIFBhZ2VDbGllbnQ7
CkBAIC01MzYsNiArNTM3LDEwIEBAIHByaXZhdGU6CiAgICAgRm9yZWdyb3VuZFdlYlByb2Nlc3NU
b2tlbiBtX2ZvcmVncm91bmRUb2tlbjsKICAgICBCYWNrZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1f
YmFja2dyb3VuZFRva2VuOwogCisjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCisgICAg
VW5pcXVlUmVmPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk+IG1fcm91dGluZ0Fy
Yml0cmF0b3I7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJvb2wgbV9oYXNT
ZW50TWVzc2FnZVRvVW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9oYXNTZW50TWVzc2FnZVRvVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGZhY2U5ZTI3MjMzLi5lMjYzZDFjMTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzA3LDYgKzE3MDcsOCBAQAogCQlDRDE5RDJF
QTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIwNDY0MDZG
MDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyODY1RUUyMjU1NTYyMDAwNjA2
QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nl
c3NUYXNrU3RhdGVPYnNlcnZlci5oICovOyB9OwogCQlDRDI4NjVFRjIyNTU1NjIwMDA2MDZBQzcg
LyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyODY1RUQyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlci5tbSAqLzsgfTsKKwkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8q
IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwRDAyNDQx
MDE0QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLzsgfTsKIAkJQ0Q0NjYxODMyNDAxMEE2NzAwNDdDQTM1
IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ2NjE4MTI0MDEwNTY0MDA0
N0NBMzUgLyogUmVtb3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJQ0Q0OTFCMDgxRTcwRDA1RjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIw
NjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLzsgfTsKIAkJ
Q0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENDkxQjBCMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CkBAIC0xNzIxLDYgKzE3MjMsNyBAQAogCQlDRDc4RTEx
NTFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMTMxREI3RDdFRDAwMTRBMkRFIC8q
IEZ1bGxzY3JlZW5DbGllbnQuaCAqLzsgfTsKIAkJQ0Q3OEUxMTcxREI3REMwQTAwMTRBMkRFIC8q
IEFQSUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xp
ZW50LmggKi87IH07CiAJCUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVu
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDRDdDRjM2MTI0
NDRDQ0E2MDAzQkM0RDUgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0NTcw
REUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlD
b2NvYS5tbSAqLzsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLzsg
fTsKIAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTE5
MUNCREJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi87IH07CiAJCUNE
QTI5QTIwMUNCRUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTFFMUNC
RUI1RkIwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAqLzsgfTsKQEAg
LTUwMzIsNiArNTAzNSwxNSBAQAogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxsc2NyZWVuVG91
Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI4NjVF
QzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcwRDAyNDQxMDE0QTAwQTNEQ0VC
IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MEQx
MjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94
eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENDU3MEQyMjQ0MTAx
NEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q0NTcw
REIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyog
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDQ1NzBERDI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q0NTcwREUyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1ZGlvU2Vzc2lvblJvdXRp
bmdBcmJpdHJhdG9yUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0Q0NjYxN0YyNDAxMDQ1ODAwNDdDQTM1IC8qIFJlbW90ZUNETUluc3RhbmNlU2Vzc2lvbi5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBSZW1vdGVDRE1JbnN0YW5jZVNlc3Npb24ubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDY2MTgwMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1v
dGVDRE1JbnN0YW5jZVNlc3Npb25NZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVt
b3RlQ0RNSW5zdGFuY2VTZXNzaW9uTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENDY2MTgxMjQwMTA1NjQwMDQ3Q0EzNSAvKiBSZW1vdGVDRE1JbnN0YW5j
ZVNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ0RN
SW5zdGFuY2VTZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTgzMDksNiArODMyMSw4IEBACiAJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAv
KiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
Q0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcCAqLywKKwkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IuaCAqLywKIAkJCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTWFuYWdlci5oICovLAogCQkJCUNEQTI5QTFDMUNCREJGNUIwMDkwMUNDRiAv
KiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJCUNEQTI5QTE4MUNC
REJGNDEwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovLApAQCAtODg0MSw2
ICs4ODU1LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJ
CUJDMTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzEx
M0YzQjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCUNENDU3MEQ4MjQ0NENBMTcwMEEzRENFQiAv
KiBNZWRpYSAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywK
IAkJCQkzMUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkx
QUVGQ0MwNTExRDAxRjM0MDA4MjE5RDMgLyogUGx1Z2lucyAqLywKQEAgLTk4OTYsNiArOTkxMSw5
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEN0RFQkUyMjEy
NjlFNEIwMEI5RjczQyAvKiB1bmlmaWVkLXNvdXJjZXMgKi8sCisJCQkJQ0Q0NTcwRDAyNDQxMDE0
QTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAorCQkJCUNENDU3MEQxMjQ0MTAxNEIwMEEzRENFQiAvKiBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlDRDQ1NzBEMjI0NDEw
MTRCMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oICovLAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNh
dGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgzQUQw
MDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTk5NTVB
NkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAq
LywKQEAgLTEwMjEyLDYgKzEwMjMwLDI1IEBACiAJCQluYW1lID0gZm9ybXM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RDRUIgLyogTWVk
aWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUNENDU3
MEQ5MjQ0NENBNTgwMEEzRENFQiAvKiBjb2NvYSAqLywKKwkJCQlDRDQ1NzBERDI0NDRDQTU4MDBB
M0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5jcHAgKi8sCisJCQkJ
Q0Q0NTcwREIyNDQ0Q0E1ODAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
UHJveHkuaCAqLywKKwkJCQlDRDQ1NzBEQzI0NDRDQTU4MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlwYXRoID0g
TWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlDRDQ1NzBEOTI0NDRD
QTU4MDBBM0RDRUIgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUNENDU3MERFMjQ0NENBNTgwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29hOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQ0Q2MTc4MTExRTZERTk4MDAwRkRB
NTdEIC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
QEAgLTEyNTc5LDYgKzEyNjE2LDkgQEAKIAkJCQkyRDkyQTc3QjIxMkI2QTcxMDBGNDkzRkQgLyog
QXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAw
OTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
N0MyMTJCNkE3MTAwRjQ5M0ZEIC8qIEF0dGFjaG1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEN0NGMzYxMjQ0NENDQTYwMDNCQzRENSAvKiBBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlDRDQ1NzBEMzI0NDExM0I1MDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0
b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJGNThBMjEy
QTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk5NTVBNkY0MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5MjQ5QUQ1MUYx
RjFFNTYwMEI2MkZCQiAvKiBBdXRvbWF0aW9uRnJvbnRlbmREaXNwYXRjaGVycy5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggZjY3ZjI3OTJiNWUuLjVhMTk5NGYyMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTYwLDcgKzU2MCw3IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKIAogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHBhcmFtZXRlcnMuc3RvcmUpOwog
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51
c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSkKICAgICAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpzZXRTaG91bGRNYW5hZ2VBdWRpb1Nlc3Npb25DYXRlZ29yeSh0cnVlKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDBiOWRkZGI3YTYxLi5lYjFl
MmI2ZTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTg0
LDYgKzE4NCwxMCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKyNpbmNsdWRlICJBdWRpb1Nl
c3Npb25Sb3V0aW5nQXJiaXRyYXRvci5oIgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0df
U0VTU0lPTl9JRCAobV9zZXNzaW9uSUQgPyBtX3Nlc3Npb25JRC0+dG9VSW50NjQoKSA6IDApCiAj
ZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0Vf
TE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbc2Vzc2lv
bklEPSUiIFBSSXU2NCAiXSBXZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgUkVMRUFTRV9MT0dfU0VT
U0lPTl9JRCwgIyNfX1ZBX0FSR1NfXykKICNkZWZpbmUgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtzZXNzaW9uSUQ9JSIgUFJJdTY0ICJdIFdl
YlByb2Nlc3M6OiIgZm10LCB0aGlzLCBSRUxFQVNFX0xPR19TRVNTSU9OX0lELCAjI19fVkFfQVJH
U19fKQpAQCAtMjU5LDYgKzI2MywxMCBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBh
ZGRTdXBwbGVtZW50PFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk+KCk7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorICAgIGFkZFN1cHBsZW1lbnQ8QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3I+KCk7CisjZW5kaWYKKwogICAgIEdpZ2FjYWdlOjpmb3JiaWREaXNh
YmxpbmdQcmltaXRpdmVHaWdhY2FnZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTY5ODllN2E3ZjYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9T
ZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0
cmF0b3IuaCIKKworI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQorCisjaW5jbHVkZSAi
QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eS5oIgorI2luY2x1ZGUgIkF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvcjo6QXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IoV2ViUHJvY2VzcyYg
cHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIEF1ZGlvU2Vzc2lvbjo6
c2hhcmVkU2Vzc2lvbigpLnNldFJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudChtYWtlV2Vha1B0cih0
aGlzKSk7Cit9CisKK0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjp+QXVkaW9TZXNzaW9u
Um91dGluZ0FyYml0cmF0b3IoKSA9IGRlZmF1bHQ7CisKK2NvbnN0IGNoYXIqIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0dXJuICJBdWRp
b1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvciI7Cit9CisKK3ZvaWQgQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENhdGVnb3J5KEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlIGNhdGVnb3J5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJvdXRp
bmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4mJiBjYWxsYmFjaykKK3sK
KyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpCZWdpblJv
dXRpbmdBcmJpdHJhdGlvbldpdGhDYXRlZ29yeShjYXRlZ29yeSksIFdURk1vdmUoY2FsbGJhY2sp
LCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0aW5hdGlvbklkKCkpOwor
fQorCit2b2lkIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yOjpsZWF2ZVJvdXRpbmdBYnJp
dHJhdGlvbigpCit7CisgICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk6OkVuZFJvdXRp
bmdBcmJpdHJhdGlvbigpLCBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OjpkZXN0
aW5hdGlvbklkKCkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzU2MGFiNTY2NDEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvQXVkaW9TZXNz
aW9uUm91dGluZ0FyYml0cmF0b3IuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKKworI2luY2x1ZGUg
IldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24u
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUHJvY2VzczsKKworY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IgZmlu
YWwKKyAgICA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudAorICAgICwgcHVibGljIFdlYkNv
cmU6OkF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdGlvbkNsaWVudAorICAgICwgcHVibGljIENh
bk1ha2VXZWFrUHRyPEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yPiB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3IoV2ViUHJvY2VzcyYpOworICAgIHZpcnR1YWwgfkF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yKCk7CisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5h
bWUoKTsKKworICAgIHVzaW5nIFdlYWtWYWx1ZVR5cGUgPSBXZWJDb3JlOjpBdWRpb1Nlc3Npb25S
b3V0aW5nQXJiaXRyYXRpb25DbGllbnQ7CisKK3ByaXZhdGU6CisgICAgLy8gQXVkaW9TZXNzaW9u
Um91dGluZ0Ficml0cmF0b3IKKyAgICB2b2lkIGJlZ2luUm91dGluZ0FyYml0cmF0aW9uV2l0aENh
dGVnb3J5KFdlYkNvcmU6OkF1ZGlvU2Vzc2lvbjo6Q2F0ZWdvcnlUeXBlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJvdXRpbmdBcmJpdHJhdGlvbkVycm9yLCBEZWZhdWx0Um91dGVDaGFuZ2VkKT4m
JikgZmluYWw7CisgICAgdm9pZCBsZWF2ZVJvdXRpbmdBYnJpdHJhdGlvbigpIGZpbmFsOworCisg
ICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCmluZGV4IDAwNGI4NTRjY2RkLi4wYWMzODQxMWU5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwCkBAIC01MjEsNyArNTIxLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9DYXB0dXJlU28KICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgeyAiQXVkaW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRl
ZCJfcyB9OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSB8fCBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICAvLyBGSVhNRTog
UmVtb3ZlIGRpc2FibGluZyBvZiB0aGUgYXVkaW8gc2Vzc2lvbiBjYXRlZ29yeSBtYW5hZ2VtZWVu
dCBvbmNlIHdlIG1vdmUgYWxsIG1lZGlhIHBsYXlpbmcgdG8gR1BVUHJvY2Vzcy4KICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogICAgICAgICBEZXByZWNhdGVkR2xvYmFsU2V0
dGluZ3M6OnNldFNob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KHRydWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCmlu
ZGV4IDViMzA1NGY0MzhiLi4zNTVlM2JhMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgpAQCAtOTA1LDYgKzkwNSw3IEBA
CiAgICAgICAgICAgICAiY29tLmFwcGxlLmNmcHJlZnNkLmRhZW1vbiIKICAgICAgICAgICAgICJj
b20uYXBwbGUudGNjZCIKICAgICAgICAgICAgICJjb20uYXBwbGUubHNkLm1hcGRiIgorICAgICAg
ICAgICAgImNvbS5hcHBsZS5CbHVldG9vdGhTZXJ2aWNlcyIKIAogICAgICAgICAgICAgOzs7IEZJ
WE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BV
IHByb2Nlc3MgaXMgY29tcGxldGUKICAgICAgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9D
b21wb25lbnRSZWdpc3RyYXIiICJjb20uYXBwbGUuY29yZW1lZGlhLmVuZHBvaW50LnhwYyIgImNv
bS5hcHBsZS5jb3JlbWVkaWEuZW5kcG9pbnRzdHJlYW0ueHBjIgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJhZDAxNzUwNTBlLi44ZmI2NDEyYTQ1
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA0LTEwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNjcK
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHRlc3Qg
Zm9yIHNvZnRsaW5rIG9mIEFWQXVkaW9Sb3V0aW5nQXJiaXRlci4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW06
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wNC0xMCAgQWxpY2lhIEJv
eWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl0gRGF0YU11dGV4
OiBBZGQgcnVuVW5sb2NrZWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rVGVzdC5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlua1Rlc3QubW0K
aW5kZXggOTkyOTQwZTRlMjguLmIzMTQ3YmIwZDA5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmtUZXN0Lm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGlua1Rlc3QubW0KQEAgLTc1LDYgKzc1LDEwIEBAIFRFU1QoQVZGb3VuZGF0aW9uU29mdExp
bmssIENsYXNzZXMpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZTcGVlY2hTeW50aGVzaXNWb2lj
ZUNsYXNzKCksIG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBIQVZFKEFWQVVESU9fUk9VVElOR19B
UkJJVEVSKQorICAgIEVYUEVDVF9ORShQQUw6OmdldEFWQXVkaW9Sb3V0aW5nQXJiaXRlckNsYXNz
KCksIG51bGxwdHIpOworI2VuZGlmCisKICNpZiBIQVZFKE1FRElBX1BMQVlFUikgJiYgIVBMQVRG
T1JNKFdBVENIT1MpCiAgICAgRVhQRUNUX05FKFBBTDo6Z2V0QVZSb3V0ZURldGVjdG9yQ2xhc3Mo
KSwgbnVsbHB0cik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396508</attachid>
            <date>2020-04-15 00:17:09 -0700</date>
            <delta_ts>2020-04-15 08:29:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210167-20200415001709.patch</filename>
            <type>text/plain</type>
            <size>1678</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3ZGViMWQ2ZmZjMDcwYjY5
ZDc5MzJhODNhZWYxYzNlYWQyY2YzZWUuLjk0NWJkNGM0ZDg2MjVjMzQ0MzRlNzgzOGY3MmVjNDJh
OTYxYWI0NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQtMTUgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRp
b1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMDE2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEEgZm9sbG93LXVwIHBhdGNoIHRvIGZpeCBhIGJ1aWxkIGVycm9yLgor
CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJp
dHJhdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkQXJiaXRyYXRvcjo6
YmVnaW5Sb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yKToKKwogMjAyMC0wNC0xNCAgTWVn
YW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpbGUgVXBs
b2FkIE1lbnVzIHByZXNlbnRlZCBmcm9tIG9kZCBsb2NhdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRy
YXRvclByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9B
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5Q29jb2EubW0KaW5kZXggNDMyOWYzOWI0
ZWFlZjE1N2I4ODJiNmMwNDIzNTFjZWViY2I2Yjk3ZC4uMThiNGE4ZGYyNTZmODIwMGQ1MDM2ZmVi
ZmUxM2M5ZjdjNWZlMzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWEvY29jb2EvQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL0F1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHlDb2NvYS5tbQpAQCAtODgsNyArODgsNyBAQCB2b2lkIFNoYXJlZEFyYml0
cmF0b3I6OmJlZ2luUm91dGluZ0FyYml0cmF0aW9uRm9yQXJiaXRyYXRvcihBdWRpb1Nlc3Npb25S
b3V0aW5nQQogCiAgICAgbV9jdXJyZW50Q2F0ZWdvcnkgPSByZXF1ZXN0ZWRDYXRlZ29yeTsKIAot
ICAgIEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeSBhcmJpdHJhdGlvbkNhdGVnb3J5
OworICAgIEFWQXVkaW9Sb3V0aW5nQXJiaXRyYXRpb25DYXRlZ29yeSBhcmJpdHJhdGlvbkNhdGVn
b3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJpdHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7CiAgICAgc3dp
dGNoIChyZXF1ZXN0ZWRDYXRlZ29yeSkgewogICAgIGNhc2UgQXVkaW9TZXNzaW9uOjpNZWRpYVBs
YXliYWNrOgogICAgICAgICBhcmJpdHJhdGlvbkNhdGVnb3J5ID0gQVZBdWRpb1JvdXRpbmdBcmJp
dHJhdGlvbkNhdGVnb3J5UGxheWJhY2s7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>