<?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>239054</bug_id>
          
          <creation_ts>2022-04-10 14:50:50 -0700</creation_ts>
          <short_desc>Adopt &quot;version set&quot;-based linked-on-or-after checks instead of platform-specific ones</short_desc>
          <delta_ts>2022-04-12 17:39:43 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860144</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 14:50:50 -0700</bug_when>
    <thetext>Adopt &quot;version set&quot;-based linked-on-or-after checks instead of platform-specific ones</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860145</commentid>
    <comment_count>1</comment_count>
      <attachid>457212</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 14:52:05 -0700</bug_when>
    <thetext>Created attachment 457212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860146</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 14:52:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/83436715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860147</commentid>
    <comment_count>3</comment_count>
      <attachid>457212</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 14:54:02 -0700</bug_when>
    <thetext>Comment on attachment 457212
Patch

Oh dear, I forgot about the SPI headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860151</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 15:01:25 -0700</bug_when>
    <thetext>Actually, not sure we can make SPI headers because of how dyld_build_version_t values are constructed. We might just have to always-be-linked-on-or-after-everything in the open source build? Though I can imagine folks objecting to that. Will ask around!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860152</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 15:05:26 -0700</bug_when>
    <thetext>Or we could fall back to the old mechanism if the SDK we&apos;re building against doesn&apos;t have the requisite dyld_build_version_t defines... that would solve both the open source build and back-deployment problems. I will try to hack that up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860181</commentid>
    <comment_count>6</comment_count>
      <attachid>457220</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 18:42:57 -0700</bug_when>
    <thetext>Created attachment 457220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860182</commentid>
    <comment_count>7</comment_count>
      <attachid>457221</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 18:46:50 -0700</bug_when>
    <thetext>Created attachment 457221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860183</commentid>
    <comment_count>8</comment_count>
      <attachid>457222</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 19:03:22 -0700</bug_when>
    <thetext>Created attachment 457222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860184</commentid>
    <comment_count>9</comment_count>
      <attachid>457223</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 19:08:41 -0700</bug_when>
    <thetext>Created attachment 457223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860185</commentid>
    <comment_count>10</comment_count>
      <attachid>457224</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-10 19:14:03 -0700</bug_when>
    <thetext>Created attachment 457224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860362</commentid>
    <comment_count>11</comment_count>
      <attachid>457224</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-11 11:41:59 -0700</bug_when>
    <thetext>Comment on attachment 457224
Patch

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

&gt; Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.cpp:75
&gt; +    if (linkedBefore(dyld_fall_2015_os_versions, DYLD_IOS_VERSION_9_0, DYLD_MACOSX_VERSION_10_11))
&gt; +        disableBehavior(SDKAlignedBehavior::PictureInPictureMediaPlayback);
&gt; +
&gt; +    if (linkedBefore(dyld_fall_2016_os_versions, DYLD_IOS_VERSION_10_0, DYLD_MACOSX_VERSION_10_12)) {

This code could make use of the fact that if &apos;linkedBefore(dyld_fall_2015_os_versions &apos; is true, then &apos;linkedBefore(dyld_fall_2016_os_versions&apos; must also be true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860363</commentid>
    <comment_count>12</comment_count>
      <attachid>457224</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-11 11:49:19 -0700</bug_when>
    <thetext>Comment on attachment 457224
Patch

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

&gt; Source/WTF/wtf/Bitmap.h:249
&gt; +    memset(bits.data(), 0xFF, sizeof(bits));

We chatted about this on Slack — it seems this might not work well with the implementation of `Bitmap::count()`, since it would end up counting bits after the last (valid) bit in the map.

(Though, that shouldn&apos;t trigger any bugs, since we only use `setAll()` for the linked-on behaviors map below)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860367</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-04-11 11:53:51 -0700</bug_when>
    <thetext>Can this use a big OptionSet&lt;&gt; instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860379</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-11 13:12:06 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #13)
&gt; Can this use a big OptionSet&lt;&gt; instead?

We&apos;re already at 60 bits, IDK if uint128_t is a thing I can use, and since we almost never remove things from this list and add them at a greater frequency now, I think using something flexible makes the most sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860380</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-11 13:14:27 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 457224 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457224&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.cpp:75
&gt; &gt; +    if (linkedBefore(dyld_fall_2015_os_versions, DYLD_IOS_VERSION_9_0, DYLD_MACOSX_VERSION_10_11))
&gt; &gt; +        disableBehavior(SDKAlignedBehavior::PictureInPictureMediaPlayback);
&gt; &gt; +
&gt; &gt; +    if (linkedBefore(dyld_fall_2016_os_versions, DYLD_IOS_VERSION_10_0, DYLD_MACOSX_VERSION_10_12)) {
&gt; 
&gt; This code could make use of the fact that if
&gt; &apos;linkedBefore(dyld_fall_2015_os_versions &apos; is true, then
&gt; &apos;linkedBefore(dyld_fall_2016_os_versions&apos; must also be true.

It is true, though dyld_program_sdk_at_least is very cheap, and it&apos;s likely not worth the decreased ergonomics within this function that people have to frequently add to (and also might confuse the weird one-off one where the versions are different).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860381</commentid>
    <comment_count>16</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-11 13:14:51 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #12)
&gt; Comment on attachment 457224 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457224&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Bitmap.h:249
&gt; &gt; +    memset(bits.data(), 0xFF, sizeof(bits));
&gt; 
&gt; We chatted about this on Slack — it seems this might not work well with the
&gt; implementation of `Bitmap::count()`, since it would end up counting bits
&gt; after the last (valid) bit in the map.
&gt; 
&gt; (Though, that shouldn&apos;t trigger any bugs, since we only use `setAll()` for
&gt; the linked-on behaviors map below)

I will fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860592</commentid>
    <comment_count>17</comment_count>
      <attachid>457312</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-11 23:46:03 -0700</bug_when>
    <thetext>Created attachment 457312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860593</commentid>
    <comment_count>18</comment_count>
      <attachid>457313</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-04-11 23:48:34 -0700</bug_when>
    <thetext>Created attachment 457313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860605</commentid>
    <comment_count>19</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-04-12 00:25:40 -0700</bug_when>
    <thetext>Holy moly we have a lot of linkedOnOrAfter checks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860757</commentid>
    <comment_count>20</comment_count>
      <attachid>457313</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-12 11:59:54 -0700</bug_when>
    <thetext>Comment on attachment 457313
Patch

r=mews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860980</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-12 17:39:36 -0700</bug_when>
    <thetext>Committed r292793 (249576@main): &lt;https://commits.webkit.org/249576@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457313.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457212</attachid>
            <date>2022-04-10 14:52:05 -0700</date>
            <delta_ts>2022-04-10 15:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410145204.patch</filename>
            <type>text/plain</type>
            <size>93457</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjYzMmQ0M2U4ZmVhNDAyZThlOGRjOTcxMTY1ZGM3MGFlZWI2ZmVkLi41OTBhYjA2NDc1ZGM5OWRm
MTZhYjFkMTZhMDllNjg2MGViMjU4NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA4ICBFbGxp
b3R0IFdpbGxpYW1zICA8ZW13QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI5MjU5MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKaW5kZXggNDg3MzY5MjRlOWM3MjdjNjY0NDIxNmYyNDM5MTA0NDEwMjk4
YTZmNC4uZWE5OWJmYTFhMzNkMmM1NjVmOGM1OWI4MDg0NTI1ZTkyMjQyYzI3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN3aXRjaCB0byBgZHlsZF9wcm9ncmFtX3Nka19hdF9sZWFzdGAsIHdo
aWNoIGNvcnJlY3RseSBoYW5kbGVzIFNESworICAgICAgICBjaGVja3MgZm9yIGJpbmFyaWVzIGJ1
aWx0IGZvciBvbmUgU0RLIHJ1bm5pbmcgb24gYW5vdGhlciBwbGF0Zm9ybQorICAgICAgICAoZS5n
LiBpT1MgYXBwcyBydW5uaW5nIG9uIG1hY09TKS4KKworICAgICAgICBCZWNhdXNlIGBkeWxkX3By
b2dyYW1fc2RrX2F0X2xlYXN0YCBpcyBiYXNlZCBvZmYgbW9yZSB0aGFuIGEgc2ltcGxlCisgICAg
ICAgIGludGVnZXIgY29tcGFyaXNvbiBsaWtlIG91ciBvbGQgU0RLIGNoZWNrLCB3ZSBtb3ZlIGl0
IGludG8gdGhlCisgICAgICAgIGFwcGxpY2F0aW9uIHByb2Nlc3MsIGFuZCBqdXN0IHRyYW5zbWl0
IHRoZSBjb21wdXRlZCBiZWhhdmlvcnMgdG8KKyAgICAgICAgc3VicHJvY2Vzc2VzLgorCisgICAg
ICAgIFJlbW92ZSBmdW5jdGlvbnMgdGhhdCBleHBvc2UvdHJhbnNtaXQgcGxhdGZvcm0tc3BlY2lm
aWMgU0RLIHZlcnNpb25zLAorICAgICAgICBzbyB0aGF0IHVzYWdlIGlzbid0IGFjY2lkZW50YWxs
eSByZWludHJvZHVjZWQuCisKKyAgICAgICAgUmUtZnJhbWUgdGhlIG5hbWluZyBvZiBvdXIgbGlu
a2VkLW9uLW9yLWFmdGVyIGNoZWNrcyBhcyBiZWluZyBhYm91dAorICAgICAgICBzcGVjaWZpYyBi
ZWhhdmlvcnMgaW5zdGVhZCBvZiBTREsgdmVyc2lvbnMuCisKKyAgICAgICAgKiB3dGYvQml0bWFw
Lmg6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6c2V0QWxsKToKKyAgICAgICAgQWRkIGBzZXRB
bGxgLCB3aGljaCBzZXRzIGFsbCB0aGUgYml0cyBpbiB0aGUgQml0bWFwLCBsaWtlIEZhc3RCaXRW
ZWN0b3IgaGFzLgorICAgICAgICBFeHBvc2UgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBpbiBieXRl
cyB0byBtYWtlIHRyYW5zbWl0dGluZyB0aGUgQml0bWFwIHNpbXBsZS4KKworICAgICAgICAqIHd0
Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tOgorICAgICAgICAoV1RGOjpjYW5NaW5pbWl6ZUxhbmd1
YWdlcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCisgICAgICAgICogd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcDoKKyAgICAgICAgKGRpc2FibGVB
ZGRpdGlvbmFsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmNvbXB1dGVTREtB
bGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9yc1ZhbHVl
KToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNl
dFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RGOjplbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZGlzYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMp
OgorICAgICAgICAoV1RGOjpsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IpOgorICAgICAg
ICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
OmFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpzZXRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiB3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aDoKKwogMjAyMi0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8PigpIG1heSBjYXVzZSBzb21lIHVubmVjZXNzYXJ5IHJl
Zi1jb3VudGluZyBjaHVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3OTkzMDkyNjVlZGQyZTZkMWE5ZjJlNDIx
Njg1YWM4Y2E1NGRhZmEuLmMyNmY3OGI2ZDI1ZmVmY2EwNTUxZmNkMjQ0Y2UwN2FkZGQwMGE5ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJh
c2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZp
YyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4
ZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTV2luZG93UHJveHk6OnNldFdpbmRvdyk6CisgICAgICAgICog
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxl
bWVudFNlc3Npb246OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2sgY29uc3QpOgor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NS
ZXF1ZXN0KToKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpR
dWlya3M6Om5lZWRzV2VDaGF0U2Nyb2xsaW5nUXVpcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UXVpcmtzOjpzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpz
aG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRTdXBwcmVzc1RocmVhZFNhZmV0eUNoZWNrKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjppc0RvdFByZWZpeGVkRm9yYmlkZGVuRm9udCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhVVJMRGVjb2Rlcjo6c2hvdWxkUmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKToKKyAgICAgICAg
KiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlVGVz
dFN1cHBvcnQ6OnNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKToKKyAgICAg
ICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKIDIwMjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBzdGF0aWNfcG9pbnRlcl9jYXN0PD4oKSBtYXkgY2F1
c2Ugc29tZSB1bm5lY2Vzc2FyeSByZWYtY291bnRpbmcgY2h1cm4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzA3ZjZm
OWE0ZmRkNDY3MWQzOGE3YjE2M2VhZTFjZmU2YjlkYzQyNy4uYzdhMjY5NzBlMDlmMjRmYWYyMWIw
ODU3Yjg4YmY5ZTBlNzNkM2Y5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMi0wNC0x
MCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9w
dCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBv
ZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hh
cmVkL0F1eGlsaWFyeVByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
WFBDU2VydmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAo
V2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLQWxpZ25l
ZEJlaGF2aW9ycyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlOjpnZXRDbGllbnRTREtWZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5j
aGVyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJv
Y2Vzcyk6CisgICAgICAgIEluc3RlYWQgb2YgdHJhbnNtaXR0aW5nIHRoZSBTREsgdmVyc2lvbiBh
bmQgb3ZlcnJpZGUgc3RhdGUgaW4gdGhlIGJvb3RzdHJhcAorICAgICAgICBtZXNzYWdlLCBqdXN0
IHNlbmQgdGhlIGNvbXB1dGVkIHNldCBvZiBiZWhhdmlvcnMuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKiBTaGFyZWQv
Q29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwpOgor
ICAgICAgICAqIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAg
ICAgKFdlYktpdDo6ZGV0ZXJtaW5lSVRQU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9X
ZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2Vi
S2l0Mik6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRP
bkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJz
QXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50
R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRPZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlUmVsb2FkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wg
X3NldExpbmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAoK1tX
S1Byb2Nlc3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nXSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1Bp
Y3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk6CisgICAgICAgIChzaG91bGRSZXF1aXJlVXNlckdl
c3R1cmVUb0xvYWRWaWRlbyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVz
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBz
aG90V2l0aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVm
YXVsdFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0
ZURhdGFTdG9yZSBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIubW06CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tX
ZWJWaWV3UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFt
ZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5w
YWludGVkU2luY2VMYXN0TG9hZENvbW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNh
dGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLU2Nyb2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50
SW5zZXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIu
bW06CisgICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAg
KC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dz
aW5nUmVjb21tZW5kZWQpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0w
NC0wOCAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcmV2ZXJ0aW5nIHIyOTI1OTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
YjRmNWZhZDRkNmNhMjc1OWJhMzVmNWVjYjgxYjk1NWM5MWZiMmQ0YS4uODcwOTIzNTdmZDBlMjI4
NGQ2ZTczMjQxYzFlOWVmNDU3ZDM3OGM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9u
LW9yLWFmdGVyIGNoZWNrcyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBEZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVn
YXRlLm1tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdEZXN0
aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogTWlzYy9XZWJE
b3dubG9hZC5tbToKKyAgICAgICAgKHNob3VsZENhbGxPbk5ldHdvcmtUaHJlYWQpOgorICAgICAg
ICAqIE1pc2MvV2ViSWNvbkRhdGFiYXNlLm1tOgorICAgICAgICAoK1tXZWJJY29uRGF0YWJhc2Ug
c2hhcmVkSWNvbkRhdGFiYXNlXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc0Rl
ZmF1bHRWYWx1ZXMubW06CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRBbGxvd3NQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBh
c3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpkZWZhdWx0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFdlYlNRTEVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0U2hvdWxk
UmVzdHJpY3RCYXNlVVJMU2NoZW1lcyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRD
b252ZXJ0SW52YWxpZFVSTHNUb0JsYW5rKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3Np
dmVXaGVlbExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0Ojpk
ZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcpOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKToK
KyAgICAgICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKIDIwMjItMDQtMDggIEVsbGlvdHQgV2ls
bGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyBy
MjkyNTkxLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJy
YXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCmluZGV4
IDQ5YzBhYmY2ZjdhZjI3Mzc4NmEyYzI0ZDZjZDFmN2FmNjEyOGE0ZTMuLjViYmFhNWE2N2FkY2Y3
ODFlZWI4ZDk2Nzg4OTU5ODNlMTYxODM4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVHlwZWRBcnJheS5jcHAKQEAgLTM2OCw3ICszNjgsNyBAQCB2b2lkKiBKU09iamVjdEdldEFy
cmF5QnVmZmVyQnl0ZXNQdHIoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgb2JqZWN0UmVm
LCBKUwogI2lmIFBMQVRGT1JNKElPUykKIGlubGluZSBzdGF0aWMgYm9vbCBpc0xpbmtlZEJlZm9y
ZVR5cGVkQXJyYXlMZW5ndGhRdWlyaygpCiB7Ci0gICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0VHlwZWRBcnJheUFQSVF1aXJrKTsKKyAgICByZXR1cm4g
IWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVHlw
ZWRBcnJheUFQSVF1aXJrKTsKIH0KICNlbHNlCiBpbmxpbmUgc3RhdGljIGJvb2wgaXNMaW5rZWRC
ZWZvcmVUeXBlZEFycmF5TGVuZ3RoUXVpcmsoKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCA3YzMzMTVmODIzMzZlZTIzMjhi
NmFhZTRmN2Q3MGRmMDZiNzkzM2QxLi44MzIxNTAyZTdkZjgyZjIwZGYyOTU2MzExYjMwMTFiNTUw
NTBmZWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1h
cC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAt
NzA1LDcgKzcwNSw3IEBAIGJvb2wgc3VwcG9ydHNJbml0TWV0aG9kQ29uc3RydWN0b3JzKCkKICAg
ICAgICAgaWYgKHZlcnNpb25PZkxpbmtUaW1lSmF2YVNjcmlwdENvcmUgIT0gLTEpCiAgICAgICAg
ICAgICByZXR1cm4gdmVyc2lvbk9mTGlua1RpbWVKYXZhU2NyaXB0Q29yZSA+PSBmaXJzdEphdmFT
Y3JpcHRDb3JlVmVyc2lvbldpdGhJbml0Q29uc3RydWN0b3JTdXBwb3J0OwogCi0gICAgICAgIHJl
dHVybiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRz
SW5pdENvbnN0cnVjdG9ycyk7CisgICAgICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOwog
ICAgIH0oKTsKICAgICByZXR1cm4gc3VwcG9ydHNJbml0TWV0aG9kQ29uc3RydWN0b3JzOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAppbmRleCA1
MTZlMzIwYmU0OWM4MDZmYTgyMzIyMGU1NmI3ZWYxYmIxY2ExN2RhLi4yMGRkNzhkMDYwZTZlNjc3
Zjg2MDk5YTZkOWFmODU2MWFmYTJkNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
dGVzdHMvdGVzdGFwaS5jcHAKQEAgLTYxNyw3ICs2MTcsNyBAQCB2b2lkIFRlc3RBUEk6OnByb21p
c2VFYXJseUhhbmRsZWRSZWplY3Rpb25zKCkKIHZvaWQgVGVzdEFQSTo6cHJvbWlzZURyYWluRG9l
c05vdEVhdEV4Y2VwdGlvbnMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGJvb2wgdXNl
TGVnYWN5RHJhaW4gPSAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERvZXNO
b3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICBib29sIHVzZUxl
Z2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKICAg
ICBpZiAodXNlTGVnYWN5RHJhaW4pCiAgICAgICAgIHJldHVybjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCmluZGV4IDJlMzFjZTgyNjY4OTQ2NDJj
NTI5ZWUwNmM2YjU1NTdlZmI2OGMzMTkuLjE3ZDExMTAyODEwZDEzNDdkMmQ1ZjFjNTkwZWM5MzQ5
ZmI1MmVhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0K
QEAgLTI3NDMsNyArMjc0Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RNaWNyb3Rhc2tXaXRoRnVuY3Rp
b24oKQogewogICAgIEBhdXRvcmVsZWFzZXBvb2wgewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
ICAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7Cisg
ICAgICAgIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVXaGVu
Q2FsbGluZ09iakMpOwogICAgICAgICBpZiAodXNlTGVnYWN5RHJhaW4pCiAgICAgICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmlu
ZGV4IGEyNDQxODUwOGQxZTIwMjFiMTBhNjY0MTgyMzlmZDY2ZjdlMjUxNzcuLjcwZTlmNzlhOTBh
NmZhNmJlNjQwMGM4YzE3OGYxNDU2MjcwYjc1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgSlNMb2NrOjp3aWxsUmVs
ZWFzZUxvY2soKQogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZTsKICAgICAgICAgc3RkOjpjYWxsX29uY2Uob25jZSwgW10gewotICAgICAgICAg
ICAgdXNlTGVnYWN5RHJhaW4gPSAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dERvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICAgICAg
ICAgIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdP
YmpDKTsKICAgICAgICAgfSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTk1Y2I0MmE5Yzg3MzlhMzFiMjMx
ZTYxNWNlMTFlZjc0MDJkZTA0MC4uOTIwMWVhOGMwNDYwMmI5YTkwZDU4NjNmM2UwMDRhODRhMmZh
Nzc4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCkBAIC0zMTcsNyArMzE3LDcgQEAgaW5saW5lIHN0YXRpYyBib29sIGlzUG9rZXJC
cm9zKCkKICAgICBhdXRvIGJ1bmRsZUlEID0gQ0ZCdW5kbGVHZXRJZGVudGlmaWVyKENGQnVuZGxl
R2V0TWFpbkJ1bmRsZSgpKTsKICAgICByZXR1cm4gYnVuZGxlSUQKICAgICAgICAgJiYgQ0ZFcXVh
bChidW5kbGVJRCwgQ0ZTVFIoImNvbS5rcGdhbWUuUG9rZXJCcm9zIikpCi0gICAgICAgICYmICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0UG9rZXJCcm9zQnVpbHRJblRh
Z1F1aXJrKTsKKyAgICAgICAgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6Ok5vUG9rZXJCcm9zQnVpbHRJblRhZ1F1aXJrKTsKIH0KICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaCBiL1NvdXJjZS9XVEYvd3RmL0Jp
dG1hcC5oCmluZGV4IGI4ZjY2MWE2NmVlOTNlNTkwNzFhNTY2MTZjZDQ0M2ZiZDlhMjI3MGEuLmVl
ZjRkMGZiZGYxYzU3MWFmYmFiYWRmM2ZmOTk0MTVkOGU3NjdjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0JpdG1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0JpdG1hcC5oCkBAIC01OSw2
ICs1OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc2l6ZV90IG5leHRQb3NzaWJseVVuc2V0
KHNpemVfdCkgY29uc3Q7CiAgICAgY29uc3RleHByIHZvaWQgY2xlYXIoc2l6ZV90KTsKICAgICB2
b2lkIGNsZWFyQWxsKCk7CisgICAgdm9pZCBzZXRBbGwoKTsKICAgICBjb25zdGV4cHIgdm9pZCBp
bnZlcnQoKTsKICAgICBpbnQ2NF90IGZpbmRSdW5PZlplcm9zKHNpemVfdCBydW5MZW5ndGgpIGNv
bnN0OwogICAgIHNpemVfdCBjb3VudChzaXplX3Qgc3RhcnQgPSAwKSBjb25zdDsKQEAgLTE0MSw2
ICsxNDIsOCBAQCBwdWJsaWM6CiAgICAgV29yZFR5cGUqIHN0b3JhZ2UoKSB7IHJldHVybiBiaXRz
LmRhdGEoKTsgfQogICAgIGNvbnN0IFdvcmRUeXBlKiBzdG9yYWdlKCkgY29uc3QgeyByZXR1cm4g
Yml0cy5kYXRhKCk7IH0KIAorICAgIGNvbnN0ZXhwciBzaXplX3Qgc3RvcmFnZUxlbmd0aEluQnl0
ZXMoKSB7IHJldHVybiBzaXplb2YoYml0cyk7IH0KKwogcHJpdmF0ZToKICAgICBzdGF0aWMgY29u
c3RleHByIHVuc2lnbmVkIHdvcmRTaXplID0gc2l6ZW9mKFdvcmRUeXBlKSAqIDg7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChiaXRtYXBTaXplICsgd29yZFNpemUgLSAx
KSAvIHdvcmRTaXplOwpAQCAtMjQwLDYgKzI0MywxMiBAQCBpbmxpbmUgdm9pZCBCaXRtYXA8Yml0
bWFwU2l6ZSwgV29yZFR5cGU+OjpjbGVhckFsbCgpCiAgICAgbWVtc2V0KGJpdHMuZGF0YSgpLCAw
LCBzaXplb2YoYml0cykpOwogfQogCit0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5h
bWUgV29yZFR5cGU+CitpbmxpbmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojpz
ZXRBbGwoKQoreworICAgIG1lbXNldChiaXRzLmRhdGEoKSwgMHhGRiwgc2l6ZW9mKGJpdHMpKTsK
K30KKwogdGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgogaW5s
aW5lIGNvbnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVydCgp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tIGIv
U291cmNlL1dURi93dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQppbmRleCAzMDIxZmVjMDcxN2Vl
ZmE0MjZhNWU3ZWJlOGJiYzc2OGNmMzMzN2RmLi5iZGM0YmVkNGM3NGI3OWU2ZDIzZjlmY2U4MjZl
MTg0YTk1ZWU4YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KQEAgLTU2
LDcgKzU2LDcgQEAgc2l6ZV90IGluZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBjb25zdCBWZWN0b3I8U3QKIGJvb2wgY2FuTWluaW1pemVMYW5n
dWFnZXMoKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHJlc3VsdCA9IFtdKCkgLT4gYm9vbCB7
Ci0gICAgICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0TWlu
aW1pemVzTGFuZ3VhZ2VzKSAmJiBbTlNMb2NhbGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihtaW5pbWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOildOworICAgICAgICByZXR1cm4gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWluaW1pemVz
TGFuZ3VhZ2VzKSAmJiBbTlNMb2NhbGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihtaW5p
bWl6ZWRMYW5ndWFnZXNGcm9tTGFuZ3VhZ2VzOildOwogICAgIH0oKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzQ29jb2EuY3BwCmluZGV4IGM3MTQ5M2I0NGE3MjBiOGYzZGRkNjc0YzJhZjE0OGM0
OTEyMzlhZjAuLjZhYmJhZTUxMGMxZWNkN2YzNWEyYzVmYmZkMzU1YWRlODNkZjUzZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29h
LmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3ND
b2NvYS5jcHAKQEAgLTI3LDUwICsyNywxNzkgQEAKICNpbmNsdWRlIDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaD4KKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9SdW50aW1l
QXBwbGljYXRpb25DaGVja3NDb2NvYUFkZGl0aW9ucy5jcHA+KQorI2ltcG9ydCA8V2ViS2l0QWRk
aXRpb25zL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hQWRkaXRpb25zLmNwcD4KKyNlbHNl
CitzdGF0aWMgdm9pZCBkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxp
Z25lZEJlaGF2aW9ycykKK3sKK30KKyNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+JiBhcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSgp
CitzdGF0aWMgU0RLQWxpZ25lZEJlaGF2aW9ycyBjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycygp
CiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZlcnNpb247Ci0gICAgcmV0
dXJuIHZlcnNpb247CisgICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVo
YXZpb3JzLnNldEFsbCgpOworCisgICAgYXV0byBkaXNhYmxlQmVoYXZpb3IgPSBbJl0gKFNES0Fs
aWduZWRCZWhhdmlvciBiZWhhdmlvcikgeworICAgICAgICBiZWhhdmlvcnMuY2xlYXIoc3RhdGlj
X2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOworICAgIH07CisKKyAgICBhdXRvIGxpbmtlZEJlZm9y
ZSA9IFsmXSAoZHlsZF9idWlsZF92ZXJzaW9uX3QgdmVyc2lvbikgeworICAgICAgICByZXR1cm4g
IWR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QodmVyc2lvbik7CisgICAgfTsKKworICAgIGlmIChs
aW5rZWRCZWZvcmUoZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMpKQorICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFj
ayk7CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zKSkg
eworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNZWRpYVR5cGVz
UmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKKyAg
ICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFi
bGVkQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6Q29udmVydHNJbnZhbGlkVVJMc1RvQmxhbmspOworICAgICAgICBkaXNhYmxlQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93
T3BlblF1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
VW5wcmVmaXhlZFBsYXlzSW5saW5lQXR0cmlidXRlKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9mYWxsXzIwMTZfb3NfdmVyc2lv
bnMpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0
c0luaXRDb25zdHJ1Y3RvcnMpOworI2Vsc2UKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDE0X29zX3ZlcnNpb25zKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbmRpZgorCisgICAgaWYgKGxp
bmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxN19vc192ZXJzaW9ucykpIHsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBs
ZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRh
dGFiYXNlV2FybmluZyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX3Nwcmlu
Z18yMDE4X29zX3ZlcnNpb25zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpEaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsKKyAg
ICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3Np
dmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZv
cmUoZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3Vy
aW5nSW5zZXRzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
VUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVs
ZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6Tm9Nb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmspOworICAg
ICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRocmVhZFNhZmV0
eUNoZWNrcyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX3NwcmluZ18yMDE5
X29zX3ZlcnNpb25zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24pOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdh
dGlvbik7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxOV9vc192
ZXJzaW9ucykpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
Tm9VbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbik7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25BUEkpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1
aWNrTG9va1ByZXZpZXcpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TW9kZXJuQ29t
cGFiaWxpdHlNb2RlQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlk
ZUtleUNvbW1hbmRzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmsp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb3dubG9hZERl
bGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJl
Zm9yZShkeWxkX2xhdGVfZmFsbF8yMDE5X29zX3ZlcnNpb25zKSkKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCk7CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVy
c2lvbnMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJl
c3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyk7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1YWdlcyk7CisgICAgfQorCisg
ICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucykpIHsKKyAgICAg
ICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNsZWFudXBCeURl
ZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpJbml0
aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmls
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViU1FMRGlz
YWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vTGFCYW5xdWVQb3N0YWxlUXVpcmtzKTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9Qb2tlckJyb3NCdWlsdEluVGFnUXVp
cmspOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9sYXRlX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucykpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OlN1cHBvcnRzaU9TQXBwc09uTWFjT1MpOworCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX3dp
bnRlcl8yMDIwX29zX3ZlcnNpb25zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2Vy
dmVzQ2xhc3NQcm9wZXJ0eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2Vzcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKKyAg
ICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9DbGllbnRDZXJ0aWZp
Y2F0ZUxvb2t1cCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRlZmF1bHRzVG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVz
VG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxk
X2ZhbGxfMjAyMV9vc192ZXJzaW9ucykpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRPTVdpbmRvd1JldXNlUmVz
dHJpY3Rpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpB
cHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0V4cGFuZG9JbmRleGVkUHJvcGVydGllc09uV2luZG93
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RG9lc05vdERy
YWluVGhlTWljcm90YXNrUXVldWVXaGVuQ2FsbGluZ09iakMpOworICAgIH0KKworICAgIGlmIChs
aW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAyMl9vc192ZXJzaW9ucykpCisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVP
cmlnaW5SZWRpcmVjdHMpOworCisgICAgZGlzYWJsZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZp
b3JzKGJlaGF2aW9ycyk7CisKKyAgICByZXR1cm4gYmVoYXZpb3JzOwogfQogCi12b2lkIHNldEFw
cGxpY2F0aW9uU0RLVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKQorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4mIHNka0FsaWduZWRCZWhhdmlvcnNWYWx1ZSgpCiB7Ci0g
ICAgYXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKSA9IHZlcnNpb247CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4+IGJlaGF2
aW9yczsKKyAgICByZXR1cm4gYmVoYXZpb3JzLmdldCgpOwogfQogCi11aW50MzJfdCBhcHBsaWNh
dGlvblNES1ZlcnNpb24oKQorY29uc3QgU0RLQWxpZ25lZEJlaGF2aW9ycyYgc2RrQWxpZ25lZEJl
aGF2aW9ycygpCiB7Ci0gICAgaWYgKGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkpCi0g
ICAgICAgIHJldHVybiAqYXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKTsKLSAgICByZXR1
cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworICAgIGF1dG8mIGJlaGF2aW9ycyA9
IHNka0FsaWduZWRCZWhhdmlvcnNWYWx1ZSgpOworCisgICAgaWYgKCFiZWhhdmlvcnMpCisgICAg
ICAgIGJlaGF2aW9ycyA9IGNvbXB1dGVTREtBbGlnbmVkQmVoYXZpb3JzKCk7CisKKyAgICByZXR1
cm4gKmJlaGF2aW9yczsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVy
T3ZlcnJpZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKCkKK3ZvaWQgc2V0U0RLQWxp
Z25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzIGJlaGF2aW9ycykKIHsKLSAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVy
OwotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgLy8gRklYTUU6IElkZWFsbHkgd2Ug
d291bGQgYXNzZXJ0IHRoYXQgYGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcmAgaGFkIG5v
dAorICAgIC8vIGJlZW4gY2FsbGVkIGF0IHRoaXMgcG9pbnQgKGJlY2F1c2UgaXRzIHJlcGx5IGNv
dWxkIGhhdmUgYmVlbiBpbmFjY3VyYXRlKSwKKyAgICAvLyBidXQgV2ViUHJlZmVyZW5jZXMgdXNl
IGluIFNhZmFyaSAoYXQgbGVhc3QpIGN1cnJlbnRseSBwcmV2ZW50cyB0aGlzIGhhcmRlbmluZy4K
KworICAgIHNka0FsaWduZWRCZWhhdmlvcnNWYWx1ZSgpID0gYmVoYXZpb3JzOwogfQogCi12b2lk
IHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVy
T3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlcikKK3ZvaWQgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2
aW9ycygpCiB7Ci0gICAgbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpID0gbGlua2VkT25P
ckFmdGVyOworICAgIFNES0FsaWduZWRCZWhhdmlvcnMgYmVoYXZpb3JzOworICAgIGJlaGF2aW9y
cy5zZXRBbGwoKTsKKyAgICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKGJlaGF2aW9ycyk7CiB9CiAK
LXN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92
ZXJyaWRlKCkKK3ZvaWQgZGlzYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMoKQogewotICAgIHJl
dHVybiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKCk7CisgICAgc2V0U0RLQWxpZ25lZEJl
aGF2aW9ycyh7IH0pOwogfQogCi1ib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1Zl
cnNpb24pCitib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3IgYmVoYXZpb3IpCiB7Ci0gICAgaWYgKGF1dG8gb3ZlcnJpZGVWYWx1ZSA9IGxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqb3ZlcnJpZGVWYWx1ZSA9PSBMaW5r
ZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nOwotCi0gICAgYXV0byBzZGtWZXJz
aW9uQXNJbnRlZ2VyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJl
dHVybiBzZGtWZXJzaW9uQXNJbnRlZ2VyICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpID49IHNk
a1ZlcnNpb25Bc0ludGVnZXI7CisgICAgcmV0dXJuIHNka0FsaWduZWRCZWhhdmlvcnMoKS5nZXQo
c3RhdGljX2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oIGIvU291cmNl
L1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAppbmRleCAwNTU4
MjZkMzM5ODVmYjg0ZjE1MTZjNWIyODE2ODA2Zjk1Yzc0YTEwLi44ZDA2MWRmZTVmOTI5MThkYWJk
NjJkMDg5NmEwMDJhMTIzNDdmMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKQEAgLTI2LDEyNSArMjYsOTIgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0JpdG1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9k
eWxkU1BJLmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1
aW50MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFdpdGhQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAotICAgIEZpcnN0
V2l0aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19W
RVJTSU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
ID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxl
ZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFRoYXRDb252ZXJ0
c0ludmFsaWRVUkxzVG9CbGFuayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdp
dGhvdXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayA9IERZTERf
SU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRy
aWJ1dGUgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBv
cnRzSW5pdENvbnN0cnVjdG9ycyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdp
dGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9T
X1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0g
RFlMRF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlY
SFJIZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RU
aGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19W
RVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90
T2JzY3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVV
SVNjcm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZ
TERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2Vy
dGlvbkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0
aG91dE1vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTJf
MCwKLSAgICBGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyA9IERZTERfSU9TX1ZFUlNJ
T05fMTJfMCwKLSAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24g
PSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3Nz
U2l0ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRob3V0
VW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9O
XzEzXzAsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lP
U19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25Q
ZXJtaXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdERlY2lk
ZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZm
ZXJlbnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aE1v
ZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAg
ICBGaXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9O
XzEzXzAsCi0gICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21t
YW5kcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJm
bG93SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RX
aXRob3V0SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xM18w
LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xM18yLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hl
bWVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdFNlbmRzTmF0aXZlTW91
c2VFdmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0gICAgRmlyc3RUaGF0TWluaW1pemVz
TGFuZ3VhZ2VzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aFNlc3Npb25D
bGVhbnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aElu
aXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRf
MCwKLSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlM
RF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aFdlYlNRTERpc2FibGVkQnlEZWZhdWx0
SW5MZWdhY3lXZWJLaXQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCi0gICAgRmlyc3RXaXRob3V0
TGFCYW5xdWVQb3N0YWxlUXVpcmtzID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0
V2l0aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwK
LSAgICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OXzE0
XzIsCi0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfSU9TX1ZFUlNJ
T05fMTRfNSwKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9w
ZXJ0eSA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhvdXRXZUNoYXRTY3Jv
bGxpbmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhTaGFyZWRO
ZXR3b3JrUHJvY2VzcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhCbGFu
a1ZpZXdPbkpTUHJvbXB0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0V2l0aE51
bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAs
Ci0gICAgRmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiAgPSBEWUxEX0lPU19WRVJT
SU9OXzE1XzAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0
ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVk
UHJvcGVydGllc09uV2luZG93ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0VGhh
dERvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9JT1Nf
VkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmln
aW5SZWRpcmVjdHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzQsCi0gICAgRmlyc3RXaXRob3V0VHlw
ZWRBcnJheUFQSVF1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotICAgIEZpcnN0Rm9yYmlk
ZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX0lPU19WRVJTSU9OXzE2XzAsCi0jZWxpZiBQTEFU
Rk9STShNQUMpCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycyA9
IDB4QTBBMDAsIC8vIE9TIFggMTAuMTAKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxz
VG9CbGFuayA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIsCi0gICAgRmlyc3RXaXRoRXhjZXB0
aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVs
dCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlS
ZWxvYWRCZWhhdmlvciA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRo
V2ViSWNvbkRhdGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAg
Rmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTQsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVj
a3MgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0
aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8x
NSwKLSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3
c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0g
ICAgRmlyc3RXaXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NB
cmVFbmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAotICAgIEZp
cnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8x
NV80LAotICAgIEZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcyA9IERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTVfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWlu
VGhyZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKLSAgICBGaXJzdFdp
dGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNiwKLSAgICBGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsID0gRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3Bl
cnR5TmFtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRoQmxhbmtW
aWV3T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhv
dXRDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAg
ICBGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZ
TERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2Vz
dHVyZXNUb0JlY29tZU5vbkJsb2NraW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAg
IEZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24g
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0VGhhdERvZXNOb3REcmFpblRo
ZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8w
MCwKLSAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdp
dGhBdXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMl8zLAotICAgIEZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEzXzAsCi0jZW5kaWYKK2VudW0gY2xhc3MgU0RLQWxpZ25lZEJlaGF2
aW9yIHsKKyAgICBBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nLAor
ICAgIEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCwKKyAgICBBdXRob3JpemF0aW9u
SGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzLAorICAgIEJsYW5rc1ZpZXdPbkpTUHJvbXB0LAor
ICAgIENvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rLAorICAgIERhdGFVUkxGcmFnbWVudFJlbW92
YWwsCisgICAgRGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3LAorICAg
IERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERlZmF1bHRz
VG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERpc2FsbG93c1NldHRpbmdB
bnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMsCisgICAgRG9lc05vdERyYWluVGhlTWljcm90YXNrUXVl
dWVXaGVuQ2FsbGluZ09iakMsCisgICAgRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiwKKyAgICBE
b3dubG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCwKKyAgICBEcm9wVG9OYXZpZ2F0
ZURpc2FsbG93ZWRCeURlZmF1bHQsCisgICAgRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRp
b25IYW5kbGVyQ2FsbHMsCisgICAgRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlm
ZmVyZW50RGF0YVN0b3JlcywKKyAgICBFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yLAorICAgIEZv
cmJpZHNEb3RQcmVmaXhlZEZvbnRzLAorICAgIEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiwK
KyAgICBIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzLAorICAgIEluaXRpYWxpemVX
ZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiwKKyAgICBMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0
YWxsYXRpb24sCisgICAgTGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0LAorICAgIE1haW5UaHJl
YWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHksCisgICAgTWVkaWFUeXBlc1JlcXVpcmlu
Z1VzZXJBY3Rpb25Gb3JQbGF5YmFjaywKKyAgICBNaW5pbWl6ZXNMYW5ndWFnZXMsCisgICAgTW9k
ZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0LAorICAgIE5vQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAsCisgICAgTm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdywKKyAgICBOb0lNRGJD
U1NPTVZpZXdTY3JvbGxpbmdRdWlyaywKKyAgICBOb0xhQmFucXVlUG9zdGFsZVF1aXJrcywKKyAg
ICBOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyaywKKyAgICBOb1Bva2VyQnJvc0J1aWx0
SW5UYWdRdWlyaywKKyAgICBOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93T3Bl
blF1aXJrLAorICAgIE5vVHlwZWRBcnJheUFQSVF1aXJrLAorICAgIE5vVW5jb25kaXRpb25hbFVu
aXZlcnNhbFNhbmRib3hFeHRlbnNpb24sCisgICAgTm9XZUNoYXRTY3JvbGxpbmdRdWlyaywKKyAg
ICBOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzLAorICAgIE9ic2VydmVzQ2xhc3NQ
cm9wZXJ0eSwKKyAgICBQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywKKyAgICBQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiwKKyAgICBSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8sCisgICAgUmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMsCisgICAgU2Nyb2xsVmlld0NvbnRl
bnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMsCisgICAgU2VuZHNOYXRpdmVNb3VzZUV2ZW50
cywKKyAgICBTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwKKyAgICBTaGFyZWROZXR3b3JrUHJvY2Vz
cywKKyAgICBTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0LAorICAgIFNuYXBz
aG90QWZ0ZXJTY3JlZW5VcGRhdGVzLAorICAgIFN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25QZXJtaXNzaW9uQVBJLAorICAgIFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycywKKyAgICBT
dXBwb3J0c2lPU0FwcHNPbk1hY09TLAorICAgIFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5G
cmFtZSwKKyAgICBUaW1lclRocmVhZFNhZmV0eUNoZWNrcywKKyAgICBVSVNjcm9sbFZpZXdEb2Vz
Tm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSwKKyAgICBVbnByZWZpeGVkUGxh
eXNJbmxpbmVBdHRyaWJ1dGUsCisgICAgV2ViSWNvbkRhdGFiYXNlV2FybmluZywKKyAgICBXZWJT
UUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0LAorICAgIFdLQ29udGVudFZpZXdEb2Vz
Tm90T3ZlcnJpZGVLZXlDb21tYW5kcywKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJu
aW5nTmlsLAorCisgICAgTnVtYmVyT2ZCZWhhdmlvcnMKIH07CiAKLVdURl9FWFBPUlRfUFJJVkFU
RSBib29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKK3VzaW5nIFNES0FsaWduZWRCZWhh
dmlvcnMgPSBCaXRtYXA8c3RhdGljX2Nhc3Q8c2l6ZV90PihTREtBbGlnbmVkQmVoYXZpb3I6Ok51
bWJlck9mQmVoYXZpb3JzKSwgdWludDY0X3Q+OwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
ZXRBcHBsaWNhdGlvblNES1ZlcnNpb24odWludDMyX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIGNv
bnN0IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRCZWhhdmlvcnMoKTsKK1dURl9FWFBP
UlRfUFJJVkFURSB2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9y
cyk7CiAKLS8vIERvIG5vdCB1c2UgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZGlyZWN0bHk7IGFk
ZCBhIHZlcnNpb24gdG8gdGhlIGVudW0gYWJvdmUsCi0vLyBhbmQgdXNlIGxpbmtlZE9uT3JBZnRl
cigpIGF0IGNhbGwgc2l0ZXMuCi1XVEZfRVhQT1JUX1BSSVZBVEUgdWludDMyX3QgYXBwbGljYXRp
b25TREtWZXJzaW9uKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmFibGVBbGxTREtBbGln
bmVkQmVoYXZpb3JzKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNhYmxlQWxsU0RLQWxp
Z25lZEJlaGF2aW9ycygpOwogCi1lbnVtIGNsYXNzIExpbmtlZE9uT3JBZnRlck92ZXJyaWRlIDog
dWludDhfdCB7Ci0gICAgQmVmb3JlRXZlcnl0aGluZywKLSAgICBBZnRlckV2ZXJ5dGhpbmcKLX07
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6
Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUg
c3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVyT3Zl
cnJpZGUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3IpOwogCiB9CiAKLXVzaW5nIFdURjo6c2V0QXBwbGlj
YXRpb25TREtWZXJzaW9uOwotdXNpbmcgV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb247Ci11c2lu
ZyBXVEY6OkxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNpbmcgV1RGOjpzZXRMaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGU7Ci11c2lu
ZyBXVEY6OmxpbmtlZE9uT3JBZnRlcjsKLXVzaW5nIFdURjo6U0RLVmVyc2lvbjsKLXVzaW5nIFdU
Rjo6c2V0QXBwbGljYXRpb25TREtWZXJzaW9uOwordXNpbmcgV1RGOjpkaXNhYmxlQWxsU0RLQWxp
Z25lZEJlaGF2aW9yczsKK3VzaW5nIFdURjo6ZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9yczsK
K3VzaW5nIFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yOwordXNpbmcgV1RGOjpT
REtBbGlnbmVkQmVoYXZpb3I7Cit1c2luZyBXVEY6OnNka0FsaWduZWRCZWhhdmlvcnM7Cit1c2lu
ZyBXVEY6OlNES0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OnNldFNES0FsaWduZWRCZWhh
dmlvcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKaW5kZXggOGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNhMzFkYjYwNi4uNWZh
NjEyZjVmODBkZWNmNjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTAwLDcgKzEwMCw3
IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQ
cm9wZXJ0aWVzKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZlbiB0aGF0IFdpbmRv
d1Byb3h5IGlzIHRoZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5IG1vZGUgZnVuY3Rp
b25zLCBpdCdzIGhhcmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlPUyBhbmQgbWFjT1Mg
YXBwcyBkb24ndCBhY2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IsIHNvIHdlIGtl
ZXAgaXQgZm9yIHRoZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWlyayA9ICFsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVz
T25XaW5kb3cpOworICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFBy
b3BlcnRpZXNPbldpbmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2luZG93UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94
eS5jcHAKaW5kZXggMjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3ZjJhMzVlMC4uY2E3
OTM4ZTc5NDUwOGM3YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lk
IEpTV2luZG93UHJveHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYgZG9tV2luZG93KQog
ICAgICAgICB3aW5kb3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJl
LCBsb2NhbFdpbmRvdywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IHRy
dWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlv
bik7CisgICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsKICNl
bmRpZgogICAgICAgICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhhdmVJbml0aWFsaXpl
ZFNlY3VyaXR5T3JpZ2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAgICAgICAgIGxvY2Fs
V2luZG93LnNldEFzV3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyZDgxZjE0
NWFiMDVlOWI2YzBjNTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQyZTUzYTI2MDkyNThi
NjY2OTVjZTZjNzI2ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50
U2Vzc2lvbi5jcHAKQEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246
OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCiAgICAg
ICAgIHJldHVybiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
SFRNTE5hbWVzOjp3ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVtZW50Lmhhc0F0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lubGluZUF0dHIpOwot
ICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFVucHJlZml4ZWRQ
bGF5c0lubGluZUF0dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUp
KQogICAgICAgICByZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApp
bmRleCBjMzYwOWEyMjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjLi5kYzg2OTk2NjA5
ZWFjNDc3ODdkOGViNTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBA
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZl
dGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjppc01vdmlTdGFyUGx1
cygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TW92aVN0YXJQ
bHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQ
cmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0g
UHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZsaWdodFF1aXJrID0g
SU9TQXBwbGljYXRpb246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdo
dFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6
OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5
OjpGb3JjZSk7CiAjZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IGZhbHNlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODkyMDNhYWVhZGExZDMw
M2IyMzY5NDU4ZDQ3MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0MjRlYjMzZjhjYjhj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIGJvb2wgUXVpcmtz
OjpuZWVkc0Z1bGxzY3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJvb2wgUXVpcmtzOjpu
ZWVkc1dlQ2hhdFNjcm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgcmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGljYXRpb246OmlzV2Vj
aGF0KCk7CisgICAgcmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspICYm
IElPU0FwcGxpY2F0aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKQEAgLTcxNiw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxp
bmdRdWlyaygpIGNvbnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBv
cnRlZFByb3BlcnR5TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBi
b29sIHNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0gIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9w
ZXJ0eU5hbWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9y
dGVkUHJvcGVydHlOYW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKICAgICBy
ZXR1cm4gc2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXM7CiAjZWxz
ZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAK
aW5kZXggNmIxMzBiYjJjZjRhNTQ5ODgzZWYxY2M5MDdhN2E3MmM3NWNkMjliOS4uNTE0MzdjYjcw
YTA1YmVlZGMzMzdhODYzMzI4NWU2MzBhOTQ5NDBlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVh
dEFzVW5pcXVlT3JpZ2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMu
d2hhdHdnLm9yZy8jb3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBpZiAodXJsLmhhc1Nw
ZWNpYWxTY2hlbWUoKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8fCAhbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1l
ZFVSTHMpCisgICAgICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKQogICAgICAg
ICB8fCB1cmwucHJvdG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAgfHwgdXJsLnByb3Rv
Y29sSXMoIngtYXBwbGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygieC1hcHBs
ZS1xbC1pZDIiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4OTA1M2Y5Mjg1Zjk4
ODZmYTU5Yjg4N2E3MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVhYzQyYzdjOTNmZGMy
MzAxYjUxOGIzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTI1MCw5ICsyNTAs
OSBAQCBwcml2YXRlOgogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVj
aygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gV2ViVGhyZWFkSXNF
bmFibGVkKCkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhUaW1lclRo
cmVhZFNhZmV0eUNoZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxlZCgpIHx8ICFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRo
cmVhZFNhZmV0eUNoZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFpc0lu
V2ViUHJvY2VzcygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGlt
ZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlByb2Nlc3MoKSAmJiAh
bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJU
aHJlYWRTYWZldHlDaGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNo
ZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFmZWJmNjM2ZDE5MDUy
YzI2NTQyMzQyLi5kOTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAyN2E4MzBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVD
b3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBzdHJ1Y3QgRm9udExv
b2t1cCB7CiAKIHN0YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5Gb250KGNvbnN0IEF0
b21TdHJpbmcmIGZhbWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRzRG90UHJlZml4ZWRG
b250cykpCiAgICAgICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicpOwogICAgIHJldHVy
biBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBwbGVzeXN0ZW11aWZv
bnRzZXJpZiIpCiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWls
eSwgIi5zZiBucyBtb25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYyYTEwNzk4NTdlZTM3
OGZjYTM4NDBlZC4uY2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZmOGUzNzM4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIHN0YXRpYyBi
b29sIHNob3VsZFJlbW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1lZGlhVHlw
ZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uOjpGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRhdGFVUkxGcmFn
bWVudFJlbW92YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBITFMgdXNlcyAj
IGluIHRoZSBtaWRkbGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2MjcyMjNiZDcwMmIxOTBk
NzRjMDA2YzgxNTJmMTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5NjQ1N2FlZGFiNTRm
OGQ0NjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0
U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnQuY3BwCkBAIC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZp
Y2F0ZShib29sIGFsbG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExpbmtlZE9uT3JBZnRl
ckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRB
cHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgp
KTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4ZTlkOGFlMjFlYjBk
N2Y5ODllMmFkNWUzM2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2ZlNzUxNjU2OTMwMWUz
NjZmZGU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKIAog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVx
dWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRp
b24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RXaXRoQXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCisg
ICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVy
RmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXph
dGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpBdXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzKSkKICAg
ICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJO
YW1lOjpBdXRob3JpemF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVTRShDUkVERU5USUFM
X1NUT1JBR0VfV0lUSF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggN2Iw
NDJhMzY1M2M1OWVhMTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIxMzlhNTg4ODE2NGFl
Mzg1ODg1OTEwOTI4NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTA5Miw3ICsx
MDkyLDcgQEAgc3RhdGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb25G
b3JTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29uZmlndXJhdGlvbiA9
IFtOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29uZmlndXJhdGlvbl07
CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2Vy
dGlmaWNhdGVMb29rdXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0
Q2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKKyAgICBi
b29sIHByZXZlbnRDRk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IGxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xpZW50Q2VydGlmaWNh
dGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAgICAgYm9vbCBwcmV2
ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgyOTg1OTNjMzJjOTVj
ZTdjNzJkZWI4ZTc3MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3YmJhZThmOTExZmVl
OTAzZjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTgw
LDE0ICsxODAsMTMgQEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMgewogICAgIFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVu
dGlmaWVyOwogICAgIFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90
IGNsaWVudFNES1ZlcnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2JqZWN0UHRyPHhwY19v
YmplY3RfdD4gcHJpb3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJpZGU7CisgICAgU0RL
QWxpZ25lZEJlaGF2aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29j
b2EubW0KaW5kZXggNWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFiYWJiZGI0Zi4uN2I1
NmQ0NjBjOTEyMDhmNDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtNzcsOCAr
NzcsNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBB
dXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBidW5kbGVQYXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBs
aWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKLSAgICBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92
ZXJyaWRlKTsKKyAgICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRlcnMuY2xpZW50U0RL
QWxpZ25lZEJlaGF2aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2Fn
ZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9u
SGFuZGxlckNhbGxDaGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxl
dGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2NTMxZjFlMTlkNmYx
NDkzMjE4YWY4ODQ3ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYxM2Y3NTlmZmE4YjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxl
ckNhbGxDaGVja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRp
b25IYW5kbGVyQ2FsbENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIGJvb2wgc2hv
dWxkVGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwoKQogICAg
IHN0YXRpYyBib29sIHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgc2hvdWxk
VGhyb3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhj
ZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBzaG91
bGRUaHJvd0V4Y2VwdGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxz
KTsKICAgICB9KTsKICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1t
CmluZGV4IGFjMzNmNTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcuLjNhMTZhMmNj
Mzk0NGM0MjExNDUzOThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0xMjUsNyAr
MTI1LDcgQEAgdm9pZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1cnJlbnRJVFBTdGF0
ZSAhPSBJVFBTdGF0ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9v
bCBhcHBXYXNMaW5rZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25P
ckFmdGVyID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6U2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUoKSA9IFdvcmtRdWV1
ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsKICAgICBpdHBRdWV1
ZSgpLT5kaXNwYXRjaChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJZGVudGlmaWVyID0g
V2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCldIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXpl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNv
Y29hLm1tCmluZGV4IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBhZmQ5ODBmN2UuLjE0
ZTdjYzI1YjIwMjY4YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAtNjQs
NyArNjQsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhl
IGluaXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhy
ZWFkIHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUg
b25seSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNl
KGZsYWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJl
YWRBc3NlcnRpb24pKQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SW5pdGlhbGl6
ZVdlYktpdDJNYWluVGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1bkluaXRpYWxpemF0
aW9uQ29kZSgpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVldWU6Om1haW4oKS5k
aXNwYXRjaFN5bmMoW10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4
IGJhYTAxMjU3MDc3N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1MmFkYzAxN2NlMjcw
NzUxOTFmMTM3OTlkMmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQ
b2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29j
b2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5ICs2Miw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihT
dHJpbmcmIGNsaWVudElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRCdW5k
bGVJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgdmlydHVh
bCBib29sIGdldENsaWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwog
ICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nl
c3NOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2aXJ0dWFsIGJvb2wg
Z2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzJik7CiAgICAg
dmlydHVhbCBib29sIGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3RlZDoKQEAgLTEzNSwx
MCArMTM0LDcgQEAgdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nv
bm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBUaGUgaG9zdCBwcm9j
ZXNzIG1heSBub3QgaGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEgY29tbWFuZCBsaW5l
IGFwcCksIHNvIGRvbid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdldENsaWVudEJ1bmRs
ZUlkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKICAgICAKLSAg
ICBkZWxlZ2F0ZS5nZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50U0RL
VmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAgICBleGl0KEVYSVRf
RkFJTFVSRSk7CisgICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJh
bWV0ZXJzLmNsaWVudFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9j
ZXNzSWRlbnRpZmllcihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggY2I3MjQwZDg1
ZDI1ZTE3MzFjM2Q0NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2NTI3MmMxY2M3Yjc3
OTRmYWUzMjQ4MDA1ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vy
dmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1IEBAIGJvb2wgWFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3Ry
aW5nJiBjbGllbnRCdW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVudGlmaWVyLmlzRW1w
dHkoKTsKIH0KIAotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50
U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wgWFBDU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25l
ZEJlaGF2aW9ycyYgYmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9IHBhcnNlSW50ZWdl
cjx1aW50MzJfdD4oeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2Fn
ZSwgImNsaWVudC1zZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJzaW9uID0gdmVyc2lv
bi52YWx1ZV9vcigwKTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUoKTsKLX0KKyAgICBz
aXplX3QgbGVuZ3RoID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhwY19kaWN0aW9uYXJ5
X2dldF9kYXRhKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2
aW9ycyIsICZsZW5ndGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlvckRhdGEpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPT0gYmVoYXZpb3Jz
LnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlvcnMuc3RvcmFnZSgp
LCBiZWhhdmlvckRhdGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25P
ckFmdGVyT3ZlcnJpZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsKLSAgICBhdXRvIGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9p
bml0aWFsaXplck1lc3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVyLW92ZXJyaWRlIik7
Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAgICAgIGxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlVmFsdWUpID8gTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyA6IExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAgIGVsc2UKLSAgICAg
ICAgbGlua2VkT25PckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmF1bHRWYWx1ZXMuY3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRiYzRkMjZkOTIyZmY3
NTE5OTEuLmY4M2QwMWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdiMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNw
cApAQCAtNDQsMTMgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGRlZmF1bHRQ
YXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVs
dHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJl
c3VsdCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJ
TURiKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRJTURiQ1NT
T01WaWV3U2Nyb2xsaW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOwog
ICAgIHJldHVybiAhcmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAgYm9vbCBkZWZhdWx0
QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2
ZVdoZWVsTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9Q
YXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZh
dWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogYm9vbCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmco
KQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9u
OjpGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJs
b2NraW5nKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgYm9v
bCBkZWZhdWx0QXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBib29sIGRlZmF1bHRP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHN0YXRpYyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgIHN0YXRpYyBi
b29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAgICAgcmV0dXJuICFu
ZXdTREs7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMgc2hvdWxkIGNvbnNp
ZGVyIHR1cm5pbmcgdGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAppbmRleCA1ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThmNjczZjg4Li4yZDJj
YTcwMWM5MDkyNjEzZjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLUGFnZVJl
bG9hZChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgT3B0
aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4
cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkK
ICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVk
T25seSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQy
NGViMGRkOGZjLi42NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYzZjI3NzllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bQpAQCAtNDk4LDggKzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdv
cmsKIAogKyAodm9pZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiB7
Ci0gICAgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nKTsKKyAg
ICBkaXNhYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUwOCw3IEBAICsgKHZv
aWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAKICsgKHZvaWQpX3Nl
dExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNp
b24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5n
KTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAKICsgKHZvaWQpX3Nl
dENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJs
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDE4M2Y0ZmMyODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTguLmFiMDc0Y2I0YjMz
MTA0ZjViODk3YWU5Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgLSAoQk9P
TClfaXNWYWxpZAogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRp
YVBsYXliYWNrKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFBp
Y3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxv
d1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sp
OwogICAgIHJldHVybiBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwog
fQogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZy
b21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwg
V2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMpOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21G
aWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRl
ckZyb21GaWxlVVJMcyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRl
ckZyb21GaWxlVVJMczsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0aWMgYm9vbCBzaG91
bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRl
byA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0
dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVy
ZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hv
dWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1
cmVUb0xvYWRWaWRlbygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVt
ZXMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVt
ZXMpOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNC
YXNlVVJMU2NoZW1lcyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7
CiB9CiAKQEAgLTM0NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3Vy
YXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgIFdL
UHJvY2Vzc1Bvb2wgKnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXct
Pl9jb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYm
IHByb2Nlc3NQb29sICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBb
TlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVs
YXRlZCB3ZWIgdmlldyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVs
YXRlZFdlYlZpZXdQcm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAg
ICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVd
ICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlm
ZmVyZW50RGF0YVN0b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1
cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0
b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzKSkK
ICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlv
biBmb3JtYXQ6QCJSZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3JlICVAIGJ1dCBjb25m
aWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVAIiwgcmVsYXRlZFdl
YlZpZXcsIFtyZWxhdGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0s
IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAgICAgW19jb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2xdOwpAQCAtMzY4
LDcgKzM2OCw3IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3BvcnRNZXRhVGFnV2lk
dGggPSBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFs
U2NhbGVGYWN0b3IgPSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gZGVmYXVs
dEFsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVm
YXVsdCk7CisgICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0KTsK
IAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJs
ZWQgPSBOTzsKQEAgLTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0
aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0dGluZ0FueVhIUkhl
YWRlckZyb21GaWxlVVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNob3VsZERl
Y2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19jb25maWd1cmF0aW9u
IF9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlld10pOwogI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZl
cmVuY2VzKCktPnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQobGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
UGVybWlzc2lvbkFQSSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5z
ZXREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJ
RVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZp
ZXdFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAt
NTcwLDcgKzU3MCw3IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6
OlBhZ2VDb25maWd1cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJh
dGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2Uo
W19jb25maWd1cmF0aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZV0pOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVkUGFnZVRvcENvbG9y
TWluSGVpZ2h0KFtfY29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodF0p
OwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVT
cGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtz
QXJlRW5hYmxlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJl
bmNlcygpLT5zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKXJlbG9h
ZAogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVs
b2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4cGlyZWRPbmx5
UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxv
YWRPcHRpb246OkV4cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxv
YWQocmVsb2FkT3B0aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAodm9pZCl0YWtlU25h
cHNob3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hv
dENvbmZpZ3UKICAgICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1
cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAh
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5V
cGRhdGVzKSkgeworICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENv
bmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMp
KSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUwMmIwZTVmNjEyYzNh
ZTcxZmY1ZDU5Yi4uMTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xp
ZnREZWxheSB0b0RyYWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0YXRpYyBib29sIGRl
ZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiB7
CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2Fk
aW5nUXVpY2tMb29rUHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVjaWRlc1Bv
bGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1cm4gc2hvdWxkRGVj
aWRlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAzLDcgQEAgLSAoaW5z
dGFuY2V0eXBlKWluaXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbiA9ICFfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNB
dXRvbWF0aWNhbGx5ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAjaWYgIVBMQVRGT1JN
KFdBVENIT1MpCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhN
ZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAgICBpZiAobGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWVkaWFUeXBlc1Jl
cXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRpYVR5cGVzUmVxdWly
aW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvOwog
ICAgIGVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgzOTkyOGRhZTgxMmYw
NmNiMjgyOGMyMjM2NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1
MTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAoV0tXZWJzaXRlRGF0
YVN0b3JlICopbm9uUGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAog
ewotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRl
RGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1
cm5pbmdOaWwpKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9u
IGZvcm1hdDpAIkNhbGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBpcyBub3Qgc3VwcG9y
dGVkLiJdOwogICAgIAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MDgxOWIx
YzVmOWZmYjAxZTE0YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3OWRjNjFkYzJkNTQ0
MTliMzZjNTliMzhmMmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJRWRnZUluc2V0cylf
Y29udGVudEluc2V0c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwogCiAtIChVSUVkZ2VJ
bnNldHMpX2NvbXB1dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1
cmluZ0luc2V0cykpIHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5n
SW5zZXRzKSkgewogICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQg
cGFydHkgYXBwcywgdHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5n
IGluc2V0cyB3aGVuIHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdl
YktpdCB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4g
W3NlbGYgX2NvbXB1dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkxZThhNTlhY2U5ODBh
MTFkZjAzMWQyMjc0NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYyMTZlYjdkMjRhNGYy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMu
bW0KQEAgLTExODYsNyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJf
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnCiAgICAgaWYg
KFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1
aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdn
aW5nSW5mbzpkcmFnZ2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbjo6Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRy
b3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdE
ZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlv
bkFueSAmIH5XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThmNTVlZDVkMjgwZGU0
MTUxZi4uNjU5NDAyM2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMv
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIC0gKHZvaWQp
aW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4g
cmVsb2FkT3B0aW9uczsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2
aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpF
eHBpcmVkT25seSk7CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9hZE9wdGlvbnMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJv
Y2Vzc0xhdW5jaGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9j
b2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVk
ZDZlODdmMGZlM2YzMzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIyMzIz
YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcgKzIxNiw2IEBAIHZv
aWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwg
IWNsaWVudElkZW50aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0
YSgpIDogKl9OU0dldFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIsIFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1z
ZGstdmVyc2lvbiIsIFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4
KCkuZGF0YSgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3Nh
Z2UuZ2V0KCksICJwcm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9w
dGlvbnMucHJvY2Vzc0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAg
eHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJv
Y2Vzcy1uYW1lIiwgW1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVU
RjhTdHJpbmddKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3Nh
Z2UuZ2V0KCksICJzZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsyMjYsOCBAQCB2b2lk
IFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9mZChib290c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RERVJSX0ZJTEVOTyk7
CiAgICAgfQogICAgIAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUg
PSBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
Ym9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1v
dmVycmlkZSIsICpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVoYXZpb3JzID0gc2Rr
QWxpZ25lZEJlaGF2aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGJvb3RzdHJh
cE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3JzIiwgc2RrQmVoYXZp
b3JzLnN0b3JhZ2UoKSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOwogCiAg
ICAgYXV0byBleHRyYUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rp
b25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFmOWE3MWU0OGZiNTgx
OGVjZWM5NjBlZmUxMTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYxODRkOTU0MzZmYjRm
MTVkNmY1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisg
ICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNPdmVy
Zmxvd0hpZGRlbk9uTWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWJmY2M4YjQ1OTY0
Njc1OGJhYzMyYjczNTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2NDg0NWM2ODY2NjQ1
NTlhZjMxZmExYjhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xMzQ5LDcgKzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXpl
U2FuZGJveEV4dGVuc2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIH0KIAog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKKyAg
ICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxs
QWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRp
ZgogCkBAIC0yNjY3LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFu
a0lmVW5wYWludGVkU2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYgKCFtX2hhc1VwZGF0
ZWRSZW5kZXJpbmdBZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKICNlbHNlCiAgICAg
ICAgIHN0YXRpYyBib29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNzdjNGJlNzk0M2Qx
YjAyNDIyZTc2NzYyNzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRj
NDU4ZDRkYjJlNTY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChB
UEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAgICAgYm9v
bCBpc1NhZmFyaSA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlm
CiAgICAgICAgIGlmIChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtlZE9uT3JBZnRlck92
ZXJyaWRlKExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgICAg
ICAgICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlmCiAgICAgfSk7CiAK
QEAgLTI3OSw3ICsyNzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgdXBkYXRlQmFja0Zv
cndhcmRDYWNoZUNhcGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbjo6Rmlyc3RXaXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAgaWYgKFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2VzcykpIHsKICAgICAg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdlYnNpdGVEYXRhU3Rv
cmU6OmRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAgICBXZWJzaXRlRGF0
YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBA
IC0xMTU0LDcgKzExNTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogCiAgICAgYm9vbCBl
bmFibGVQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2UtPnByZWZlcmVuY2Vz
KCkucHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZv
eCgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBP
bkNyb3NzU2l0ZU5hdmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6
aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKICAgICAgICAgZW5h
YmxlUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNzA0NTBh
OTViYTZlOGE0OWVlNWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0NGQ2ZjMyNmIwOTRj
YTI0Y2QzZjU1MWM3ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKQEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFz
UmVhY2hlZFByb2Nlc3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hl
Y2tEaXNhYmxlZCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElL
RUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJl
dHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbklu
V2ViUGFnZVByb3h5KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTElLRUxZKFJ1
bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0
aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBM
SUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFn
ZVByb3h5KTsKICNlbHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDNiNDY3
ZjQ1Yjk4MDNiNjAzZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFlNDljMzIyZjViZmIw
Mjg3NmNlNDJkNDNjYzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21t
b25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYp
cHIKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAg
W19maXhlZENsaXBwaW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwog
Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1
cmVSZWNvZ25pemVySW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2duaXplckluc3Rh
bGxhdGlvbikpCiAgICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNl
dFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKGlu
c3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxs
RW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5v
dGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3Jl
ZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3Jl
ZW5dXTsKIAotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYm
ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2Vz
Tm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9u
Ojppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAg
ICAgICAgIGNsYXNzX2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMp
LCByZWludGVycHJldF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZl
cm5vdGUpLCBtZXRob2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNl
bGYuY2xhc3MsIEBzZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICByZXR1cm4gc2VsZjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEw
MWEuLmQxODQ1N2MzMzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtODEyNyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVz
CiAgICAgICAgIHJldHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBV
U0UoVUlDT05URVhUTUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4
dE1lbnVJbnRlcmFjdGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC05ODgzLDcg
Kzk4ODMsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZl
bnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0dXJuIFlFUzsKICAg
ICB9CiAKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25X
aXRoaU9TQXBwc09uTWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKSkgewogICAg
ICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxy
ZGFyOi8vcHJvYmxlbS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc05vZ2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAg
ICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3By
b2JsZW0vNjU2OTg0OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNh
dGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lv
bikKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAgaWYgKCFsaW5rZWRP
bk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZW5kc05hdGl2ZU1v
dXNlRXZlbnRzKSkgewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzUG9j
a2V0Q2l0eSgpIC8vIDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAgICAgICAgIHx8IFdl
YkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkgLy8gPHJkYXI6Ly9w
cm9ibGVtLzYyNjk0NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246
OmlzRVNQTkZhbnRhc3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2NzE1NDM+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRleCA3ODFkMzZlZDhh
MWVmNjJhYmE1ZDUwMWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2ZWE3ZTgxY2JjMjk2
MDQ2NjhiMzQ0NmMwMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTY3JvbGxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9s
bFZpZXcubW0KQEAgLTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMpX3N5c3RlbUNvbnRl
bnRJbnNldAogICAgIC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1D
b250ZW50SW5zZXQuIFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxp
ZWQsIGV2ZW4gd2hlbiB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGlj
CiAgICAgLy8gc2FmZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9h
cmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJl
aGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKKyAgICBp
ZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VUlT
Y3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNl
bGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJ
bnNldEFkanVzdG1lbnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSAr
PSBfa2V5Ym9hcmRCb3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29u
dGVudEluc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5
bHVzRGV2aWNlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFiN2Q5ZjNlMDc5NjE0
ZTc4YzZjNDc5Li4wMWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0MzNmY2RlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbQpAQCAtODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAgaWYgKCsrX3N0YXJ0
Q291bnQgPiAxKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisgICAgaWYgKGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2VydmVzQ2xh
c3NQcm9wZXJ0eSkpCiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSBhZGRP
YnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9wdGlvbnM6
TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOwogfQogCkBAIC05
Miw3ICs5Miw3IEBAIC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291bnQgfHwgLS1fc3Rh
cnRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uOjpGaXJzdFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRP
bk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNz
UHJvcGVydHkpKQogICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4
IDBlMzI4YjEzZjE1OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZlMTM2NjYwZTExNzFl
YTQ0YjAxMmMxZjY2MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAgc3RhdGljIGJv
b2wgZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5z
d2VyKGtNR1FNYWluU2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hv
dWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVl
bkNsYXNzUGFkMyAmJiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9w
Q2xhc3NCcm93c2luZ1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlmIChpZ25vcmVTYWZl
Z3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVm
YXVsdCkpIHsKKyAgICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0
aWJpbGl0eVNhZmVndWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpKSB7CiAg
ICAgICAgICAgICAvLyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBidWlsdCBhZ2FpbnN0
IHRoZSBpT1MgMTMgU0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGllcyBhcyBhIHJlc3Vs
dCBvZiBlbmFibGluZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1bHQgaW4KICAgICAg
ICAgICAgIC8vIFdLV2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgog
ICAgICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2Vi
RGVmYXVsdFVJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVs
ZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBhNjFlZjgyYmJhY2U2
MWE2NzMzNjY3MDI2OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5MmY5MmJjZjJkNmUy
ODJlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAtMjE2LDcgKzIxNiw3
IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZyYW1lVmlldzooV2Vi
RnJhbWVWaWV3ICopZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoTlNVSW50ZWdlcil3
ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJh
Z2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlmICgh
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxs
b3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQog
ICAgICAgICByZXR1cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJu
IFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25M
b2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9h
ZC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0KaW5kZXgg
ZTI0N2E4ZTJkNTZkMGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZjY2ZlZGYzN2E3Y2Nh
OWQ3MWMwNGFlNmZiZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9N
aXNjL1dlYkRvd25sb2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgYm9vbCBzaG91bGRD
YWxsT25OZXR3b3JrVGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIGJv
b2wgaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjpp
c0Vwc29uU29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhEb3dubG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgc3Rh
dGljIGJvb2wgaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0
aW9uOjppc0Vwc29uU29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVN
YWluVGhyZWFkKTsKICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlcjsKICNlbHNl
CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
TWlzYy9XZWJJY29uRGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
Ykljb25EYXRhYmFzZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUwZTllYzAxNTc2MDg5
NTU1ZGFjLi40NjI1MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDczMDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtMTA4
LDcgKzEwOCw3IEBAICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFiYXNlPj4gZGF0YWJh
c2U7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRpc3BhdGNoX29uY2Uo
Jm9uY2UsIF4gewotICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
V2l0aFdlYkljb25EYXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRhdGFiYXNlV2Fybmlu
ZykpCiAgICAgICAgICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRh
YmFzZV0gaXMgbm90IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ug
bm8gbG9uZ2VyIGhhbmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4g
YSBmdXR1cmUgcmVsZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQoKSA9IGFkb3B0TlMo
W1tXZWJJY29uRGF0YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
bW0KaW5kZXggZGQxYjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJmODQ1YS4uNzU0ZWI2
NjczZGVlOTllNGExYmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMubW0KQEAgLTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRp
YVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUlu
UGljdHVyZU1lZGlhUGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAgIHN0YXRpYyBib29s
IHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2s7CiB9CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhv
dXRVc2VyR2VzdHVyZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2ll
dHlIaWRkZW5NeXN0ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhvdXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAg
c3RhdGljIGJvb2wgc2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlID0gV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKSAm
JiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9U
aGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CiAgICAgcmV0dXJu
IHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0KIApAQCAtNzEsMjAg
KzcxLDIwIEBAIGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5s
aW5lQXR0cmlidXRlKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNP
bkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlz
dGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0
UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91
bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRp
YyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVy
ZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW87CiB9CiAKIGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewogICAgIC8vIEZvciBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVudGlsIGFwcHMgYXJl
IHJlYnVpbHQgd2l0aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFi
bGVkID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJTUUxEaXNhYmxl
ZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVk
ID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Oldl
YlNRTERpc2FibGVkQnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJldHVybiB3ZWJTUUxF
bmFibGVkOwogfQogCkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVs
ZW1lbnRFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1l
cygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxp
bmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1l
cyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jh
c2VVUkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsK
IH0KIApAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVubmluZ09mSW5zZWN1
cmVDb250ZW50KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
aygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxz
VG9CbGFuayk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
ayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkNv
bnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxkQ29udmVydEludmFs
aWRVUkxzVG9CbGFuazsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBkZWZhdWx0U2hv
dWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVl
bExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNU
b1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsK
LSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RUaGF0QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2lu
Zyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFiOTk0NTc1MmRhOTlh
ODExZjkuLjBjYzE3ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzOTEsNyArMTM5MSw3
IEBAIC0odm9pZClfaW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBMQVRGT1JNKElPUykK
IHN0YXRpYyBib29sIG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9z
dGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TGFCYW5x
dWVQb3N0YWxlUXVpcmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVlUG9zdGFsZVF1aXJr
cyk7CiAgICAgcmV0dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>
<flag name="commit-queue"
          id="485747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457220</attachid>
            <date>2022-04-10 18:42:57 -0700</date>
            <delta_ts>2022-04-10 18:54:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410184256.patch</filename>
            <type>text/plain</type>
            <size>98770</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjYzMmQ0M2U4ZmVhNDAyZThlOGRjOTcxMTY1ZGM3MGFlZWI2ZmVkLi41OTBhYjA2NDc1ZGM5OWRm
MTZhYjFkMTZhMDllNjg2MGViMjU4NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA4ICBFbGxp
b3R0IFdpbGxpYW1zICA8ZW13QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI5MjU5MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKaW5kZXggNDg3MzY5MjRlOWM3MjdjNjY0NDIxNmYyNDM5MTA0NDEwMjk4
YTZmNC4uNWIyMjE5YTQzYWYyMjczYTQ5N2QxYjA0Y2E1MGZmNzQxNjkzZjdkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN3aXRjaCB0byBgZHlsZF9wcm9ncmFtX3Nka19hdF9sZWFzdGAsIHdo
aWNoIGNvcnJlY3RseSBoYW5kbGVzIFNESworICAgICAgICBjaGVja3MgZm9yIGJpbmFyaWVzIGJ1
aWx0IGZvciBvbmUgU0RLIHJ1bm5pbmcgb24gYW5vdGhlciBwbGF0Zm9ybQorICAgICAgICAoZS5n
LiBpT1MgYXBwcyBydW5uaW5nIG9uIG1hY09TKS4KKworICAgICAgICBCZWNhdXNlIGBkeWxkX3By
b2dyYW1fc2RrX2F0X2xlYXN0YCBpcyBiYXNlZCBvZmYgbW9yZSB0aGFuIGEgc2ltcGxlCisgICAg
ICAgIGludGVnZXIgY29tcGFyaXNvbiBsaWtlIG91ciBvbGQgU0RLIGNoZWNrLCB3ZSBtb3ZlIGl0
IGludG8gdGhlCisgICAgICAgIGFwcGxpY2F0aW9uIHByb2Nlc3MsIGFuZCBqdXN0IHRyYW5zbWl0
IHRoZSBjb21wdXRlZCBiZWhhdmlvcnMgdG8KKyAgICAgICAgc3VicHJvY2Vzc2VzLgorCisgICAg
ICAgIFJlbW92ZSBmdW5jdGlvbnMgdGhhdCBleHBvc2UvdHJhbnNtaXQgcGxhdGZvcm0tc3BlY2lm
aWMgU0RLIHZlcnNpb25zLAorICAgICAgICBzbyB0aGF0IHVzYWdlIGlzbid0IGFjY2lkZW50YWxs
eSByZWludHJvZHVjZWQuCisKKyAgICAgICAgUmUtZnJhbWUgdGhlIG5hbWluZyBvZiBvdXIgbGlu
a2VkLW9uLW9yLWFmdGVyIGNoZWNrcyBhcyBiZWluZyBhYm91dAorICAgICAgICBzcGVjaWZpYyBi
ZWhhdmlvcnMgaW5zdGVhZCBvZiBTREsgdmVyc2lvbnMuCisKKyAgICAgICAgKiB3dGYvQml0bWFw
Lmg6CisgICAgICAgIChXVEY6OldvcmRUeXBlPjo6c2V0QWxsKToKKyAgICAgICAgQWRkIGBzZXRB
bGxgLCB3aGljaCBzZXRzIGFsbCB0aGUgYml0cyBpbiB0aGUgQml0bWFwLCBsaWtlIEZhc3RCaXRW
ZWN0b3IgaGFzLgorICAgICAgICBFeHBvc2UgdGhlIGxlbmd0aCBvZiB0aGUgZGF0YSBpbiBieXRl
cyB0byBtYWtlIHRyYW5zbWl0dGluZyB0aGUgQml0bWFwIHNpbXBsZS4KKworICAgICAgICAqIHd0
Zi9jb2NvYS9MYW5ndWFnZUNvY29hLm1tOgorICAgICAgICAoV1RGOjpjYW5NaW5pbWl6ZUxhbmd1
YWdlcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCisgICAgICAgICogd3RmL3Nw
aS9kYXJ3aW4vZHlsZFNQSS5oOgorICAgICAgICBCZWNhdXNlIG9mIHRoZSBuYXR1cmUgb2YgZHls
ZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzLCB3ZSBjYW4ndCBmb3J3YXJkCisgICAgICAgIGRlY2xh
cmUgdGhlbS4gVGh1cywgbWFpbnRhaW4gYSBmYWxsYmFjayB0byB0aGUgbGVnYWN5IHBsYXRmb3Jt
LXNwZWNpZmljCisgICAgICAgIFNESyBjaGVja3MgZm9yIHVzZSB3aGVuIGJ1aWxkaW5nIGFnYWlu
c3QgdGhlIGludGVybmFsIFNESywgb3Igd2hlbgorICAgICAgICBiYWNrLWRlcGxveWluZyB0byBv
bGRlciBTREtzIHRoYXQgZG9uJ3QgeWV0IGhhdmUgdmFsdWVzIGZvciBuZXdlciB2ZXJzaW9uIHNl
dHMuCisKKyAgICAgICAgKiB3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
Y3BwOgorICAgICAgICAoZGlzYWJsZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAg
ICAgICAgKFdURjo6Y29tcHV0ZVNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RGOjpz
ZGtBbGlnbmVkQmVoYXZpb3JzVmFsdWUpOgorICAgICAgICAoV1RGOjpzZGtBbGlnbmVkQmVoYXZp
b3JzKToKKyAgICAgICAgKFdURjo6c2V0U0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChX
VEY6OmVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RGOjpkaXNhYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcik6CisgICAgICAgIChXVEY6OmFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJy
aWRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6c2V0QXBwbGljYXRpb25TREtWZXJzaW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXVEY6OnNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAoV1RG
OjpsaW5rZWRPbk9yQWZ0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi9jb2NvYS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3NDb2NvYS5oOgorCiAyMDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgc3RhdGljX3BvaW50ZXJfY2FzdDw+KCkgbWF5IGNh
dXNlIHNvbWUgdW5uZWNlc3NhcnkgcmVmLWNvdW50aW5nIGNodXJuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc5
OTMwOTI2NWVkZDJlNmQxYTlmMmU0MjE2ODVhYzhjYTU0ZGFmYS4uYzI2Zjc4YjZkMjVmZWZjYTA1
NTFmY2QyNDRjZTA3YWRkZDAwYTk4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIy
LTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNrcyBpbnN0
ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM0
MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjph
bGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTV2luZG93UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQcm94eTo6
c2V0V2luZG93KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVxdWlyZXNGdWxsc2NyZWVuRm9y
VmlkZW9QbGF5YmFjayBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6
Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdRdWlyayBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnNob3VsZE9taXRIVE1MRG9jdW1lbnRT
dXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFRyZWF0QXNVbmlxdWVPcmlnaW4pOgorICAgICAg
ICAqIHBsYXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFN1cHByZXNz
VGhyZWFkU2FmZXR5Q2hlY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzRG90UHJlZml4ZWRGb3Ji
aWRkZW5Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNvZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpzaG91bGRSZW1vdmVGcmFnbWVu
dElkZW50aWZpZXIpOgorICAgICAgICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVyRXZlcnl0
aGluZ0ZvclRlc3RpbmcpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0w
NC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHN0YXRpY19w
b2ludGVyX2Nhc3Q8PigpIG1heSBjYXVzZSBzb21lIHVubmVjZXNzYXJ5IHJlZi1jb3VudGluZyBj
aHVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA3MDdmNmY5YTRmZGQ0NjcxZDM4YTdiMTYzZWFlMWNmZTZiOWRjNDI3
Li5jN2EyNjk3MGUwOWYyNGZhZjIxYjA4NTdiODhiZjllMGU3M2QzZjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDg5IEBACisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9y
LWFmdGVyIGNoZWNrcyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAq
IFNoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OkF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogU2hhcmVk
L0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2lu
dC5oOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAgICAgICAq
IFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlOjpnZXRDbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0TGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJv
Y2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgSW5zdGVhZCBvZiB0cmFuc21p
dHRpbmcgdGhlIFNESyB2ZXJzaW9uIGFuZCBvdmVycmlkZSBzdGF0ZSBpbiB0aGUgYm9vdHN0cmFw
CisgICAgICAgIG1lc3NhZ2UsIGp1c3Qgc2VuZCB0aGUgY29tcHV0ZWQgc2V0IG9mIGJlaGF2aW9y
cy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1I
VFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9u
SUQpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNv
bXBsZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJC
cm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBTdGF0ZSk6Cisg
ICAgICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVU
b3VjaExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRQYXNzaXZlV2hlZWxMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKToKKyAgICAg
ICAgKFdlYktpdDo6ZGVmYXVsdE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSZWxv
YWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAg
ICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JU
ZXN0aW5nXSk6CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2
ZXJ5dGhpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToK
KyAgICAgICAgKHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOgorICAg
ICAgICAoc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKToKKyAgICAg
ICAgKHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKToKKyAgICAgICAgKHNob3Vs
ZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMpOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxp
emVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VD
b25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVsb2FkXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW06CisgICAgICAgIChkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGlu
Z1F1aWNrTG9va1ByZXZpZXcpOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGlu
aXRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfY29t
cHV0ZWRPYnNjdXJlZEluc2V0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJW
aWV3TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9kcmFnRGVzdGluYXRpb25BY3Rp
b25Gb3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMv
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlciBpbnNwZWN0b3JXS1dlYlZpZXdSZWxvYWQ6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFzU2Ny
b2xsYWJsZU9yWm9vbWVkTWFpbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXliZUluaXRp
YWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjptYWtlVmlld0JsYW5rSWZVbnBhaW50ZWRTaW5jZUxhc3RMb2FkQ29tbWl0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxl
ZCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDpjb25m
aWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG91bGRVc2VDb250ZXh0TWVu
dXNdKToKKyAgICAgICAgKGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tOgorICAgICAgICAoLVtXS1Nj
cm9sbFZpZXcgX3N5c3RlbUNvbnRlbnRJbnNldF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNl
cnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0b3BdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgIEFkb3B0IHRo
ZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA4ICBFbGxpb3R0IFdpbGxpYW1zICA8ZW13QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjU5MS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCBiNGY1ZmFkNGQ2Y2EyNzU5YmEzNWY1ZWNiODFiOTU1Yzkx
ZmIyZDRhLi44NzA5MjM1N2ZkMGUyMjg0ZDZlNzMyNDFjMWU5ZWY0NTdkMzc4YzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDQtMTAgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgInZlcnNp
b24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZv
cm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1bHREZWxl
Z2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURl
bGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpd
KToKKyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2FkLm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9u
TmV0d29ya1RocmVhZCk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2UubW06CisgICAg
ICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdl
YktpdDo6ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAg
ICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1
bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8pOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAg
ICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25C
bG9ja2luZyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNM
YUJhbnF1ZVBvc3RhbGVRdWlya3MpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwog
MjAyMi0wNC0wOCAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyOTI1OTEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVHlwZWRBcnJheS5jcHAKaW5kZXggNDljMGFiZjZmN2FmMjczNzg2YTJjMjRkNmNkMWY3YWY2
MTI4YTRlMy4uNWJiYWE1YTY3YWRjZjc4MWVlYjhkOTY3ODg5NTk4M2UxNjE4Mzg4NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcApAQCAtMzY4LDcgKzM2OCw3
IEBAIHZvaWQqIEpTT2JqZWN0R2V0QXJyYXlCdWZmZXJCeXRlc1B0cihKU0NvbnRleHRSZWYgY3R4
LCBKU09iamVjdFJlZiBvYmplY3RSZWYsIEpTCiAjaWYgUExBVEZPUk0oSU9TKQogaW5saW5lIHN0
YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJheUxlbmd0aFF1aXJrKCkKIHsKLSAgICBy
ZXR1cm4gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRUeXBlZEFycmF5
QVBJUXVpcmspOworICAgIHJldHVybiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6Tm9UeXBlZEFycmF5QVBJUXVpcmspOwogfQogI2Vsc2UKIGlubGlu
ZSBzdGF0aWMgYm9vbCBpc0xpbmtlZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyaygpIHsgcmV0
dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3Jh
cHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCmlu
ZGV4IDdjMzMxNWY4MjMzNmVlMjMyOGI2YWFlNGY3ZDcwZGYwNmI3OTMzZDEuLjgzMjE1MDJlN2Rm
ODJmMjBkZjI5NTYzMTFiMzAxMWI1NTA1MGZlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNXcmFwcGVyTWFwLm1tCkBAIC03MDUsNyArNzA1LDcgQEAgYm9vbCBzdXBwb3J0c0luaXRN
ZXRob2RDb25zdHJ1Y3RvcnMoKQogICAgICAgICBpZiAodmVyc2lvbk9mTGlua1RpbWVKYXZhU2Ny
aXB0Q29yZSAhPSAtMSkKICAgICAgICAgICAgIHJldHVybiB2ZXJzaW9uT2ZMaW5rVGltZUphdmFT
Y3JpcHRDb3JlID49IGZpcnN0SmF2YVNjcmlwdENvcmVWZXJzaW9uV2l0aEluaXRDb25zdHJ1Y3Rv
clN1cHBvcnQ7CiAKLSAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFZlcnNpb25UaGF0U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyAgICAgICAgcmV0dXJu
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBv
cnRzSW5pdENvbnN0cnVjdG9ycyk7CiAgICAgfSgpOwogICAgIHJldHVybiBzdXBwb3J0c0luaXRN
ZXRob2RDb25zdHJ1Y3RvcnM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rl
c3RzL3Rlc3RhcGkuY3BwCmluZGV4IDUxNmUzMjBiZTQ5YzgwNmZhODIzMjIwZTU2YjdlZjFiYjFj
YTE3ZGEuLjIwZGQ3OGQwNjBlNmU2NzdmODYwOTlhNmQ5YWY4NTYxYWZhMmQ3MmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcApAQCAtNjE3LDcgKzYxNyw3
IEBAIHZvaWQgVGVzdEFQSTo6cHJvbWlzZUVhcmx5SGFuZGxlZFJlamVjdGlvbnMoKQogdm9pZCBU
ZXN0QVBJOjpwcm9taXNlRHJhaW5Eb2VzTm90RWF0RXhjZXB0aW9ucygpCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVXaGVuQ2FsbGlu
Z09iakMpOworICAgIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSAhbGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVl
dWVXaGVuQ2FsbGluZ09iakMpOwogICAgIGlmICh1c2VMZWdhY3lEcmFpbikKICAgICAgICAgcmV0
dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0K
aW5kZXggMmUzMWNlODI2Njg5NDY0MmM1MjllZTA2YzZiNTU1N2VmYjY4YzMxOS4uMTdkMTExMDI4
MTBkMTM0N2QyZDVmMWM1OTBlYzkzNDlmYjUyZWE4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQpAQCAtMjc0Myw3ICsyNzQzLDcgQEAgc3RhdGljIHZvaWQg
dGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbigpCiB7CiAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGJvb2wgdXNlTGVnYWN5RHJhaW4gPSAhbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1
ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJh
aW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAgIGlmICh1c2VMZWdh
Y3lEcmFpbikKICAgICAgICAgICAgIHJldHVybjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggYTI0NDE4NTA4ZDFlMjAyMWIxMGE2NjQxODIzOWZk
NjZmN2UyNTE3Ny4uNzBlOWY3OWE5MGE2ZmE2YmU2NDAwYzhjMTc4ZjE0NTYyNzBiNzUxNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBKU0xvY2s6OndpbGxSZWxlYXNlTG9jaygpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgICAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlLCBbXSB7Ci0gICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVXaGVu
Q2FsbGluZ09iakMpOworICAgICAgICAgICAgdXNlTGVnYWN5RHJhaW4gPSAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RG9lc05vdERyYWluVGhlTWlj
cm90YXNrUXVldWVXaGVuQ2FsbGluZ09iakMpOwogICAgICAgICB9KTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRl
eCA1OTVjYjQyYTljODczOWEzMWIyMzFlNjE1Y2UxMWVmNzQwMmRlMDQwLi45MjAxZWE4YzA0NjAy
YjlhOTBkNTg2M2YzZTAwNGE4NGEyZmE3NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTMxNyw3ICszMTcsNyBAQCBpbmxp
bmUgc3RhdGljIGJvb2wgaXNQb2tlckJyb3MoKQogICAgIGF1dG8gYnVuZGxlSUQgPSBDRkJ1bmRs
ZUdldElkZW50aWZpZXIoQ0ZCdW5kbGVHZXRNYWluQnVuZGxlKCkpOwogICAgIHJldHVybiBidW5k
bGVJRAogICAgICAgICAmJiBDRkVxdWFsKGJ1bmRsZUlELCBDRlNUUigiY29tLmtwZ2FtZS5Qb2tl
ckJyb3MiKSkKLSAgICAgICAgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhvdXRQb2tlckJyb3NCdWlsdEluVGFnUXVpcmspOworICAgICAgICAmJiAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9Qb2tlckJyb3NCdWlsdElu
VGFnUXVpcmspOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0JpdG1h
cC5oIGIvU291cmNlL1dURi93dGYvQml0bWFwLmgKaW5kZXggYjhmNjYxYTY2ZWU5M2U1OTA3MWE1
NjYxNmNkNDQzZmJkOWEyMjcwYS4uZWVmNGQwZmJkZjFjNTcxYWZiYWJhZGYzZmY5OTQxNWQ4ZTc2
N2MwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQml0bWFwLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvQml0bWFwLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIGNvbnN0ZXhwciBz
aXplX3QgbmV4dFBvc3NpYmx5VW5zZXQoc2l6ZV90KSBjb25zdDsKICAgICBjb25zdGV4cHIgdm9p
ZCBjbGVhcihzaXplX3QpOwogICAgIHZvaWQgY2xlYXJBbGwoKTsKKyAgICB2b2lkIHNldEFsbCgp
OwogICAgIGNvbnN0ZXhwciB2b2lkIGludmVydCgpOwogICAgIGludDY0X3QgZmluZFJ1bk9mWmVy
b3Moc2l6ZV90IHJ1bkxlbmd0aCkgY29uc3Q7CiAgICAgc2l6ZV90IGNvdW50KHNpemVfdCBzdGFy
dCA9IDApIGNvbnN0OwpAQCAtMTQxLDYgKzE0Miw4IEBAIHB1YmxpYzoKICAgICBXb3JkVHlwZSog
c3RvcmFnZSgpIHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAgICAgY29uc3QgV29yZFR5cGUqIHN0
b3JhZ2UoKSBjb25zdCB7IHJldHVybiBiaXRzLmRhdGEoKTsgfQogCisgICAgY29uc3RleHByIHNp
emVfdCBzdG9yYWdlTGVuZ3RoSW5CeXRlcygpIHsgcmV0dXJuIHNpemVvZihiaXRzKTsgfQorCiBw
cml2YXRlOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZFNpemUgPSBzaXplb2Yo
V29yZFR5cGUpICogODsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRzID0gKGJp
dG1hcFNpemUgKyB3b3JkU2l6ZSAtIDEpIC8gd29yZFNpemU7CkBAIC0yNDAsNiArMjQzLDEyIEBA
IGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNsZWFyQWxsKCkKICAg
ICBtZW1zZXQoYml0cy5kYXRhKCksIDAsIHNpemVvZihiaXRzKSk7CiB9CiAKK3RlbXBsYXRlPHNp
emVfdCBiaXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KK2lubGluZSB2b2lkIEJpdG1hcDxi
aXRtYXBTaXplLCBXb3JkVHlwZT46OnNldEFsbCgpCit7CisgICAgbWVtc2V0KGJpdHMuZGF0YSgp
LCAweEZGLCBzaXplb2YoYml0cykpOworfQorCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwg
dHlwZW5hbWUgV29yZFR5cGU+CiBpbmxpbmUgY29uc3RleHByIHZvaWQgQml0bWFwPGJpdG1hcFNp
emUsIFdvcmRUeXBlPjo6aW52ZXJ0KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNvY29h
Lm1tCmluZGV4IDMwMjFmZWMwNzE3ZWVmYTQyNmE1ZTdlYmU4YmJjNzY4Y2YzMzM3ZGYuLmJkYzRi
ZWQ0Yzc0Yjc5ZTZkMjNmOWZjZTgyNmUxODRhOTVlZThiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29jb2Ev
TGFuZ3VhZ2VDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCBzaXplX3QgaW5kZXhPZkJlc3RNYXRj
aGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3RvcjxT
dAogYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
cmVzdWx0ID0gW10oKSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6
KV07CisgICAgICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6KV07CiAg
ICAgfSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAKaW5kZXggYzcxNDkzYjQ0
YTcyMGI4ZjNkZGQ2NzRjMmFmMTQ4YzQ5MTIzOWFmMC4uMjhjOTcwY2JjZjJlZGNhYTI4MDc0MGVi
MmUxMjYwN2M3Y2JlNjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcApAQCAtMjcsNTAgKzI3LDE5NiBAQAogI2lu
Y2x1ZGUgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vZHls
ZFNQSS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWludDMy
X3Q+JiBhcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSgpCitzdGF0aWMgYm9vbCBsaW5rZWRC
ZWZvcmUoZHlsZF9idWlsZF92ZXJzaW9uX3QgdmVyc2lvbiwgdWludDMyX3QgZmFsbGJhY2tJT1NW
ZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja01hY09TVmVyc2lvbikKIHsKLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDx1aW50MzJfdD4gdmVyc2lvbjsKLSAgICByZXR1cm4gdmVyc2lvbjsKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIC8vIGR5bGRfYnVpbGRfdmVyc2lvbl90IHZhbHVl
cyBjYW5ub3QgYmUgZm9yd2FyZCBkZWNsYXJlZCwgc28gd2UgZmFsbCBiYWNrIHRvCisgICAgLy8g
dHJhZGl0aW9uYWwgU0RLIHZlcnNpb24gY2hlY2tzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBhbiBT
REsgdGhhdAorICAgIC8vIGRvZXMgbm90IGhhdmUgZHlsZF9wcml2LmgsIG9yIGRvZXMgbm90IGRl
ZmluZSBhIGdpdmVuIHZlcnNpb24gc2V0LgorICAgIGlmICh2ZXJzaW9uLnBsYXRmb3JtIHx8IHZl
cnNpb24udmVyc2lvbikKKyAgICAgICAgcmV0dXJuICFkeWxkX3Byb2dyYW1fc2RrX2F0X2xlYXN0
KHZlcnNpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmVyc2lvbik7CisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgVU5VU0VEX1BBUkFNKGZhbGxiYWNrTWFjT1NW
ZXJzaW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwgZmFs
bGJhY2tJT1NWZXJzaW9uOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tJT1NWZXJz
aW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwgZmFsbGJh
Y2tNYWNPU1ZlcnNpb247CisjZW5kaWYKIH0KIAotdm9pZCBzZXRBcHBsaWNhdGlvblNES1ZlcnNp
b24odWludDMyX3QgdmVyc2lvbikKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hh
c19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2FB
ZGRpdGlvbnMuY3BwPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGljYXRp
b25DaGVja3NDb2NvYUFkZGl0aW9ucy5jcHA+CisjZWxzZQorc3RhdGljIHZvaWQgZGlzYWJsZUFk
ZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhhdmlvcnMmKQogewotICAg
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkgPSB2ZXJzaW9uOwogfQorI2VuZGlmCiAK
LXVpbnQzMl90IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpCitzdGF0aWMgU0RLQWxpZ25lZEJlaGF2
aW9ycyBjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGFwcGxpY2F0aW9u
U0RLVmVyc2lvbk92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqYXBwbGljYXRpb25TREtWZXJz
aW9uT3ZlcnJpZGUoKTsKLSAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigp
OworICAgIFNES0FsaWduZWRCZWhhdmlvcnMgYmVoYXZpb3JzOworICAgIGJlaGF2aW9ycy5zZXRB
bGwoKTsKKworICAgIGF1dG8gZGlzYWJsZUJlaGF2aW9yID0gWyZdIChTREtBbGlnbmVkQmVoYXZp
b3IgYmVoYXZpb3IpIHsKKyAgICAgICAgYmVoYXZpb3JzLmNsZWFyKHN0YXRpY19jYXN0PHNpemVf
dD4oYmVoYXZpb3IpKTsKKyAgICB9OworCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxf
MjAxNV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl85XzAsIERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5
bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTIpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2spOworICAg
ICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXF1aXJlc1VzZXJHZXN0
dXJlVG9Mb2FkVmlkZW8pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVGhlU2VjcmV0U29jaWV0
eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpOworICAg
IH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxk
X2ZhbGxfMjAxNl9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8wLCBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbHNlCisgICAgaWYgKGxpbmtlZEJl
Zm9yZShkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8wLCBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbmRpZgorCisgICAg
aWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxN19vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVS
U0lPTl8xMV8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzKSkgeworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxl
dGlvbkhhbmRsZXJDYWxscyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXZWJJY29uRGF0
YWJhc2VXYXJuaW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3ByaW5n
XzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTFfMywgRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMF8xM180KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpEaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVUb3Vj
aExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTJfMCwgRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xNCkpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVSVNjcm9sbFZpZXdE
b2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9u
SW5XZWJQYWdlUHJveHkpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayk7CisgICAgICAgIGRpc2FibGVC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlRpbWVyVGhyZWFkU2FmZXR5Q2hlY2tzKTsKKyAg
ICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMs
IERZTERfSU9TX1ZFUlNJT05fMTJfMiwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNF80KSkgewor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMYXp5R2VzdHVyZVJl
Y29nbml6ZXJJbnN0YWxsYXRpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbik7CisgICAgfQorCisg
ICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxOV9vc192ZXJzaW9ucywgRFlMRF9JT1Nf
VkVSU0lPTl8xM18wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1KSkgeworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1VuY29uZGl0aW9uYWxVbml2ZXJzYWxT
YW5kYm94RXh0ZW5zaW9uKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
UGVybWlzc2lvbkFQSSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6OkRlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JSZWxhdGVk
V2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIYXNVSUNvbnRleHRN
ZW51SW50ZXJhY3Rpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpOworICAgICAgICBk
aXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c092ZXJmbG93SGlkZGVu
T25NYWluRnJhbWUpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOb0lNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhy
ZWFkKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfbGF0ZV9mYWxsXzIwMTlf
b3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNfMiwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNV8xKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0
ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCk7CisKKyAgICBpZiAobGlua2VkQmVm
b3JlKGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNfNCwg
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNlbmRzTmF0aXZlTW91c2VFdmVudHMp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNaW5pbWl6ZXNM
YW5ndWFnZXMpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9mYWxsXzIwMjBf
b3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfMCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vz
c2lvbkNsZWFudXBCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3RvcmVJ
bml0UmV0dXJuaW5nTmlsKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6V2ViU1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vTGFCYW5xdWVQb3N0YWxlUXVpcmtz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9Qb2tlckJy
b3NCdWlsdEluVGFnUXVpcmspOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9s
YXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8yLCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE2KSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U3VwcG9ydHNpT1NBcHBzT25NYWNPUyk7CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfc3ByaW5nXzIwMjFfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfNSwgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMV8zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2Vy
dmVzQ2xhc3NQcm9wZXJ0eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2Vzcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKKyAg
ICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9DbGllbnRDZXJ0aWZp
Y2F0ZUxvb2t1cCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRlZmF1bHRzVG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVz
VG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxk
X2ZhbGxfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNV8wLCBEWUxEX01BQ09T
WF9WRVJTSU9OXzEyXzAwKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RE9NV2luZG93UmV1c2VSZXN0cmljdGlv
bik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxpY2F0
aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6Ok5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOworICAg
ICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVN
aWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJl
Zm9yZShkeWxkX3NwcmluZ18yMDIyX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1XzQs
IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMykpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5SZWRpcmVjdHMp
OworCisgICAgZGlzYWJsZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKGJlaGF2aW9ycyk7
CisKKyAgICByZXR1cm4gYmVoYXZpb3JzOwogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxMaW5r
ZWRPbk9yQWZ0ZXJPdmVycmlkZT4mIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKQorc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4mIHNka0FsaWduZWRCZWhhdmlv
cnNWYWx1ZSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3Zl
cnJpZGU+IGxpbmtlZE9uT3JBZnRlcjsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFNES0FsaWduZWRCZWhhdmlvcnM+
PiBiZWhhdmlvcnM7CisgICAgcmV0dXJuIGJlaGF2aW9ycy5nZXQoKTsKIH0KIAotdm9pZCBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJy
aWRlPiBsaW5rZWRPbk9yQWZ0ZXIpCitjb25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtBbGln
bmVkQmVoYXZpb3JzKCkKIHsKLSAgICBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKCkgPSBs
aW5rZWRPbk9yQWZ0ZXI7CisgICAgYXV0byYgYmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2aW9y
c1ZhbHVlKCk7CisKKyAgICBpZiAoIWJlaGF2aW9ycykKKyAgICAgICAgYmVoYXZpb3JzID0gY29t
cHV0ZVNES0FsaWduZWRCZWhhdmlvcnMoKTsKKworICAgIHJldHVybiAqYmVoYXZpb3JzOwogfQog
Ci1zdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPiBsaW5rZWRPbk9yQWZ0ZXJP
dmVycmlkZSgpCit2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9y
cyBiZWhhdmlvcnMpCiB7Ci0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUo
KTsKKyAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCBhc3NlcnQgdGhhdCBgbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yYCBoYWQgbm90CisgICAgLy8gYmVlbiBjYWxsZWQgYXQgdGhp
cyBwb2ludCAoYmVjYXVzZSBpdHMgcmVwbHkgY291bGQgaGF2ZSBiZWVuIGluYWNjdXJhdGUpLAor
ICAgIC8vIGJ1dCBXZWJQcmVmZXJlbmNlcyB1c2UgaW4gU2FmYXJpIChhdCBsZWFzdCkgY3VycmVu
dGx5IHByZXZlbnRzIHRoaXMgaGFyZGVuaW5nLgorCisgICAgc2RrQWxpZ25lZEJlaGF2aW9yc1Zh
bHVlKCkgPSBiZWhhdmlvcnM7Cit9CisKK3ZvaWQgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9y
cygpCit7CisgICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZpb3Jz
LnNldEFsbCgpOworICAgIHNldFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKIH0KIAot
Ym9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbiBzZGtWZXJzaW9uKQordm9pZCBkaXNhYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGF1dG8gb3ZlcnJpZGVWYWx1ZSA9
IGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqb3ZlcnJpZGVWYWx1
ZSA9PSBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nOworICAgIHNldFNE
S0FsaWduZWRCZWhhdmlvcnMoeyB9KTsKK30KIAotICAgIGF1dG8gc2RrVmVyc2lvbkFzSW50ZWdl
ciA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZGtWZXJzaW9uKTsKLSAgICByZXR1cm4gc2RrVmVy
c2lvbkFzSW50ZWdlciAmJiBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA+PSBzZGtWZXJzaW9uQXNJ
bnRlZ2VyOworYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yIGJlaGF2aW9yKQoreworICAgIHJldHVybiBzZGtBbGlnbmVkQmVoYXZpb3JzKCkuZ2V0
KHN0YXRpY19jYXN0PHNpemVfdD4oYmVoYXZpb3IpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaCBiL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKaW5kZXggMDU1
ODI2ZDMzOTg1ZmI4NGYxNTE2YzViMjgxNjgwNmY5NWM3NGExMC4uOGQwNjFkZmU1ZjkyOTE4ZGFi
ZDYyZDA4OTZhMDAyYTEyMzQ3ZjE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2Ev
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2Nv
YS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCkBAIC0yNiwxMjUgKzI2LDkyIEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9CaXRtYXAu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4v
ZHlsZFNQSS5oPgotCiBuYW1lc3BhY2UgV1RGIHsKIAotZW51bSBjbGFzcyBTREtWZXJzaW9uIDog
dWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoUGljdHVy
ZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBEWUxEX0lPU19WRVJTSU9OXzlfMCwKLSAgICBGaXJz
dFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gRFlMRF9JT1Nf
VkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VGhhdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRl
byA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhMaW5rUHJldmlld0VuYWJs
ZWRCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0Q29udmVy
dHNJbnZhbGlkVVJMc1RvQmxhbmsgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RX
aXRob3V0VGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmsgPSBEWUxE
X0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RXaXRoVW5wcmVmaXhlZFBsYXlzSW5saW5lQXR0
cmlidXRlID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VmVyc2lvblRoYXRTdXBw
b3J0c0luaXRDb25zdHJ1Y3RvcnMgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RX
aXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX0lP
U19WRVJTSU9OXzExXzAsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciA9
IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5nQW55
WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0
VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9JT1Nf
VkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5v
dE9ic2N1cmluZ0luc2V0cyA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdoZXJl
VUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkgPSBE
WUxEX0lPU19WRVJTSU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3Nl
cnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdp
dGhvdXRNb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzEy
XzAsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3MgPSBEWUxEX0lPU19WRVJT
SU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5zdGFsbGF0aW9u
ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9z
c1NpdGVOYXZpZ2F0aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0aG91
dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1NfVkVSU0lP
Tl8xM18wLAotICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzID0gRFlMRF9J
T1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
UGVybWlzc2lvbkFQSSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXREZWNp
ZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcgPSBEWUxEX0lPU19WRVJTSU9O
XzEzXzAsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlm
ZmVyZW50RGF0YVN0b3JlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdpdGhN
b2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0g
ICAgRmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uID0gRFlMRF9JT1NfVkVSU0lP
Tl8xM18wLAotICAgIEZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29t
bWFuZHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0U3VwcG9ydHNPdmVy
Zmxvd0hpZGRlbk9uTWFpbkZyYW1lID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0
V2l0aG91dElNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9
IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2No
ZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2ZU1v
dXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdE1pbmltaXpl
c0xhbmd1YWdlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhJ
bml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzE0
XzAsCi0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZ
TERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVmYXVs
dEluTGVnYWN5V2ViS2l0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aG91
dExhQmFucXVlUG9zdGFsZVF1aXJrcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJz
dFdpdGhvdXRQb2tlckJyb3NCdWlsdEluVGFnUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAs
Ci0gICAgRmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNPbk1hY09TID0gRFlMRF9JT1NfVkVSU0lPTl8x
NF8yLAotICAgIEZpcnN0V2l0aERhdGFVUkxGcmFnbWVudFJlbW92YWwgPSBEWUxEX0lPU19WRVJT
SU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1l
cyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFRoYXRPYnNlcnZlc0NsYXNzUHJv
cGVydHkgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRob3V0V2VDaGF0U2Ny
b2xsaW5nUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoU2hhcmVk
TmV0d29ya1Byb2Nlc3MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoQmxh
bmtWaWV3T25KU1Byb21wdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhO
dWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8w
LAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gID0gRFlMRF9JT1NfVkVS
U0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVs
dCA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhl
ZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFRo
YXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERfSU9T
X1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhBdXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3Jp
Z2luUmVkaXJlY3RzID0gRFlMRF9JT1NfVkVSU0lPTl8xNV80LAotICAgIEZpcnN0V2l0aG91dFR5
cGVkQXJyYXlBUElRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTZfMCwKLSAgICBGaXJzdEZvcmJp
ZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotI2VsaWYgUExB
VEZPUk0oTUFDKQotICAgIEZpcnN0VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMg
PSAweEEwQTAwLCAvLyBPUyBYIDEwLjEwCi0gICAgRmlyc3RUaGF0Q29udmVydHNJbnZhbGlkVVJM
c1RvQmxhbmsgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEyLAotICAgIEZpcnN0V2l0aEV4Y2Vw
dGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1
bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGlyZWRPbmx5
UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0
aFdlYkljb25EYXRhYmFzZVdhcm5pbmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAg
IEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aFRpbWVyVGhyZWFkU2FmZXR5Q2hl
Y2tzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKLSAgICBGaXJzdFdpdGhvdXRVbmNvbmRp
dGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTUsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmll
d3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1LAot
ICAgIEZpcnN0V2l0aERvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtz
QXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSwKLSAgICBG
aXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBf
MTVfNCwKLSAgICBGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMgPSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQyTWFp
blRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RX
aXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTYsCi0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9w
ZXJ0eU5hbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEJsYW5r
Vmlld09uSlNQcm9tcHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRo
b3V0Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0g
ICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0QWxsb3dzV2hlZWxFdmVudEdl
c3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAg
ICBGaXJzdFdpdGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9u
ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFRoYXREb2VzTm90RHJhaW5U
aGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTJf
MDAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhlZFBy
b3BlcnRpZXNPbldpbmRvdyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDAsCi0gICAgRmlyc3RX
aXRoQXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyA9IERZTERfTUFDT1NY
X1ZFUlNJT05fMTJfMywKLSAgICBGaXJzdEZvcmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xM18wLAotI2VuZGlmCitlbnVtIGNsYXNzIFNES0FsaWduZWRCZWhh
dmlvciB7CisgICAgQWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZywK
KyAgICBBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQsCisgICAgQXV0aG9yaXphdGlv
bkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cywKKyAgICBCbGFua3NWaWV3T25KU1Byb21wdCwK
KyAgICBDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuaywKKyAgICBEYXRhVVJMRnJhZ21lbnRSZW1v
dmFsLAorICAgIERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldywKKyAg
ICBEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEZWZhdWx0
c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEaXNhbGxvd3NTZXR0aW5n
QW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzLAorICAgIERvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1
ZXVlV2hlbkNhbGxpbmdPYmpDLAorICAgIERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24sCisgICAg
RG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQsCisgICAgRHJvcFRvTmF2aWdh
dGVEaXNhbGxvd2VkQnlEZWZhdWx0LAorICAgIEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0
aW9uSGFuZGxlckNhbGxzLAorICAgIEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0Rp
ZmZlcmVudERhdGFTdG9yZXMsCisgICAgRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciwKKyAgICBG
b3JiaWRzRG90UHJlZml4ZWRGb250cywKKyAgICBIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24s
CisgICAgSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcywKKyAgICBJbml0aWFsaXpl
V2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24sCisgICAgTGF6eUdlc3R1cmVSZWNvZ25pemVySW5z
dGFsbGF0aW9uLAorICAgIExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBNYWluVGhy
ZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5LAorICAgIE1lZGlhVHlwZXNSZXF1aXJp
bmdVc2VyQWN0aW9uRm9yUGxheWJhY2ssCisgICAgTWluaW1pemVzTGFuZ3VhZ2VzLAorICAgIE1v
ZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCwKKyAgICBOb0NsaWVudENlcnRpZmljYXRlTG9v
a3VwLAorICAgIE5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3csCisgICAgTm9JTURi
Q1NTT01WaWV3U2Nyb2xsaW5nUXVpcmssCisgICAgTm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MsCisg
ICAgTm9Nb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmssCisgICAgTm9Qb2tlckJyb3NCdWls
dEluVGFnUXVpcmssCisgICAgTm9UaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09w
ZW5RdWlyaywKKyAgICBOb1R5cGVkQXJyYXlBUElRdWlyaywKKyAgICBOb1VuY29uZGl0aW9uYWxV
bml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uLAorICAgIE5vV2VDaGF0U2Nyb2xsaW5nUXVpcmssCisg
ICAgTnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcywKKyAgICBPYnNlcnZlc0NsYXNz
UHJvcGVydHksCisgICAgUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2ssCisgICAgUHJvY2Vz
c1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24sCisgICAgUmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9h
ZFZpZGVvLAorICAgIFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzLAorICAgIFNjcm9sbFZpZXdDb250
ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzLAorICAgIFNlbmRzTmF0aXZlTW91c2VFdmVu
dHMsCisgICAgU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQsCisgICAgU2hhcmVkTmV0d29ya1Byb2Nl
c3MsCisgICAgU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBTbmFw
c2hvdEFmdGVyU2NyZWVuVXBkYXRlcywKKyAgICBTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uUGVybWlzc2lvbkFQSSwKKyAgICBTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMsCisgICAg
U3VwcG9ydHNpT1NBcHBzT25NYWNPUywKKyAgICBTdXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWlu
RnJhbWUsCisgICAgVGltZXJUaHJlYWRTYWZldHlDaGVja3MsCisgICAgVUlTY3JvbGxWaWV3RG9l
c05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHksCisgICAgVW5wcmVmaXhlZFBs
YXlzSW5saW5lQXR0cmlidXRlLAorICAgIFdlYkljb25EYXRhYmFzZVdhcm5pbmcsCisgICAgV2Vi
U1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCwKKyAgICBXS0NvbnRlbnRWaWV3RG9l
c05vdE92ZXJyaWRlS2V5Q29tbWFuZHMsCisgICAgV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVy
bmluZ05pbCwKKworICAgIE51bWJlck9mQmVoYXZpb3JzCiB9OwogCi1XVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbik7Cit1c2luZyBTREtBbGlnbmVkQmVo
YXZpb3JzID0gQml0bWFwPHN0YXRpY19jYXN0PHNpemVfdD4oU0RLQWxpZ25lZEJlaGF2aW9yOjpO
dW1iZXJPZkJlaGF2aW9ycyksIHVpbnQ2NF90PjsKIAotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQg
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHVpbnQzMl90KTsKK1dURl9FWFBPUlRfUFJJVkFURSBj
b25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtBbGlnbmVkQmVoYXZpb3JzKCk7CitXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhhdmlv
cnMpOwogCi0vLyBEbyBub3QgdXNlIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIGRpcmVjdGx5OyBh
ZGQgYSB2ZXJzaW9uIHRvIHRoZSBlbnVtIGFib3ZlLAotLy8gYW5kIHVzZSBsaW5rZWRPbk9yQWZ0
ZXIoKSBhdCBjYWxsIHNpdGVzLgotV1RGX0VYUE9SVF9QUklWQVRFIHVpbnQzMl90IGFwcGxpY2F0
aW9uU0RLVmVyc2lvbigpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlQWxsU0RLQWxp
Z25lZEJlaGF2aW9ycygpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzYWJsZUFsbFNES0Fs
aWduZWRCZWhhdmlvcnMoKTsKIAotZW51bSBjbGFzcyBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSA6
IHVpbnQ4X3QgewotICAgIEJlZm9yZUV2ZXJ5dGhpbmcsCi0gICAgQWZ0ZXJFdmVyeXRoaW5nCi19
OwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4pOwotV1RGX0VYUE9SVF9QUklWQVRF
IHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92
ZXJyaWRlKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yKTsKIAogfQogCi11c2luZyBXVEY6OnNldEFwcGxp
Y2F0aW9uU0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uOwotdXNp
bmcgV1RGOjpMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6c2V0TGlua2VkT25P
ckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNp
bmcgV1RGOjpsaW5rZWRPbk9yQWZ0ZXI7Ci11c2luZyBXVEY6OlNES1ZlcnNpb247Ci11c2luZyBX
VEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbjsKK3VzaW5nIFdURjo6ZGlzYWJsZUFsbFNES0Fs
aWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OmVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnM7
Cit1c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcjsKK3VzaW5nIFdURjo6
U0RLQWxpZ25lZEJlaGF2aW9yOwordXNpbmcgV1RGOjpzZGtBbGlnbmVkQmVoYXZpb3JzOwordXNp
bmcgV1RGOjpTREtBbGlnbmVkQmVoYXZpb3JzOwordXNpbmcgV1RGOjpzZXRTREtBbGlnbmVkQmVo
YXZpb3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaAppbmRleCAzNDY4OThjMjg1NmQy
ZjdiZTc4MDcxZTY4MmMxMmUxN2IzNTVjY2RlLi4zNjA0MDY4MTRiOWFmNmE2MjEyNjU4MGQzZTgw
ZTA4MjY2MmYwODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRT
UEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaApAQCAtMTIzLDYg
KzEyMywxMSBAQAogCiAjZWxzZQogCit0eXBlZGVmIHN0cnVjdCB7CisgICAgZHlsZF9wbGF0Zm9y
bV90IHBsYXRmb3JtOworICAgIHVpbnQzMl90IHZlcnNpb247Cit9IGR5bGRfYnVpbGRfdmVyc2lv
bl90OworCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05fM18wIDB4MDAwMzAwMDAKICNkZWZpbmUg
RFlMRF9JT1NfVkVSU0lPTl80XzIgMHgwMDA0MDIwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9O
XzVfMCAweDAwMDUwMDAwCkBAIC0xNDQsMTAgKzE0OSwxMyBAQAogI2RlZmluZSBEWUxEX0lPU19W
RVJTSU9OXzE1XzQgMHgwMDBmMDQwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE2XzAgMHgw
MDEwMDAwMAogCisjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTEgMHgwMDBBMEEwMAog
I2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzExIDB4MDAwQTBCMDAKICNkZWZpbmUgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMF8xMiAweDAwMEEwQzAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTMgMHgwMDBBMEQwMAorI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEz
XzQgMHgwMDBBMEQwNAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBF
MDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNF80IDB4MDAwQTBFMDQKICNkZWZp
bmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSAweDAwMEEwRjAwCiAjZGVmaW5lIERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTVfMSAweDAwMEEwRjAxCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJ
T05fMTBfMTVfNCAweDAwMEEwRjA0CkBAIC0xNjEsNiArMTY5LDc1IEBACiAKIFdURl9FWFRFUk5f
Q19CRUdJTgogCisvLyBCZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBmb3J3YXJkLWRlY2xh
cmUgZHlsZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzLAorLy8gd2UgZm9yd2FyZC1kZWNsYXJlIHBs
YWNlaG9sZGVycyBmb3IgYW55IG1pc3NpbmcgZGVmaW5pdGlvbnMsIGFuZCB1c2UgdGhlaXIgZW1w
dHkKKy8vIHZhbHVlIHRvIGluZGljYXRlIHRoYXQgd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gYW50
aXF1ZSBzaW5nbGUtcGxhdGZvcm0gU0RLIGNoZWNrcy4KKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAx
NF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9m
YWxsXzIwMTVfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVm
IGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE2X29zX3Zl
cnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKwor
I2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAx
Nl9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2Vu
ZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTdfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9m
YWxsXzIwMTdfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsg
fSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZp
bmUgZHlsZF9zcHJpbmdfMjAxOF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3Qp
IHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lv
bnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVy
c2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMTlf
b3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9m
YWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVm
IGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9sYXRlX2ZhbGxf
MjAxOV9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQor
I2VuZGlmCisKKyNpZm5kZWYgZHlsZF9zcHJpbmdfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBk
eWxkX3NwcmluZ18yMDIwX29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAw
LCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucwor
I2RlZmluZSBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9u
X3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9sYXRlX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2xhdGVfZmFsbF8yMDIwX29zX3ZlcnNpb25zICh7IChk
eWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxk
X3dpbnRlcl8yMDIwX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfd2ludGVyXzIwMjBfb3NfdmVy
c2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisj
aWZuZGVmIGR5bGRfZmFsbF8yMDIxX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDIx
X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5k
aWYKKworI2lmbmRlZiBkeWxkX3NwcmluZ18yMDIyX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRf
c3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAg
fTsgfSkKKyNlbmRpZgorCiB1aW50MzJfdCBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7
Citib29sIGR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QoZHlsZF9idWlsZF92ZXJzaW9uX3QpOwog
CiBXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggOGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNh
MzFkYjYwNi4uNWZhNjEyZjVmODBkZWNmNjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhw
YW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZl
biB0aGF0IFdpbmRvd1Byb3h5IGlzIHRoZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5
IG1vZGUgZnVuY3Rpb25zLCBpdCdzIGhhcmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlP
UyBhbmQgbWFjT1MgYXBwcyBkb24ndCBhY2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZp
b3IsIHNvIHdlIGtlZXAgaXQgZm9yIHRoZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWly
ayA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4
ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOworICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAh
bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBh
bmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7
CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXaW5kb3dQcm94eS5jcHAKaW5kZXggMjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3
ZjJhMzVlMC4uY2E3OTM4ZTc5NDUwOGM3YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsx
MTIsNyBAQCB2b2lkIEpTV2luZG93UHJveHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYg
ZG9tV2luZG93KQogICAgICAgICB3aW5kb3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2lu
ZG93U3RydWN0dXJlLCBsb2NhbFdpbmRvdywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0
aE5ld1NESyA9IHRydWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhO
ZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1
c2VSZXN0cmljdGlvbik7CisgICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3Ry
aWN0aW9uKTsKICNlbmRpZgogICAgICAgICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhh
dmVJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAg
ICAgICAgIGxvY2FsV2luZG93LnNldEFzV3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5
T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApp
bmRleCAyZDgxZjE0NWFiMDVlOWI2YzBjNTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQy
ZTUzYTI2MDkyNThiNjY2OTVjZTZjNzI2ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxl
bWVudFNlc3Npb246OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJv
b2tzKCkpCiAgICAgICAgIHJldHVybiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjp3ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVt
ZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lu
bGluZUF0dHIpOwotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0
aFVucHJlZml4ZWRQbGF5c0lubGluZUF0dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxp
bmVBdHRyaWJ1dGUpKQogICAgICAgICByZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLmNwcAppbmRleCBjMzYwOWEyMjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNj
Li5kYzg2OTk2NjA5ZWFjNDc3ODdkOGViNTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAx
LDcgKzIwMSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmln
aW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9u
cy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjpp
c01vdmlTdGFyUGx1cygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
b3V0TW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdo
dFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGln
aHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZs
aWdodFF1aXJrID0gSU9TQXBwbGljYXRpb246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVz
Q09SU1ByZWZsaWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVm
bGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJl
ZmxpZ2h0UG9saWN5OjpGb3JjZSk7CiAjZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWly
ayA9IGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJr
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODky
MDNhYWVhZGExZDMwM2IyMzY5NDU4ZDQ3MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0
MjRlYjMzZjhjYjhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBA
IGJvb2wgUXVpcmtzOjpuZWVkc0Z1bGxzY3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJv
b2wgUXVpcmtzOjpuZWVkc1dlQ2hhdFNjcm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgcmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGlj
YXRpb246OmlzV2VjaGF0KCk7CisgICAgcmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xs
aW5nUXVpcmspICYmIElPU0FwcGxpY2F0aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1
cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTcxNiw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNX
ZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNvbnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxE
b2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIHN0YXRpYyBib29sIHNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5h
bWVzID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRT
dXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERv
Y3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5h
bWVzKTsKICAgICByZXR1cm4gc2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXM7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5jcHAKaW5kZXggNmIxMzBiYjJjZjRhNTQ5ODgzZWYxY2M5MDdhN2E3MmM3NWNkMjli
OS4uNTE0MzdjYjcwYTA1YmVlZGMzMzdhODYzMzI4NWU2MzBhOTQ5NDBlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9v
bCBzaG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBz
Oi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jb3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBp
ZiAodXJsLmhhc1NwZWNpYWxTY2hlbWUoKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8
fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25T
cGVjaWFsU2NoZW1lZFVSTHMpCisgICAgICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRV
UkxzKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAg
fHwgdXJsLnByb3RvY29sSXMoIngtYXBwbGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9j
b2xJcygieC1hcHBsZS1xbC1pZDIiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4
OTA1M2Y5Mjg1Zjk4ODZmYTU5Yjg4N2E3MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVh
YzQyYzdjOTNmZGMyMzAxYjUxOGIzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAg
LTI1MCw5ICsyNTAsOSBAQCBwcml2YXRlOgogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJl
YWRTYWZldHlDaGVjaygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4g
V2ViVGhyZWFkSXNFbmFibGVkKCkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5h
YmxlZCgpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpUaW1lclRocmVhZFNhZmV0eUNoZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAg
cmV0dXJuICFpc0luV2ViUHJvY2VzcygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlBy
b2Nlc3MoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6VGltZXJUaHJlYWRTYWZldHlDaGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFm
ZWJmNjM2ZDE5MDUyYzI2NTQyMzQyLi5kOTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAy
N2E4MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBz
dHJ1Y3QgRm9udExvb2t1cCB7CiAKIHN0YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5G
b250KGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRz
RG90UHJlZml4ZWRGb250cykpCiAgICAgICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicp
OwogICAgIHJldHVybiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBw
bGVzeXN0ZW11aWZvbnRzZXJpZiIpCiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGZhbWlseSwgIi5zZiBucyBtb25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYy
YTEwNzk4NTdlZTM3OGZjYTM4NDBlZC4uY2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZm
OGUzNzM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRh
VVJMRGVjb2Rlci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVy
IHsKIHN0YXRpYyBib29sIHNob3VsZFJlbW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJp
bmcmIG1lZGlhVHlwZSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAg
ICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRhdGFVUkxGcmFnbWVudFJlbW92YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAv
LyBITFMgdXNlcyAjIGluIHRoZSBtaWRkbGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2Mjcy
MjNiZDcwMmIxOTBkNzRjMDA2YzgxNTJmMTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5
NjQ1N2FlZGFiNTRmOGQ0NjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NB
bnlTU0xDZXJ0aWZpY2F0ZShib29sIGFsbG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExp
bmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4
ZTlkOGFlMjFlYjBkN2Y5ODllMmFkNWUzM2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2Zl
NzUxNjU2OTMwMWUzNjZmZGU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4
LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rp
b24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBP
cmlnaW4oKTsKIAogICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24g
PSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6
OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoQXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJl
ZGlyZWN0cykpCisgICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVz
dC5odHRwSGVhZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24p
OyAhYXV0aG9yaXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBdXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVk
aXJlY3RzKSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6
OkhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVT
RShDUkVERU5USUFMX1NUT1JBR0VfV0lUSF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KaW5kZXggN2IwNDJhMzY1M2M1OWVhMTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIx
MzlhNTg4ODE2NGFlMzg1ODg1OTEwOTI4NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpA
QCAtMTA5Miw3ICsxMDkyLDcgQEAgc3RhdGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29u
ZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29u
ZmlndXJhdGlvbl07CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3
b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRob3V0Q2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVy
YWwoKTsKKyAgICBib29sIHByZXZlbnRDRk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xp
ZW50Q2VydGlmaWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAg
ICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgy
OTg1OTNjMzJjOTVjZTdjNzJkZWI4ZTc3MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3
YmJhZThmOTExZmVlOTAzZjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4
aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nl
c3MuaApAQCAtMTgwLDE0ICsxODAsMTMgQEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMgewogICAgIFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmlu
ZyBjbGllbnRJZGVudGlmaWVyOwogICAgIFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwot
ICAgIHVpbnQzMl90IGNsaWVudFNES1ZlcnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFy
eVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2Jq
ZWN0UHRyPHhwY19vYmplY3RfdD4gcHJpb3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRp
b25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJp
ZGU7CisgICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwog
I2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhp
bGlhcnlQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlh
cnlQcm9jZXNzQ29jb2EubW0KaW5kZXggNWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFi
YWJiZGI0Zi4uN2I1NmQ0NjBjOTEyMDhmNDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5t
bQpAQCAtNzcsOCArNzcsNyBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsK
LSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9u
KTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKTsKKyAgICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRl
cnMuY2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vz
czo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2Fn
ZU5hbWUgbWVzc2FnZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2
NTMxZjFlMTlkNmYxNDkzMjE4YWY4ODQ3ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYx
M2Y3NTlmZmE4YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21w
bGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0NvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3Rh
dGljIGJvb2wgc2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxl
ckNhbGwoKQogICAgIHN0YXRpYyBib29sIHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRp
YyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAg
ICAgICAgc2hvdWxkVGhyb3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOwor
ICAgICAgICBzaG91bGRUaHJvd0V4Y2VwdGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9u
SGFuZGxlckNhbGxzKTsKICAgICB9KTsKICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJv
d3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNmNTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVl
ODcuLjNhMTZhMmNjMzk0NGM0MjExNDUzOThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1t
CkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1
cnJlbnRJVFBTdGF0ZSAhPSBJVFBTdGF0ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYm9vbCBhcHBXYXNMaW5rZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBw
V2FzTGlua2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUo
KSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsK
ICAgICBpdHBRdWV1ZSgpLT5kaXNwYXRjaChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJ
ZGVudGlmaWVyID0gV2ViQ29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0
ZWRDb3B5KCldIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktp
dDJJbml0aWFsaXplQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tCmluZGV4IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBh
ZmQ5ODBmN2UuLjE0ZTdjYzI1YjIwMjY4YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2Nv
YS5tbQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBN
YWtlIHN1cmUgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24g
dGhlIG1haW4gdGhyZWFkIHNpbmNlIHRoaW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkK
ICAgICAvLyBhcmUgb25seSBzYWZlIHRvIGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0
ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKLSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJl
YWRdIHx8IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2Vi
S2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pKQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRo
cmVhZF0gfHwgbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6SW5pdGlhbGl6ZVdlYktpdDJNYWluVGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1
bkluaXRpYWxpemF0aW9uQ29kZSgpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVl
dWU6Om1haW4oKS5kaXNwYXRjaFN5bmMoW10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQ
b2ludC5oCmluZGV4IGJhYTAxMjU3MDc3N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1
MmFkYzAxN2NlMjcwNzUxOTFmMTM3OTlkMmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENT
ZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5
ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIo
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50
SWRlbnRpZmllcihTdHJpbmcmIGNsaWVudElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyKFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7
Ci0gICAgdmlydHVhbCBib29sIGdldENsaWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNE
S1ZlcnNpb24pOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcm
IGNsaWVudFByb2Nlc3NOYW1lKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVy
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZp
b3JzJik7CiAgICAgdmlydHVhbCBib29sIGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+JiBleHRyYUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3Rl
ZDoKQEAgLTEzNSwxMCArMTM0LDcgQEAgdm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmpl
Y3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBU
aGUgaG9zdCBwcm9jZXNzIG1heSBub3QgaGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEg
Y29tbWFuZCBsaW5lIGFwcCksIHNvIGRvbid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdl
dENsaWVudEJ1bmRsZUlkZW50aWZpZXIocGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVy
KTsKICAgICAKLSAgICBkZWxlZ2F0ZS5nZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0
ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUu
Z2V0Q2xpZW50U0RLVmVyc2lvbihwYXJhbWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAg
ICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJl
aGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVudFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxl
Z2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmllcihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5k
ZXggY2I3MjQwZDg1ZDI1ZTE3MzFjM2Q0NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2
NTI3MmMxY2M3Yjc3OTRmYWUzMjQ4MDA1ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRy
eVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1
IEBAIGJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlk
ZW50aWZpZXIoU3RyaW5nJiBjbGllbnRCdW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVu
dGlmaWVyLmlzRW1wdHkoKTsKIH0KIAotYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0
ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wg
WFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlv
cnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYgYmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9
IHBhcnNlSW50ZWdlcjx1aW50MzJfdD4oeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRp
YWxpemVyTWVzc2FnZSwgImNsaWVudC1zZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJz
aW9uID0gdmVyc2lvbi52YWx1ZV9vcigwKTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUo
KTsKLX0KKyAgICBzaXplX3QgbGVuZ3RoID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhw
Y19kaWN0aW9uYXJ5X2dldF9kYXRhKG1faW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1h
bGlnbmVkLWJlaGF2aW9ycyIsICZsZW5ndGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlv
ckRhdGEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGgg
PT0gYmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlv
cnMuc3RvcmFnZSgpLCBiZWhhdmlvckRhdGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUlu
aXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9u
YWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsK
LSAgICBhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9n
ZXRfdmFsdWUobV9pbml0aWFsaXplck1lc3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVy
LW92ZXJyaWRlIik7Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAg
ICAgIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlVmFsdWUpID8gTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZl
cnl0aGluZyA6IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAg
IGVsc2UKLSAgICAgICAgbGlua2VkT25PckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRi
YzRkMjZkOTIyZmY3NTE5OTEuLmY4M2QwMWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdi
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVs
dFZhbHVlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZh
dWx0VmFsdWVzLmNwcApAQCAtNDQsMTMgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBi
b29sIGRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsK
LSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdB
UElFbmFibGVkKCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBs
aWNhdGlvbjo6aXNJTURiKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhvdXRJTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xs
aW5nUXVpcmspOwogICAgIHJldHVybiAhcmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAg
Ym9vbCBkZWZhdWx0QWx0ZXJuYXRlRm9ybUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBk
ZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dERlZmF1bHRzVG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21l
Tm9uQmxvY2tpbmcoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5v
bkJsb2NraW5nKTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNU
b0JlY29tZU5vbkJsb2NraW5nKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyAr
MTExLDcgQEAgYm9vbCBkZWZhdWx0QXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBi
b29sIGRlZmF1bHRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOwor
ICAgIHN0YXRpYyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAg
ICAgcmV0dXJuICFuZXdTREs7CiAjZWxzZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMg
c2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcgdGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAppbmRleCA1ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThm
NjczZjg4Li4yZDJjYTcwMWM5MDkyNjEzZjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2
b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5E
RUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9h
ZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0
aW9uOjpFeHBpcmVkT25seSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4
YWY3OTgwN2UxOTQyNGViMGRkOGZjLi42NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYz
ZjI3NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbC5tbQpAQCAtNDk4LDggKzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRy
b2xsZXJGcmFtZXdvcmsKIAogKyAodm9pZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdG
b3JUZXN0aW5nCiB7Ci0gICAgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVy
eXRoaW5nKTsKKyAgICBkaXNhYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2
b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUw
OCw3IEBAICsgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAK
ICsgKHZvaWQpX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNh
dGlvblNES1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAg
ICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0
ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAK
ICsgKHZvaWQpX3NldENhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzoo
Qk9PTClpc0VuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCmluZGV4IDE4M2Y0ZmMyODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTgu
LmFiMDc0Y2I0YjMzMTA0ZjViODk3YWU5Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIs
MTMgQEAgLSAoQk9PTClfaXNWYWxpZAogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1Bp
Y3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aFBpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2spOwogICAgIHJldHVybiBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRp
YVBsYXliYWNrOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0Fu
eVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJk
aW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMpOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhI
UkhlYWRlckZyb21GaWxlVVJMcyA9IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9n
cmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMczsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRp
YyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0
aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1
cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1
aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVp
cmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAg
ICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1
aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0
QmFzZVVSTFNjaGVtZXMoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVS
TFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3Rz
QmFzZVVSTFNjaGVtZXMpOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNj
aGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFz
ZVVSTFNjaGVtZXM7CiB9CiAKQEAgLTM0NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXpl
V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
CiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wgKnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHBy
b2Nlc3NQb29sICYmIHByb2Nlc3NQb29sICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAg
ICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25m
aWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVk
V2ViVmlldywgcmVsYXRlZFdlYlZpZXdQcm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNz
UG9vbF07Ci0gICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJW
aWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZp
ZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3
ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnRE
YXRhU3RvcmVzKSkKICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1
bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJSZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3Jl
ICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVA
IiwgcmVsYXRlZFdlYlZpZXcsIFtyZWxhdGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0
ZURhdGFTdG9yZV0sIFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAg
ICAgW19jb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bv
b2xdOwpAQCAtMzY4LDcgKzM2OCw3IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJh
dGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3Bv
cnRNZXRhVGFnV2lkdGggPSBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwog
ICAgIF9pbml0aWFsU2NhbGVGYWN0b3IgPSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1Rv
Rml0ID0gZGVmYXVsdEFsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQ
cmV2aWV3ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3
RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVk
QnlEZWZhdWx0KTsKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRl
cmFjdGlvbkVuYWJsZWQgPSBOTzsKQEAgLTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBh
Z2VDb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1
cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0
dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFk
ZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCkt
PnNldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19j
b25maWd1cmF0aW9uIF9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJl
dmlld10pOwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVu
YWJsZWQobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQSSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpLT5zZXREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0Uo
U1lTVEVNX1BSRVZJRVcpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dFN5c3RlbVByZXZpZXdFbmFibGVkKCEhW19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5h
YmxlZF0pOwpAQCAtNTcwLDcgKzU3MCw3IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRp
b246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1h
eERpZmZlcmVuY2UoW19jb25maWd1cmF0aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVy
ZW5jZV0pOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVk
UGFnZVRvcENvbG9yTWluSGVpZ2h0KFtfY29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xv
ck1pbkhlaWdodF0pOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJrc0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICgh
bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNw
ZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0
aW9uLT5wcmVmZXJlbmNlcygpLT5zZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdh
dGlvbiAqKXJlbG9hZAogewogICAgIFRIUk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8
V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiByZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisg
ICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChX
ZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVy
KF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAo
dm9pZCl0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24gKilzbmFwc2hvdENvbmZpZ3UKICAgICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25h
cHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5V
cGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90
QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgeworICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYm
ICFzbmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNj
cmVlblVwZGF0ZXMpKSB7CiAgICAgICAgIGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUw
MmIwZTVmNjEyYzNhZTcxZmY1ZDU5Yi4uMTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlm
Y2E2ZGY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0
aWMgX1dLRHJhZ0xpZnREZWxheSB0b0RyYWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0
YXRpYyBib29sIGRlZmF1bHRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldygpCiB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxk
RGVjaWRlID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xp
Y3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxk
RGVjaWRlID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1
cm4gc2hvdWxkRGVjaWRlOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAz
LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
a0FmdGVyRnVsbHNjcmVlbiA9ICFfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVk
aWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAj
aWYgIVBMQVRGT1JNKFdBVENIT1MpCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9u
OjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAg
ICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRp
YVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlh
VHlwZUF1ZGlvOwogICAgIGVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgz
OTkyOGRhZTgxMmYwNmNiMjgyOGMyMjM2NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZh
ZGIzYzc0YmFlMzU1MTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAo
V0tXZWJzaXRlRGF0YVN0b3JlICopbm9uUGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5j
ZXR5cGUpaW5pdAogewotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFT
dG9yZUluaXRSZXR1cm5pbmdOaWwpKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5l
cmljRXhjZXB0aW9uIGZvcm1hdDpAIkNhbGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBp
cyBub3Qgc3VwcG9ydGVkLiJdOwogICAgIAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0p
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpp
bmRleCA0MDgxOWIxYzVmOWZmYjAxZTE0YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3
OWRjNjFkYzJkNTQ0MTliMzZjNTliMzhmMmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJ
RWRnZUluc2V0cylfY29udGVudEluc2V0c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwog
CiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0
c0FyZU5vdE9ic2N1cmluZ0luc2V0cykpIHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJl
Tm90T2JzY3VyaW5nSW5zZXRzKSkgewogICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5
IHdpdGggdGhpcmQgcGFydHkgYXBwcywgdHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMg
YXMgb2JzY3VyaW5nIGluc2V0cyB3aGVuIHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8g
YWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9uIHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAg
ICAgICByZXR1cm4gW3NlbGYgX2NvbXB1dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkx
ZThhNTlhY2U5ODBhMTFkZjAzMWQyMjc0NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYy
MTZlYjdkMjRhNGYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KQEAgLTExODYsNyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uKV93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNE
cmFnCiAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAg
ICAgcmV0dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
TWFza0ZvckRyYWdnaW5nSW5mbzpkcmFnZ2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZh
dWx0KSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJl
dHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0
aW5hdGlvbkFjdGlvbkFueSAmIH5XS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThm
NTVlZDVkMjgwZGU0MTUxZi4uNjU5NDAyM2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3
IEBAIC0gKHZvaWQpaW5zcGVjdG9yV0tXZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmll
dyAqKXdlYlZpZXcKICAgICAgICAgcmV0dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJl
bG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25s
eVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVs
b2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJl
bG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNo
ZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2Uy
NTcyNWFhOWYwMWVkZDZlODdmMGZlM2YzMzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4
OWJlZTZiYjIyMzIzYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcg
KzIxNiw2IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1p
ZGVudGlmaWVyIiwgIWNsaWVudElkZW50aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmll
ci51dGY4KCkuZGF0YSgpIDogKl9OU0dldFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRp
ZmllciIsIFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRh
KCkpOwotICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQo
KSwgImNsaWVudC1zZGstdmVyc2lvbiIsIFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVy
c2lvbigpKS51dGY4KCkuZGF0YSgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJv
b3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJwcm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJl
cihtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRh
dGEoKSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdl
dCgpLCAidWktcHJvY2Vzcy1uYW1lIiwgW1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJv
Y2Vzc05hbWVdIFVURjhTdHJpbmddKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJv
b3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJzZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsy
MjYsOCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhw
Y19kaWN0aW9uYXJ5X3NldF9mZChib290c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RE
RVJSX0ZJTEVOTyk7CiAgICAgfQogICAgIAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92
ZXJyaWRlVmFsdWUgPSBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGlj
dGlvbmFyeV9zZXRfYm9vbChib290c3RyYXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1v
bi1vci1hZnRlci1vdmVycmlkZSIsICpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVo
YXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9k
YXRhKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3Jz
Iiwgc2RrQmVoYXZpb3JzLnN0b3JhZ2UoKSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5
dGVzKCkpOwogCiAgICAgYXV0byBleHRyYUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmpl
Y3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRlKG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFm
OWE3MWU0OGZiNTgxOGVjZWM5NjBlZmUxMTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYx
ODRkOTU0MzZmYjRmMTVkNmY1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNv
bnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSkpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUo
KSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
ZWJmY2M4YjQ1OTY0Njc1OGJhYzMyYjczNTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2
NDg0NWM2ODY2NjQ1NTlhZjMxZmExYjhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0xMzQ5LDcgKzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5
YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2Nl
cwogICAgIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0
ZW5zaW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQog
ICAgICAgICB3aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9j
ZXNzKTsKICNlbmRpZgogCkBAIC0yNjY3LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bWFrZVZpZXdCbGFua0lmVW5wYWludGVkU2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYg
KCFtX2hhc1VwZGF0ZWRSZW5kZXJpbmdBZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAg
ICAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsK
ICNlbHNlCiAgICAgICAgIHN0YXRpYyBib29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
NzdjNGJlNzk0M2QxYjAyNDIyZTc2NzYyNzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUw
YzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQ
cm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikK
ICAgICAgICAgYm9vbCBpc1NhZmFyaSA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFy
aSgpOwogI2VuZGlmCiAgICAgICAgIGlmIChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhp
bmcpOworICAgICAgICAgICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlm
CiAgICAgfSk7CiAKQEAgLTI3OSw3ICsyNzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vz
c1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAg
dXBkYXRlQmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAg
aWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2Vz
cykpIHsKICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdl
YnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAg
ICBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzKCk7CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgog
CiAgICAgYm9vbCBlbmFibGVQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2Ut
PnByZWZlcmVuY2VzKCkucHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRp
b246OmlzRmlyZWZveCgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
UHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNGaXJlZm94KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkK
ICAgICAgICAgZW5hYmxlUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAxNzA0NTBhOTViYTZlOGE0OWVlNWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0
NGQ2ZjMyNmIwOTRjYTI0Y2QzZjU1MWM3ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nl
c3NQcm94eTo6aGFzUmVhY2hlZFByb2Nlc3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFp
blRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJv
eHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFz
ZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1
cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOwor
ICAgIHJldHVybiBMSUtFTFkoUnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2Vy
dGlvbkluV2ViUGFnZVByb3h5KTsKICNlbHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CmluZGV4IDNiNDY3ZjQ1Yjk4MDNiNjAzZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFl
NDljMzIyZjViZmIwMjg3NmNlNDJkNDNjYzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbCYpcHIKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5n
ZXQoKV07CiAgICAgW19maXhlZENsaXBwaW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZp
ZXcuZ2V0KCldOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVj
b2duaXplckluc3RhbGxhdGlvbikpCiAgICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwog
ICAgIFtzZWxmIHNldFVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIy
NCw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bv
b2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGlj
YXRpb25dXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTop
IG5hbWU6VUlTY3JlZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2Ny
ZWVuIG1haW5TY3JlZW5dXTsKIAotICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNF
dmVybm90ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29u
dGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklP
U0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlD
b21tYW5kcykpCiAgICAgICAgIGNsYXNzX2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Io
a2V5Q29tbWFuZHMpLCByZWludGVycHJldF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xk
ZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRob2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3Rh
bmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBzZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICBy
ZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJm
Mjk4Y2JkNmI5NWEwMWEuLmQxODQ1N2MzMzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtODEyNyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNl
Q29udGV4dE1lbnVzCiAgICAgICAgIHJldHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19Q
UkVWSUVXKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0VGhhdEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAg
cmV0dXJuIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Okhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9
CkBAIC05ODgzLDcgKzk4ODMsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0ln
bm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0
dXJuIFlFUzsKICAgICB9CiAKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1h
Y09TKSkgewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBh
bmlvbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc05vZ2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMz
NT4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAv
LyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMg
Qk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3
YXJuaW5nVmVyc2lvbikKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAg
aWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpT
ZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkgewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGlj
YXRpb246OmlzUG9ja2V0Q2l0eSgpIC8vIDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAg
ICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkg
Ly8gPHJkYXI6Ly9wcm9ibGVtLzYyNjk0NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzRVNQTkZhbnRhc3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2
NzE1NDM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRl
eCA3ODFkMzZlZDhhMWVmNjJhYmE1ZDUwMWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2
ZWE3ZTgxY2JjMjk2MDQ2NjhiMzQ0NmMwMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1Njcm9sbFZpZXcubW0KQEAgLTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMp
X3N5c3RlbUNvbnRlbnRJbnNldAogICAgIC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGlu
IHRoZSBzeXN0ZW1Db250ZW50SW5zZXQuIFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQg
aW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hlbiB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2Fi
bGUgYXV0b21hdGljCiAgICAgLy8gc2FmZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYg
KGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05v
dEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0
QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnRO
ZXZlcikKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6VUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlv
bmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xs
Vmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudElu
c2V0LmJvdHRvbSArPSBfa2V5Ym9hcmRCb3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1
cm4gc3lzdGVtQ29udGVudEluc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFi
N2Q5ZjNlMDc5NjE0ZTc4YzZjNDc5Li4wMWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0
MzNmY2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNE
ZXZpY2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHls
dXNEZXZpY2VPYnNlcnZlci5tbQpAQCAtODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAg
aWYgKCsrX3N0YXJ0Q291bnQgPiAxKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisg
ICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9u
IGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0
ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxd
OwogfQogCkBAIC05Miw3ICs5Miw3IEBAIC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291
bnQgfHwgLS1fc3RhcnRDb3VudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAg
IGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpP
YnNlcnZlc0NsYXNzUHJvcGVydHkpKQogICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBj
bGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVj
dGVkIl07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCmluZGV4IDBlMzI4YjEzZjE1OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZl
MTM2NjYwZTExNzFlYTQ0YjAxMmMxZjY2MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcg
QEAgc3RhdGljIGJvb2wgZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1H
R2V0U0ludDMyQW5zd2VyKGtNR1FNYWluU2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsK
ICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFz
cyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAmJiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFk
NCAmJiBkZXNrdG9wQ2xhc3NCcm93c2luZ1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlm
IChpZ25vcmVTYWZlZ3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpO
byAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmls
aXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAgICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdu
b3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVndWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURl
ZmF1bHQpKSB7CiAgICAgICAgICAgICAvLyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBi
dWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMgU0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGll
cyBhcyBhIHJlc3VsdCBvZiBlbmFibGluZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1
bHQgaW4KICAgICAgICAgICAgIC8vIFdLV2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQ
YWQgbW9kZWxzLgogICAgICAgICAgICAgc2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3Np
bmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHRE
ZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBh
NjFlZjgyYmJhY2U2MWE2NzMzNjY3MDI2OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5
MmY5MmJjZjJkNmUyODJlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0Rl
ZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAt
MjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZy
YW1lVmlldzooV2ViRnJhbWVWaWV3ICopZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAo
TlNVSW50ZWdlcil3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rp
b25NYXNrRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwog
ewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05h
dmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRC
eURlZmF1bHQpKQogICAgICAgICByZXR1cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55Owog
CiAgICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGlu
YXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJEb3dubG9hZC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxv
YWQubW0KaW5kZXggZTI0N2E4ZTJkNTZkMGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZj
Y2ZlZGYzN2E3Y2NhOWQ3MWMwNGFlNmZiZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMg
Ym9vbCBzaG91bGRDYWxsT25OZXR3b3JrVGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgc3RhdGljIGJvb2wgaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0Fw
cGxpY2F0aW9uOjppc0Vwc29uU29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhEb3dubG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVh
ZCk7CisgICAgc3RhdGljIGJvb2wgaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6
Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29uU29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVz
Q2FsbGVkT25UaGVNYWluVGhyZWFkKTsKICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBk
YXRlcjsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUw
ZTllYzAxNTc2MDg5NTU1ZGFjLi40NjI1MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDcz
MDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRh
YmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQpAQCAtMTA4LDcgKzEwOCw3IEBAICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25E
YXRhYmFzZQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFi
YXNlPj4gZGF0YWJhc2U7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRp
c3BhdGNoX29uY2UoJm9uY2UsIF4gewotICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aFdlYkljb25EYXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRh
dGFiYXNlV2FybmluZykpCiAgICAgICAgICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNo
YXJlZEljb25EYXRhYmFzZV0gaXMgbm90IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJ
Y29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhhbmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJl
IHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQo
KSA9IGFkb3B0TlMoW1tXZWJJY29uRGF0YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0Rl
ZmF1bHRWYWx1ZXMubW0KaW5kZXggZGQxYjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJm
ODQ1YS4uNzU0ZWI2NjczZGVlOTllNGExYmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAgLTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxv
d3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNo
b3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAg
IHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUlu
UGljdHVyZU1lZGlhUGxheWJhY2s7CiB9CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2lu
ZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1Ro
ZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdpdGhvdXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5R
dWlyayk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJH
ZXN0dXJlID0gV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRl
bk15c3RlcnkoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7
CiAgICAgcmV0dXJuIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0K
IApAQCAtNzEsMjAgKzcxLDIwIEBAIGJvb2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1
aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlz
dGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0g
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91
Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRP
bk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFz
c2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAog
Ym9vbCBkZWZhdWx0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0
aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8p
OworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0g
bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWly
ZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJH
ZXN0dXJlVG9Mb2FkVmlkZW87CiB9CiAKIGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewog
ICAgIC8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVu
dGlsIGFwcHMgYXJlIHJlYnVpbHQgd2l0aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9v
bCB3ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhX
ZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3
ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OldlYlNRTERpc2FibGVkQnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJl
dHVybiB3ZWJTUUxFbmFibGVkOwogfQogCkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0
QXR0YWNobWVudEVsZW1lbnRFbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RC
YXNlVVJMU2NoZW1lcygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJM
U2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNC
YXNlVVJMU2NoZW1lcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2No
ZW1lcyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNl
VVJMU2NoZW1lczsKIH0KIApAQCAtMjA4LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVu
bmluZ09mSW5zZWN1cmVDb250ZW50KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFs
aWRVUkxzVG9CbGFuaygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRV
UkxzVG9CbGFuayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0
c0ludmFsaWRVUkxzVG9CbGFuayk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFs
aWRVUkxzVG9CbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkNvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxk
Q29udmVydEludmFsaWRVUkxzVG9CbGFuazsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9v
bCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVs
dFBhc3NpdmVXaGVlbExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRp
YyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZh
dWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RGVmYXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJs
b2NraW5nKCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RUaGF0QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9j
a2luZyk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNv
bWVOb25CbG9ja2luZyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFi
OTk0NTc1MmRhOTlhODExZjkuLjBjYzE3ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEz
OTEsNyArMTM5MSw3IEBAIC0odm9pZClfaW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBM
QVRGT1JNKElPUykKIHN0YXRpYyBib29sIG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsK
LSAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjpp
c0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRob3V0TGFCYW5xdWVQb3N0YWxlUXVpcmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJr
cyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVl
UG9zdGFsZVF1aXJrcyk7CiAgICAgcmV0dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>
<flag name="commit-queue"
          id="485759"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457221</attachid>
            <date>2022-04-10 18:46:50 -0700</date>
            <delta_ts>2022-04-10 19:07:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410184650.patch</filename>
            <type>text/plain</type>
            <size>98917</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi5jMjgwZWNkMTA4OWJmYTM5
NTEzZGFhZDUyZWJmZTdmMWU2YTMyODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIFZlY3Rv
ciB3aXRoIGlubGluZSBjYXBhY2l0eSBpbiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjcmVh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA4Yjc1YjhlNDQwMThmYmY1N2M4MTkyM2Q5MWZmNDY4NDUzNDU1Y2E2Li43N2Ex
NzNlMTFlY2JlMWJlOGUxMDI5MTUwNjNlOGM2NTBmNmRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBA
CisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3dpdGNoIHRvIGBkeWxkX3Byb2dyYW1fc2RrX2F0X2xlYXN0YCwgd2hpY2ggY29ycmVj
dGx5IGhhbmRsZXMgU0RLCisgICAgICAgIGNoZWNrcyBmb3IgYmluYXJpZXMgYnVpbHQgZm9yIG9u
ZSBTREsgcnVubmluZyBvbiBhbm90aGVyIHBsYXRmb3JtCisgICAgICAgIChlLmcuIGlPUyBhcHBz
IHJ1bm5pbmcgb24gbWFjT1MpLgorCisgICAgICAgIEJlY2F1c2UgYGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3RgIGlzIGJhc2VkIG9mZiBtb3JlIHRoYW4gYSBzaW1wbGUKKyAgICAgICAgaW50ZWdl
ciBjb21wYXJpc29uIGxpa2Ugb3VyIG9sZCBTREsgY2hlY2ssIHdlIG1vdmUgaXQgaW50byB0aGUK
KyAgICAgICAgYXBwbGljYXRpb24gcHJvY2VzcywgYW5kIGp1c3QgdHJhbnNtaXQgdGhlIGNvbXB1
dGVkIGJlaGF2aW9ycyB0bworICAgICAgICBzdWJwcm9jZXNzZXMuCisKKyAgICAgICAgUmVtb3Zl
IGZ1bmN0aW9ucyB0aGF0IGV4cG9zZS90cmFuc21pdCBwbGF0Zm9ybS1zcGVjaWZpYyBTREsgdmVy
c2lvbnMsCisgICAgICAgIHNvIHRoYXQgdXNhZ2UgaXNuJ3QgYWNjaWRlbnRhbGx5IHJlaW50cm9k
dWNlZC4KKworICAgICAgICBSZS1mcmFtZSB0aGUgbmFtaW5nIG9mIG91ciBsaW5rZWQtb24tb3It
YWZ0ZXIgY2hlY2tzIGFzIGJlaW5nIGFib3V0CisgICAgICAgIHNwZWNpZmljIGJlaGF2aW9ycyBp
bnN0ZWFkIG9mIFNESyB2ZXJzaW9ucy4KKworICAgICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAg
ICAgKFdURjo6V29yZFR5cGU+OjpzZXRBbGwpOgorICAgICAgICBBZGQgYHNldEFsbGAsIHdoaWNo
IHNldHMgYWxsIHRoZSBiaXRzIGluIHRoZSBCaXRtYXAsIGxpa2UgRmFzdEJpdFZlY3RvciBoYXMu
CisgICAgICAgIEV4cG9zZSB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGluIGJ5dGVzIHRvIG1ha2Ug
dHJhbnNtaXR0aW5nIHRoZSBCaXRtYXAgc2ltcGxlLgorCisgICAgICAgICogd3RmL2NvY29hL0xh
bmd1YWdlQ29jb2EubW06CisgICAgICAgIChXVEY6OmNhbk1pbmltaXplTGFuZ3VhZ2VzKToKKyAg
ICAgICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9k
eWxkU1BJLmg6CisgICAgICAgIEJlY2F1c2Ugb2YgdGhlIG5hdHVyZSBvZiBkeWxkX2J1aWxkX3Zl
cnNpb25fdCB2YWx1ZXMsIHdlIGNhbid0IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZSB0aGVtLiBU
aHVzLCBtYWludGFpbiBhIGZhbGxiYWNrIHRvIHRoZSBsZWdhY3kgcGxhdGZvcm0tc3BlY2lmaWMK
KyAgICAgICAgU0RLIGNoZWNrcyBmb3IgdXNlIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCB0aGUgaW50
ZXJuYWwgU0RLLCBvciB3aGVuCisgICAgICAgIGJhY2stZGVwbG95aW5nIHRvIG9sZGVyIFNES3Mg
dGhhdCBkb24ndCB5ZXQgaGF2ZSB2YWx1ZXMgZm9yIG5ld2VyIHZlcnNpb24gc2V0cy4KKworICAg
ICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAg
ICAgIChkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RG
Ojpjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRC
ZWhhdmlvcnNWYWx1ZSk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRCZWhhdmlvcnMpOgorICAg
ICAgICAoV1RGOjpzZXRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmRpc2FibGVBbGxTREtBbGln
bmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKToKKyAgICAgICAgKFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6c2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlcik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg6CisKIDIwMjItMDQtMDggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjU4Ni4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNjUxZDhjZGExMmY2NmNiYzZkYTg5MTAzNGFjZDRmYjVhNGM4OWQ3Li4xNTZjMDIx
YjE0MDM5MzVjMDRmODkzOGNhYTEwMzg5MjA4YzU1NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIg
Y2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3cpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpuZWVkc1dlQ2hhdFNjcm9s
bGluZ1F1aXJrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkT21pdEhU
TUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdp
bik6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb3RQ
cmVmaXhlZEZvcmJpZGRlbkZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OnNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5n
LgorCisKIDIwMjItMDQtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oKSB0byByZXR1cm4g
YSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzk4OWE0OTBjMWNm
NDhkYTUyYWE4YjA4NTZkNzIxODcwODZmZjQ1ZC4uMTJhYTgxMWViZmZmNjJhMzgzNzJlNzNjZGYw
NDdjNjk1OTQ0MzgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMi0wNC0xMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCAidmVy
c2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0
Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0F1
eGlsaWFyeVByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0
OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpn
ZXRDbGllbnRTREtWZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6WFBDU2Vydmlj
ZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6
CisgICAgICAgIEluc3RlYWQgb2YgdHJhbnNtaXR0aW5nIHRoZSBTREsgdmVyc2lvbiBhbmQgb3Zl
cnJpZGUgc3RhdGUgaW4gdGhlIGJvb3RzdHJhcAorICAgICAgICBtZXNzYWdlLCBqdXN0IHNlbmQg
dGhlIGNvbXB1dGVkIHNldCBvZiBiZWhhdmlvcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwpOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZGV0ZXJtaW5lSVRQU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVy
ZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwOgorICAgICAgICAoV0tQYWdlUmVsb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExp
bmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAoK1tXS1Byb2Nl
c3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGluZ0FueVhI
UkhlYWRlckZyb21GaWxlVVJMcyk6CisgICAgICAgIChzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVmYXVsdFNo
b3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFT
dG9yZSBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06
CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3
UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklz
S25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tT
dHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dzaW5nUmVj
b21tZW5kZWQpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXQgbGF5
ZXIgYmFja2luZyBzdG9yZSBidWZmZXJzIGludG8gdGhlIHBlci1SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIElPU3VyZmFjZVBvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5Njc5NzFm
YWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1Li45NmY2NzhmNTVhMGM5NjIzMDhlODhj
MDQ2NjkzNDhiMTAzYmU1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0
ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2Fk
Lm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29ya1RocmVhZCk6CisgICAgICAgICogTWlz
Yy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0cmlj
dEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJ
bnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVs
TGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRX
aGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1ZVBvc3RhbGVRdWlya3MpOgorICAgICAg
ICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOCAgRWxsaW90dCBXaWxsaWFtcyAg
PGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBBdm9pZCB0YXJnZXRpbmcgMzItYml0
IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNU
eXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYyNzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhh
NGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1OTgzZTE2MTgzODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
dm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVuZ3RoUXVpcmsoKQogewotICAgIHJldHVy
biAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFR5cGVkQXJyYXlBUElR
dWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWlyayk7CiB9CiAjZWxzZQogaW5saW5lIHN0
YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJheUxlbmd0aFF1aXJrKCkgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVy
TWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXgg
N2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYy
MGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBAQCBib29sIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJzaW9uT2ZMaW5rVGltZUphdmFTY3JpcHRD
b3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25PZkxpbmtUaW1lSmF2YVNjcmlw
dENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3Vw
cG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworICAgICAgICByZXR1cm4gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJ
bml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAgcmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdk
YS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCkBAIC02MTcsNyArNjE3LDcgQEAg
dm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpCiB2b2lkIFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2Jq
Qyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdo
ZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICByZXR1cm47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRl
eCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQx
MzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRo
ZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKICAgICAgICAgaWYgKHVzZUxlZ2FjeURy
YWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhkMWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3
ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMxNzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxs
aW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rh
c2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDU5
NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAyZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5
MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIGlubGluZSBz
dGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0byBidW5kbGVJRCA9IENGQnVuZGxlR2V0
SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlE
CiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENGU1RSKCJjb20ua3BnYW1lLlBva2VyQnJv
cyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAgICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdR
dWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQml0bWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBiOGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2
Y2Q0NDNmYmQ5YTIyNzBhLi5lZWY0ZDBmYmRmMWM1NzFhZmJhYmFkZjNmZjk5NDE1ZDhlNzY3YzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHNpemVf
dCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0OwogICAgIGNvbnN0ZXhwciB2b2lkIGNs
ZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgpOworICAgIHZvaWQgc2V0QWxsKCk7CiAg
ICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAgaW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhz
aXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXplX3QgY291bnQoc2l6ZV90IHN0YXJ0ID0g
MCkgY29uc3Q7CkBAIC0xNDEsNiArMTQyLDggQEAgcHVibGljOgogICAgIFdvcmRUeXBlKiBzdG9y
YWdlKCkgeyByZXR1cm4gYml0cy5kYXRhKCk7IH0KICAgICBjb25zdCBXb3JkVHlwZSogc3RvcmFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAKKyAgICBjb25zdGV4cHIgc2l6ZV90
IHN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkgeyByZXR1cm4gc2l6ZW9mKGJpdHMpOyB9CisKIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3Jk
VHlwZSkgKiA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFw
U2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKQEAgLTI0MCw2ICsyNDMsMTIgQEAgaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xlYXJBbGwoKQogICAgIG1l
bXNldChiaXRzLmRhdGEoKSwgMCwgc2l6ZW9mKGJpdHMpKTsKIH0KIAordGVtcGxhdGU8c2l6ZV90
IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6c2V0QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4
RkYsIHNpemVvZihiaXRzKSk7Cit9CisKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjppbnZlcnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0K
aW5kZXggMzAyMWZlYzA3MTdlZWZhNDI2YTVlN2ViZThiYmM3NjhjZjMzMzdkZi4uYmRjNGJlZDRj
NzRiNzllNmQyM2Y5ZmNlODI2ZTE4NGE5NWVlOGIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5n
dWFnZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5n
TGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0CiBi
b29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCByZXN1
bHQgPSBbXSgpIC0+IGJvb2wgewotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsK
KyAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsKICAgICB9
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcAppbmRleCBjNzE0OTNiNDRhNzIw
YjhmM2RkZDY3NGMyYWYxNDhjNDkxMjM5YWYwLi4yOGM5NzBjYmNmMmVkY2FhMjgwNzQwZWIyZTEy
NjA3YzdjYmU2NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCkBAIC0yNyw1MCArMjcsMTk2IEBACiAjaW5jbHVk
ZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4m
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkKK3N0YXRpYyBib29sIGxpbmtlZEJlZm9y
ZShkeWxkX2J1aWxkX3ZlcnNpb25fdCB2ZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja0lPU1ZlcnNp
b24sIHVpbnQzMl90IGZhbGxiYWNrTWFjT1NWZXJzaW9uKQogewotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiB2ZXJzaW9uOwotICAgIHJldHVybiB2ZXJzaW9uOworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgLy8gZHlsZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzIGNh
bm5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLCBzbyB3ZSBmYWxsIGJhY2sgdG8KKyAgICAvLyB0cmFk
aXRpb25hbCBTREsgdmVyc2lvbiBjaGVja3Mgd2hlbiBidWlsZGluZyBhZ2FpbnN0IGFuIFNESyB0
aGF0CisgICAgLy8gZG9lcyBub3QgaGF2ZSBkeWxkX3ByaXYuaCwgb3IgZG9lcyBub3QgZGVmaW5l
IGEgZ2l2ZW4gdmVyc2lvbiBzZXQuCisgICAgaWYgKHZlcnNpb24ucGxhdGZvcm0gfHwgdmVyc2lv
bi52ZXJzaW9uKQorICAgICAgICByZXR1cm4gIWR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QodmVy
c2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2ZXJzaW9uKTsKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tNYWNPU1ZlcnNp
b24pOworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFj
a0lPU1ZlcnNpb247CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmYWxsYmFja0lPU1ZlcnNpb24p
OworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFja01h
Y09TVmVyc2lvbjsKKyNlbmRpZgogfQogCi12b2lkIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbih1
aW50MzJfdCB2ZXJzaW9uKQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYUFkZGl0
aW9ucy5jcHA+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hQWRkaXRpb25zLmNwcD4KKyNlbHNlCitzdGF0aWMgdm9pZCBkaXNhYmxlQWRkaXRp
b25hbFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpCiB7Ci0gICAgYXBw
bGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKSA9IHZlcnNpb247CiB9CisjZW5kaWYKIAotdWlu
dDMyX3QgYXBwbGljYXRpb25TREtWZXJzaW9uKCkKK3N0YXRpYyBTREtBbGlnbmVkQmVoYXZpb3Jz
IGNvbXB1dGVTREtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICphcHBsaWNhdGlvblNES1ZlcnNpb25P
dmVycmlkZSgpOwotICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Cisg
ICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZpb3JzLnNldEFsbCgp
OworCisgICAgYXV0byBkaXNhYmxlQmVoYXZpb3IgPSBbJl0gKFNES0FsaWduZWRCZWhhdmlvciBi
ZWhhdmlvcikgeworICAgICAgICBiZWhhdmlvcnMuY2xlYXIoc3RhdGljX2Nhc3Q8c2l6ZV90Pihi
ZWhhdmlvcikpOworICAgIH07CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE1
X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzlfMCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xMSkpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9m
YWxsXzIwMTZfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTBfMCwgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlVucHJlZml4ZWRQbGF5c0lubGluZUF0dHJpYnV0ZSk7CisgICAgfQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2Vsc2UKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE0X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2VuZGlmCisKKyAgICBpZiAo
bGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9O
XzExXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpKSB7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9u
SGFuZGxlckNhbGxzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFz
ZVdhcm5pbmcpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAx
OF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMV8zLCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzXzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlz
dGVuZXJzT25Eb2N1bWVudCk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxOF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMl8wLCBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE0KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xsVmlld0RvZXNO
b3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25Jbldl
YlBhZ2VQcm94eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIH0K
KworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucywgRFlM
RF9JT1NfVkVSU0lPTl8xMl8yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0XzQpKSB7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2du
aXplckluc3RhbGxhdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKTsKKyAgICB9CisKKyAgICBp
ZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUpKSB7CisgICAgICAgIGRpc2FibGVC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRi
b3hFeHRlbnNpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJW
aWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3Jlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5v
SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQp
OworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM18yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaXRlU3Bl
Y2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9zcHJpbmdfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM180LCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1
YWdlcyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAyMF9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2
KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbik7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRS
ZXR1cm5pbmdOaWwpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1
aWx0SW5UYWdRdWlyayk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2xhdGVf
ZmFsbF8yMDIwX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE0XzIsIERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTYpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9zcHJpbmdfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF81LCBEWUxEX01B
Q09TWF9WRVJTSU9OXzExXzMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXND
bGFzc1Byb3BlcnR5KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6Tm9XZUNoYXRTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlNoYXJlZE5ldHdvcmtQcm9jZXNzKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QmxhbmtzVmlld09uSlNQcm9tcHQpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVm
YXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0Jl
Y29tZU5vbkJsb2NraW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDIxX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTJfMDApKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6Ok51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QXBwbGljYXRpb25D
YWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3Jv
dGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTVfNCwgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8zKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyk7CisK
KyAgICBkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKKwor
ICAgIHJldHVybiBiZWhhdmlvcnM7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPExpbmtlZE9u
T3JBZnRlck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxTREtBbGlnbmVkQmVoYXZpb3JzPiYgc2RrQWxpZ25lZEJlaGF2aW9yc1Zh
bHVlKCkKIHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZT4gbGlua2VkT25PckFmdGVyOwotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4+IGJl
aGF2aW9yczsKKyAgICByZXR1cm4gYmVoYXZpb3JzLmdldCgpOwogfQogCi12b2lkIHNldExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+
IGxpbmtlZE9uT3JBZnRlcikKK2NvbnN0IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRC
ZWhhdmlvcnMoKQogewotICAgIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKSA9IGxpbmtl
ZE9uT3JBZnRlcjsKKyAgICBhdXRvJiBiZWhhdmlvcnMgPSBzZGtBbGlnbmVkQmVoYXZpb3JzVmFs
dWUoKTsKKworICAgIGlmICghYmVoYXZpb3JzKQorICAgICAgICBiZWhhdmlvcnMgPSBjb21wdXRl
U0RLQWxpZ25lZEJlaGF2aW9ycygpOworCisgICAgcmV0dXJuICpiZWhhdmlvcnM7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlKCkKK3ZvaWQgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzIGJl
aGF2aW9ycykKIHsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpOwor
ICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdlIHdvdWxkIGFzc2VydCB0aGF0IGBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3JgIGhhZCBub3QKKyAgICAvLyBiZWVuIGNhbGxlZCBhdCB0aGlzIHBv
aW50IChiZWNhdXNlIGl0cyByZXBseSBjb3VsZCBoYXZlIGJlZW4gaW5hY2N1cmF0ZSksCisgICAg
Ly8gYnV0IFdlYlByZWZlcmVuY2VzIHVzZSBpbiBTYWZhcmkgKGF0IGxlYXN0KSBjdXJyZW50bHkg
cHJldmVudHMgdGhpcyBoYXJkZW5pbmcuCisKKyAgICBzZGtBbGlnbmVkQmVoYXZpb3JzVmFsdWUo
KSA9IGJlaGF2aW9yczsKK30KKwordm9pZCBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCkK
K3sKKyAgICBTREtBbGlnbmVkQmVoYXZpb3JzIGJlaGF2aW9yczsKKyAgICBiZWhhdmlvcnMuc2V0
QWxsKCk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhiZWhhdmlvcnMpOwogfQogCi1ib29s
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24pCit2b2lkIGRpc2FibGVBbGxT
REtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXV0byBvdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICpvdmVycmlkZVZhbHVlID09
IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmc7CisgICAgc2V0U0RLQWxp
Z25lZEJlaGF2aW9ycyh7IH0pOworfQogCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9u
QXNJbnRlZ2VyICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpID49IHNka1ZlcnNpb25Bc0ludGVn
ZXI7Citib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgcmV0dXJuIHNka0FsaWduZWRCZWhhdmlvcnMoKS5nZXQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oIGIvU291cmNlL1dU
Ri93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAppbmRleCAwNTU4MjZk
MzM5ODVmYjg0ZjE1MTZjNWIyODE2ODA2Zjk1Yzc0YTEwLi44ZDA2MWRmZTVmOTI5MThkYWJkNjJk
MDg5NmEwMDJhMTIzNDdmMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKQEAgLTI2LDEyNSArMjYsOTIgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxk
U1BJLmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50
MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFdpdGhQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAotICAgIEZpcnN0V2l0
aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19WRVJT
SU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0g
RFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5
RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0lu
dmFsaWRVUkxzVG9CbGFuayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhv
dXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayA9IERZTERfSU9T
X1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1
dGUgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRz
SW5pdENvbnN0cnVjdG9ycyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhF
eGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZF
UlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJI
ZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0
RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJT
SU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2Jz
Y3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNj
cm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlv
bkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91
dE1vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwK
LSAgICBGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyA9IERZTERfSU9TX1ZFUlNJT05f
MTJfMCwKLSAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBE
WUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0
ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRob3V0VW5j
b25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lPU19W
RVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdERlY2lkZXNQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJl
bnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aE1vZGVy
bkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBG
aXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5k
cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93
SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRo
b3V0SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAot
ICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18yLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0gICAgRmlyc3RUaGF0TWluaW1pemVzTGFu
Z3VhZ2VzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aFNlc3Npb25DbGVh
bnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aEluaXRp
YWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwK
LSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9J
T1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aFdlYlNRTERpc2FibGVkQnlEZWZhdWx0SW5M
ZWdhY3lXZWJLaXQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCi0gICAgRmlyc3RXaXRob3V0TGFC
YW5xdWVQb3N0YWxlUXVpcmtzID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAg
ICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzIs
Ci0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfSU9TX1ZFUlNJT05f
MTRfNSwKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0g
RFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0
eSA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxp
bmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhTaGFyZWROZXR3
b3JrUHJvY2VzcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhCbGFua1Zp
ZXdPbkpTUHJvbXB0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0V2l0aE51bGxP
cmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCi0g
ICAgRmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiAgPSBEWUxEX0lPU19WRVJTSU9O
XzE1XzAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0VGhhdERv
ZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9JT1NfVkVS
U0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5S
ZWRpcmVjdHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzQsCi0gICAgRmlyc3RXaXRob3V0VHlwZWRB
cnJheUFQSVF1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotICAgIEZpcnN0Rm9yYmlkZGlu
Z0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX0lPU19WRVJTSU9OXzE2XzAsCi0jZWxpZiBQTEFURk9S
TShNQUMpCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycyA9IDB4
QTBBMDAsIC8vIE9TIFggMTAuMTAKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9C
bGFuayA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9u
c0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzLAotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9
IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxv
YWRCZWhhdmlvciA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2Vi
SWNvbkRhdGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmly
c3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTQsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3Mg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwK
LSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1Vz
aW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAg
Rmlyc3RXaXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVF
bmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAotICAgIEZpcnN0
VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80
LAotICAgIEZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhy
ZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKLSAgICBGaXJzdFdpdGhX
S1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNiwKLSAgICBGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRoQmxhbmtWaWV3
T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhvdXRD
bGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBG
aXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVy
ZXNUb0JlY29tZU5vbkJsb2NraW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0VGhhdERvZXNOb3REcmFpblRoZU1p
Y3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwK
LSAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVy
dGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzID0gRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMl8zLAotICAgIEZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEzXzAsCi0jZW5kaWYKK2VudW0gY2xhc3MgU0RLQWxpZ25lZEJlaGF2aW9y
IHsKKyAgICBBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nLAorICAg
IEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCwKKyAgICBBdXRob3JpemF0aW9uSGVh
ZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzLAorICAgIEJsYW5rc1ZpZXdPbkpTUHJvbXB0LAorICAg
IENvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rLAorICAgIERhdGFVUkxGcmFnbWVudFJlbW92YWws
CisgICAgRGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3LAorICAgIERl
ZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERlZmF1bHRzVG9Q
YXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERpc2FsbG93c1NldHRpbmdBbnlY
SFJIZWFkZXJGcm9tRmlsZVVSTHMsCisgICAgRG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMsCisgICAgRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiwKKyAgICBEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCwKKyAgICBEcm9wVG9OYXZpZ2F0ZURp
c2FsbG93ZWRCeURlZmF1bHQsCisgICAgRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25I
YW5kbGVyQ2FsbHMsCisgICAgRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcywKKyAgICBFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yLAorICAgIEZvcmJp
ZHNEb3RQcmVmaXhlZEZvbnRzLAorICAgIEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiwKKyAg
ICBIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzLAorICAgIEluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbiwKKyAgICBMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxs
YXRpb24sCisgICAgTGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0LAorICAgIE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHksCisgICAgTWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjaywKKyAgICBNaW5pbWl6ZXNMYW5ndWFnZXMsCisgICAgTW9kZXJu
Q29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0LAorICAgIE5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAs
CisgICAgTm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdywKKyAgICBOb0lNRGJDU1NP
TVZpZXdTY3JvbGxpbmdRdWlyaywKKyAgICBOb0xhQmFucXVlUG9zdGFsZVF1aXJrcywKKyAgICBO
b01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyaywKKyAgICBOb1Bva2VyQnJvc0J1aWx0SW5U
YWdRdWlyaywKKyAgICBOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93T3BlblF1
aXJrLAorICAgIE5vVHlwZWRBcnJheUFQSVF1aXJrLAorICAgIE5vVW5jb25kaXRpb25hbFVuaXZl
cnNhbFNhbmRib3hFeHRlbnNpb24sCisgICAgTm9XZUNoYXRTY3JvbGxpbmdRdWlyaywKKyAgICBO
dWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzLAorICAgIE9ic2VydmVzQ2xhc3NQcm9w
ZXJ0eSwKKyAgICBQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywKKyAgICBQcm9jZXNzU3dh
cE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiwKKyAgICBSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8sCisgICAgUmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMsCisgICAgU2Nyb2xsVmlld0NvbnRlbnRJ
bnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMsCisgICAgU2VuZHNOYXRpdmVNb3VzZUV2ZW50cywK
KyAgICBTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwKKyAgICBTaGFyZWROZXR3b3JrUHJvY2VzcywK
KyAgICBTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0LAorICAgIFNuYXBzaG90
QWZ0ZXJTY3JlZW5VcGRhdGVzLAorICAgIFN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQVBJLAorICAgIFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycywKKyAgICBTdXBw
b3J0c2lPU0FwcHNPbk1hY09TLAorICAgIFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFt
ZSwKKyAgICBUaW1lclRocmVhZFNhZmV0eUNoZWNrcywKKyAgICBVSVNjcm9sbFZpZXdEb2VzTm90
QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSwKKyAgICBVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUsCisgICAgV2ViSWNvbkRhdGFiYXNlV2FybmluZywKKyAgICBXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0LAorICAgIFdLQ29udGVudFZpZXdEb2VzTm90
T3ZlcnJpZGVLZXlDb21tYW5kcywKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsLAorCisgICAgTnVtYmVyT2ZCZWhhdmlvcnMKIH07CiAKLVdURl9FWFBPUlRfUFJJVkFURSBi
b29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKK3VzaW5nIFNES0FsaWduZWRCZWhhdmlv
cnMgPSBCaXRtYXA8c3RhdGljX2Nhc3Q8c2l6ZV90PihTREtBbGlnbmVkQmVoYXZpb3I6Ok51bWJl
ck9mQmVoYXZpb3JzKSwgdWludDY0X3Q+OwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRB
cHBsaWNhdGlvblNES1ZlcnNpb24odWludDMyX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0
IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRCZWhhdmlvcnMoKTsKK1dURl9FWFBPUlRf
UFJJVkFURSB2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyk7
CiAKLS8vIERvIG5vdCB1c2UgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZGlyZWN0bHk7IGFkZCBh
IHZlcnNpb24gdG8gdGhlIGVudW0gYWJvdmUsCi0vLyBhbmQgdXNlIGxpbmtlZE9uT3JBZnRlcigp
IGF0IGNhbGwgc2l0ZXMuCi1XVEZfRVhQT1JUX1BSSVZBVEUgdWludDMyX3QgYXBwbGljYXRpb25T
REtWZXJzaW9uKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9ycygpOwogCi1lbnVtIGNsYXNzIExpbmtlZE9uT3JBZnRlck92ZXJyaWRlIDogdWlu
dDhfdCB7Ci0gICAgQmVmb3JlRXZlcnl0aGluZywKLSAgICBBZnRlckV2ZXJ5dGhpbmcKLX07Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9w
dGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVyT3ZlcnJp
ZGUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3IpOwogCiB9CiAKLXVzaW5nIFdURjo6c2V0QXBwbGljYXRp
b25TREtWZXJzaW9uOwotdXNpbmcgV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb247Ci11c2luZyBX
VEY6OkxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNpbmcgV1RGOjpzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBX
VEY6OmxpbmtlZE9uT3JBZnRlcjsKLXVzaW5nIFdURjo6U0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uOwordXNpbmcgV1RGOjpkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9yczsKK3VzaW5nIFdURjo6ZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9yczsKK3Vz
aW5nIFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yOwordXNpbmcgV1RGOjpTREtB
bGlnbmVkQmVoYXZpb3I7Cit1c2luZyBXVEY6OnNka0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBX
VEY6OlNES0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OnNldFNES0FsaWduZWRCZWhhdmlv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDM0Njg5OGMyODU2ZDJmN2Jl
NzgwNzFlNjgyYzEyZTE3YjM1NWNjZGUuLmU2YzY5ZDNlZWRjYmFlNTlmNTUwNjc3ZTU1MWI1ZGFk
OGQzMDMwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBAIC0xMjMsNiArMTIz
LDEzIEBACiAKICNlbHNlCiAKK3R5cGVkZWYgdWludDMyX3QgZHlsZF9wbGF0Zm9ybV90OworCit0
eXBlZGVmIHN0cnVjdCB7CisgICAgZHlsZF9wbGF0Zm9ybV90IHBsYXRmb3JtOworICAgIHVpbnQz
Ml90IHZlcnNpb247Cit9IGR5bGRfYnVpbGRfdmVyc2lvbl90OworCiAjZGVmaW5lIERZTERfSU9T
X1ZFUlNJT05fM18wIDB4MDAwMzAwMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl80XzIgMHgw
MDA0MDIwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzVfMCAweDAwMDUwMDAwCkBAIC0xNDQs
MTAgKzE1MSwxMyBAQAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE1XzQgMHgwMDBmMDQwMAog
I2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE2XzAgMHgwMDEwMDAwMAogCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTEgMHgwMDBBMEEwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzExIDB4MDAwQTBCMDAKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMiAw
eDAwMEEwQzAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMgMHgwMDBBMEQwMAor
I2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzXzQgMHgwMDBBMEQwNAogI2RlZmluZSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBFMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNF80IDB4MDAwQTBFMDQKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNSAweDAwMEEwRjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSAweDAw
MEEwRjAxCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCAweDAwMEEwRjA0CkBA
IC0xNjEsNiArMTcxLDc1IEBACiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCisvLyBCZWNhdXNlIGl0
IGlzIG5vdCBwb3NzaWJsZSB0byBmb3J3YXJkLWRlY2xhcmUgZHlsZF9idWlsZF92ZXJzaW9uX3Qg
dmFsdWVzLAorLy8gd2UgZm9yd2FyZC1kZWNsYXJlIHBsYWNlaG9sZGVycyBmb3IgYW55IG1pc3Np
bmcgZGVmaW5pdGlvbnMsIGFuZCB1c2UgdGhlaXIgZW1wdHkKKy8vIHZhbHVlIHRvIGluZGljYXRl
IHRoYXQgd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gYW50aXF1ZSBzaW5nbGUtcGxhdGZvcm0gU0RL
IGNoZWNrcy4KKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucworI2RlZmluZSBk
eWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTdfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTdfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfc3ByaW5nXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAxOF9vc192
ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisK
KyNpZm5kZWYgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHls
ZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3Nf
dmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9z
cHJpbmdfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIwX29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxk
X2xhdGVfZmFsbF8yMDIwX29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAw
LCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3dpbnRlcl8yMDIwX29zX3ZlcnNpb25z
CisjZGVmaW5lIGR5bGRfd2ludGVyXzIwMjBfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVy
c2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDIxX29z
X3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3Nwcmlu
Z18yMDIyX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCiB1aW50MzJf
dCBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Citib29sIGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3QoZHlsZF9idWlsZF92ZXJzaW9uX3QpOwogCiBXVEZfRVhURVJOX0NfRU5ECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
OGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNhMzFkYjYwNi4uNWZhNjEyZjVmODBkZWNm
NjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZlbiB0aGF0IFdpbmRvd1Byb3h5IGlzIHRo
ZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5IG1vZGUgZnVuY3Rpb25zLCBpdCdzIGhh
cmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlPUyBhbmQgbWFjT1MgYXBwcyBkb24ndCBh
Y2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IsIHNvIHdlIGtlZXAgaXQgZm9yIHRo
ZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWlyayA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldp
bmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKaW5kZXgg
MjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3ZjJhMzVlMC4uY2E3OTM4ZTc5NDUwOGM3
YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEpTV2luZG93UHJv
eHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYgZG9tV2luZG93KQogICAgICAgICB3aW5k
b3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBsb2NhbFdpbmRv
dywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IHRydWU7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CisgICAgICAg
IGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsKICNlbmRpZgogICAgICAg
ICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhhdmVJbml0aWFsaXplZFNlY3VyaXR5T3Jp
Z2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAgICAgICAgIGxvY2FsV2luZG93LnNldEFz
V3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyZDgxZjE0NWFiMDVlOWI2YzBj
NTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQyZTUzYTI2MDkyNThiNjY2OTVjZTZjNzI2
ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
QEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCiAgICAgICAgIHJldHVybiAh
bV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3
ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lubGluZUF0dHIpOwotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFVucHJlZml4ZWRQbGF5c0lubGluZUF0
dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBjMzYwOWEy
MjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjLi5kYzg2OTk2NjA5ZWFjNDc3ODdkOGVi
NTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbmVlZHNQ
cmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TW92aVN0YXJQbHVzQ09SU1ByZWZs
aWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xp
Y3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9s
aWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZsaWdodFF1aXJrID0gSU9TQXBwbGljYXRp
b246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAo
bV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8
IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CiAj
ZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODkyMDNhYWVhZGExZDMwM2IyMzY5NDU4ZDQ3
MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0MjRlYjMzZjhjYjhjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIGJvb2wgUXVpcmtzOjpuZWVkc0Z1bGxz
Y3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJvb2wgUXVpcmtzOjpuZWVkc1dlQ2hhdFNj
cm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG5l
ZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRX
ZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGljYXRpb246OmlzV2VjaGF0KCk7CisgICAg
cmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0
aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTcx
Niw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNv
bnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29sIHNob3VsZE9t
aXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKICAgICByZXR1cm4gc2hvdWxk
T21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXM7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjQ5NDIy
N2FkNTRiMjY0NGIyMGYyNWZjYzMzMWExOTljMTRkNGI4MS4uNjhlNTllMmE3MjMxZWZmMmJjYmFj
YjViYWY4MjliODIyZjE1MTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzVW5pcXVlT3Jp
Z2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8j
b3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBpZiAodXJsLmhhc1NwZWNpYWxTY2hlbWUo
KQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpCisgICAg
ICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKQogICAgICAgICB8fCB1cmwucHJv
dG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBw
bGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygieC1hcHBsZS1xbC1pZDIiKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4OTA1M2Y5Mjg1Zjk4ODZmYTU5Yjg4N2E3
MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVhYzQyYzdjOTNmZGMyMzAxYjUxOGIzZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTI1MCw5ICsyNTAsOSBAQCBwcml2YXRl
Ogogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjaygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gV2ViVGhyZWFkSXNFbmFibGVkKCkgfHwg
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxlZCgpIHx8ICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFpc0luV2ViUHJvY2Vzcygp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRTYWZl
dHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlByb2Nlc3MoKSAmJiAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlD
aGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFmZWJmNjM2ZDE5MDUyYzI2NTQyMzQyLi5k
OTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAyN2E4MzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBzdHJ1Y3QgRm9udExvb2t1cCB7CiAKIHN0
YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5Gb250KGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0Rm9yYmlk
ZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRzRG90UHJlZml4ZWRGb250cykpCiAgICAg
ICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicpOwogICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBwbGVzeXN0ZW11aWZvbnRzZXJpZiIpCiAg
ICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgIi5zZiBucyBt
b25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYyYTEwNzk4NTdlZTM3OGZjYTM4NDBlZC4u
Y2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZmOGUzNzM4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIHN0YXRpYyBib29sIHNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBITFMgdXNlcyAjIGluIHRoZSBtaWRk
bGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2MjcyMjNiZDcwMmIxOTBkNzRjMDA2YzgxNTJm
MTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5NjQ1N2FlZGFiNTRmOGQ0NjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBA
IC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdG
b3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRBcHBsaWNhdGlvblNE
S1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVy
eXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4ZTlkOGFlMjFlYjBkN2Y5ODllMmFkNWUz
M2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2ZlNzUxNjU2OTMwMWUzNjZmZGU0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKIAogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVh
ZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9y
aXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCisgICAgICAgIGlmIChh
dXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29y
ZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwo
KSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzKSkKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3Jp
emF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVTRShDUkVERU5USUFMX1NUT1JBR0VfV0lU
SF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggN2IwNDJhMzY1M2M1OWVh
MTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIxMzlhNTg4ODE2NGFlMzg1ODg1OTEwOTI4
NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgc3Rh
dGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29uZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Np
b25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29uZmlndXJhdGlvbl07CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0Q2xpZW50Q2VydGlm
aWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKKyAgICBib29sIHByZXZlbnRD
Rk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8
IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAgICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3Jr
Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgyOTg1OTNjMzJjOTVjZTdjNzJkZWI4ZTc3
MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3YmJhZThmOTExZmVlOTAzZjI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTgwLDE0ICsxODAsMTMg
QEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVudGlmaWVyOwogICAg
IFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IGNsaWVudFNES1Zl
cnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJv
Y2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gcHJp
b3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJpZGU7CisgICAgU0RLQWxpZ25lZEJlaGF2
aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFiYWJiZGI0Zi4uN2I1NmQ0NjBjOTEyMDhm
NDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtNzcsOCArNzcsNyBAQCB2b2lk
IEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQ
YXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFy
YW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKKyAg
ICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRlcnMuY2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2NTMxZjFlMTlkNmYxNDkzMjE4YWY4ODQ3
ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYxM2Y3NTlmZmE4YjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwoKQogICAgIHN0YXRpYyBib29s
IHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRp
b24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBzaG91bGRUaHJvd0V4Y2Vw
dGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsK
ICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNm
NTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcuLjNhMTZhMmNjMzk0NGM0MjExNDUz
OThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9p
ZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1cnJlbnRJVFBTdGF0ZSAhPSBJVFBTdGF0
ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBhcHBXYXNMaW5r
ZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lv
bkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNs
ZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUoKSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsKICAgICBpdHBRdWV1ZSgpLT5kaXNwYXRj
aChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJZGVudGlmaWVyID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCldIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCmluZGV4
IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBhZmQ5ODBmN2UuLjE0ZTdjYzI1YjIwMjY4
YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAtNjQsNyArNjQsNyBAQCB2
b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0
aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRo
aW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRv
IGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsK
LSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24p
KQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SW5pdGlhbGl6ZVdlYktpdDJNYWlu
VGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1bkluaXRpYWxpemF0aW9uQ29kZSgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaFN5bmMo
W10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGJhYTAxMjU3MDc3
N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1MmFkYzAxN2NlMjcwNzUxOTFmMTM3OTlk
MmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RL
QWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzJik7CiAgICAgdmlydHVhbCBib29s
IGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3RlZDoKQEAgLTEzNSwxMCArMTM0LDcgQEAg
dm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBUaGUgaG9zdCBwcm9jZXNzIG1heSBub3Qg
aGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEgY29tbWFuZCBsaW5lIGFwcCksIHNvIGRv
bid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIo
cGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKICAgICAKLSAgICBkZWxlZ2F0ZS5n
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJh
bWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Cisg
ICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVu
dFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmll
cihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggY2I3MjQwZDg1ZDI1ZTE3MzFjM2Q0
NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2NTI3MmMxY2M3Yjc3OTRmYWUzMjQ4MDA1
ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1IEBAIGJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRC
dW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKTsKIH0KIAot
Ym9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1
aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYg
YmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9IHBhcnNlSW50ZWdlcjx1aW50MzJfdD4o
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1z
ZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJzaW9uID0gdmVyc2lvbi52YWx1ZV9vcigw
KTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUoKTsKLX0KKyAgICBzaXplX3QgbGVuZ3Ro
ID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKG1f
aW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsICZsZW5n
dGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlvckRhdGEpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPT0gYmVoYXZpb3JzLnN0b3JhZ2VMZW5n
dGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlvcnMuc3RvcmFnZSgpLCBiZWhhdmlvckRh
dGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJp
ZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsKLSAgICBhdXRvIGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1l
c3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVyLW92ZXJyaWRlIik7Ci0gICAgaWYgKGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAgICAgIGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpID8g
TGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyA6IExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAgIGVsc2UKLSAgICAgICAgbGlua2VkT25P
ckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRiYzRkMjZkOTIyZmY3NTE5OTEuLmY4M2Qw
MWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDQsMTMg
KzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hM
aXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
CiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKIHsKLSAgICBzdGF0
aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxp
bmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRJTURiQ1NTT01WaWV3U2Nyb2xs
aW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOwogICAgIHJldHVybiAh
cmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAgYm9vbCBkZWZhdWx0QWx0ZXJuYXRlRm9y
bUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlV2hlZWxM
aXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogewotICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRB
bGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBkZWZhdWx0QXBw
bGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRp
YyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhBcHBs
aWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgIHN0YXRpYyBib29sIG5ld1NESyA9
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAgICAgcmV0dXJuICFuZXdTREs7CiAjZWxz
ZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMgc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcg
dGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThmNjczZjg4Li4yZDJjYTcwMWM5MDkyNjEz
Zjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VS
ZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVs
b2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQyNGViMGRkOGZjLi42
NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYzZjI3NzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDk4LDgg
KzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsKIAogKyAodm9p
ZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiB7Ci0gICAgc2V0QXBw
bGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nKTsKKyAgICBkaXNhYmxlQWxs
U0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUwOCw3IEBAICsgKHZvaWQpX3NldExpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAKICsgKHZvaWQpX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1l
cmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFi
bGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAKICsgKHZvaWQpX3NldENhcHRpdmVQb3J0
YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4M2Y0ZmMy
ODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTguLmFiMDc0Y2I0YjMzMTA0ZjViODk3YWU5
Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgLSAoQk9PTClfaXNWYWxpZAog
CiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFBpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOwogICAgIHJldHVy
biBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwogfQogCiBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
czsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Niw3
ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRl
bygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1l
cyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKQEAgLTM0
NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wg
KnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0
aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29s
ICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmll
dyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRp
ZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQ
cm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0
b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25z
Rm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzKSkKICAgICAgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJS
ZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3JlICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVAIiwgcmVsYXRlZFdlYlZpZXcsIFtyZWxh
dGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0sIFtfY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAgICAgW19jb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2xdOwpAQCAtMzY4LDcgKzM2OCw3IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3Ig
PSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gZGVmYXVsdEFsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAg
X2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0KTsKIAogI2lmIEhBVkUo
VUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBOTzsKQEAg
LTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxl
VVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlld10pOwogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQobGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQ
SSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXREZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25Q
ZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEh
W19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAtNTcwLDcgKzU3MCw3
IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVy
ZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2UoW19jb25maWd1cmF0
aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZV0pOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0KFtf
Y29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodF0pOwogCi0gICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJr
c0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKXJlbG9hZAogewogICAgIFRI
Uk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBy
ZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZp
b3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4
cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0
aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29u
ZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKICAg
ICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFz
bmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewor
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAg
IGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUwMmIwZTVmNjEyYzNhZTcxZmY1ZDU5Yi4u
MTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xpZnREZWxheSB0b0Ry
YWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGRE
ZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiB7CiAjaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVjaWRlc1BvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1cm4gc2hvdWxkRGVjaWRlOwogI2Vsc2UK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9ICFfYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0g
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJB
Y3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvOwogICAgIGVsc2UKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgzOTkyOGRhZTgxMmYwNmNiMjgyOGMyMjM2
NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1MTE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopbm9u
UGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5p
dFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQog
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9uIGZvcm1hdDpAIkNh
bGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBpcyBub3Qgc3VwcG9ydGVkLiJdOwogICAg
IAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MDgxOWIxYzVmOWZmYjAxZTE0
YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3OWRjNjFkYzJkNTQ0MTliMzZjNTliMzhm
MmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJRWRnZUluc2V0cylfY29udGVudEluc2V0
c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwogCiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1
dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cykp
IHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewog
ICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywg
dHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVu
IHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9u
IHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1
dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkxZThhNTlhY2U5ODBhMTFkZjAzMWQyMjc0
NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYyMTZlYjdkMjRhNGYyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTExODYs
NyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJfZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnCiAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93
ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFn
Z2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRl
RGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThmNTVlZDVkMjgwZGU0MTUxZi4uNjU5NDAy
M2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIC0gKHZvaWQpaW5zcGVjdG9yV0tX
ZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKICAgICAgICAgcmV0
dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9u
czsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAg
ICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7
CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2Yz
MzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIyMzIzYTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcgKzIxNiw2IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwgIWNsaWVudElkZW50
aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgpIDogKl9OU0dl
dFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVz
c2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIsIFdlYkNvcmU6OmFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGstdmVyc2lvbiIs
IFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCkuZGF0YSgpKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJw
cm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vzcy1uYW1lIiwg
W1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhTdHJpbmddKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJz
ZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsyMjYsOCBAQCB2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9mZChib290
c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RERVJSX0ZJTEVOTyk7CiAgICAgfQogICAg
IAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSBsaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIsICps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpB
ZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0
KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3JzIiwgc2RrQmVoYXZpb3JzLnN0b3JhZ2Uo
KSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOwogCiAgICAgYXV0byBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRl
KG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFmOWE3MWU0OGZiNTgxOGVjZWM5NjBlZmUx
MTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYxODRkOTU0MzZmYjRmMTVkNmY1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhh
c1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisgICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9u
TWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWJmY2M4YjQ1OTY0Njc1OGJhYzMyYjcz
NTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2NDg0NWM2ODY2NjQ1NTlhZjMxZmExYjhi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzQ5LDcg
KzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIH0KIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKKyAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZl
cnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCkBAIC0yNjY3
LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYgKCFtX2hhc1VwZGF0ZWRSZW5kZXJpbmdB
ZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKICNlbHNlCiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNzdjNGJlNzk0M2QxYjAyNDIyZTc2NzYy
NzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAgICAgYm9vbCBpc1NhZmFyaSA9
IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCiAgICAgICAgIGlm
IChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgICAgICAgICAgZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlmCiAgICAgfSk7CiAKQEAgLTI3OSw3ICsy
NzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgdXBkYXRlQmFja0ZvcndhcmRDYWNoZUNh
cGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2VzcykpIHsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRE
YXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpkZWZh
dWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC0xMTU0LDcgKzEx
NTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogCiAgICAgYm9vbCBlbmFibGVQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2UtPnByZWZlcmVuY2VzKCkucHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5h
dmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkg
JiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKICAgICAgICAgZW5hYmxlUHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNzA0NTBhOTViYTZlOGE0OWVl
NWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0NGQ2ZjMyNmIwOTRjYTI0Y2QzZjU1MWM3
ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzUmVhY2hlZFByb2Nl
c3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6
OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5U
aHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFko
UnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5
KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFp
bigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9v
cDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNl
bHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDNiNDY3ZjQ1Yjk4MDNiNjAz
ZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFlNDljMzIyZjViZmIwMjg3NmNlNDJkNDNj
YzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIKICAgICBbc2Vs
ZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAgW19maXhlZENsaXBw
aW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAg
ICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFj
dGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBv
YmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERp
ZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAotICAg
IGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVL
ZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3Rl
KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAgICAgICAgIGNsYXNz
X2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpLCByZWludGVycHJl
dF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRo
b2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBz
ZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEwMWEuLmQxODQ1N2Mz
MzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODEy
Nyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVzCiAgICAgICAgIHJl
dHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdEhh
c1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC05ODgzLDcgKzk4ODMsNyBAQCBz
dGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNo
YXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CiAKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09u
TWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKSkgewogICAgICAgICBpZiAoV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc05v
Z2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0
OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25U
b0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkg
ewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzUG9ja2V0Q2l0eSgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyNjk0
NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRVNQTkZhbnRh
c3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2NzE1NDM+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRleCA3ODFkMzZlZDhhMWVmNjJhYmE1ZDUw
MWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2ZWE3ZTgxY2JjMjk2MDQ2NjhiMzQ0NmMw
MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KQEAg
LTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMpX3N5c3RlbUNvbnRlbnRJbnNldAogICAg
IC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQu
IFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hl
biB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2Fm
ZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNv
bmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJ
U2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKKyAgICBpZiAobGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VUlTY3JvbGxWaWV3RG9l
c05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudElu
c2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1l
bnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9hcmRC
b3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFiN2Q5ZjNlMDc5NjE0ZTc4YzZjNDc5Li4w
MWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0MzNmY2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAt
ODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAgaWYgKCsrX3N0YXJ0Q291bnQgPiAxKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkp
CiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOwogfQogCkBAIC05Miw3ICs5Miw3IEBA
IC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291bnQgfHwgLS1fc3RhcnRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQog
ICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBlMzI4YjEzZjE1
OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZlMTM2NjYwZTExNzFlYTQ0YjAxMmMxZjY2
MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAgc3RhdGljIGJvb2wgZGVza3RvcENs
YXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FNYWlu
U2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hvdWxkUmVjb21tZW5k
RGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAm
JiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9wQ2xhc3NCcm93c2lu
Z1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IEln
bm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAg
ICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVn
dWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAv
LyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMg
U0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGlu
ZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdL
V2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVs
ZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBhNjFlZjgyYmJhY2U2MWE2NzMzNjY3MDI2
OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5MmY5MmJjZjJkNmUyODJlYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVn
YXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZyYW1lVmlldzooV2ViRnJhbWVWaWV3ICop
ZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoTlNVSW50ZWdlcil3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlmICghbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVs
dCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1
cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJuIFdlYkRyYWdEZXN0
aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0KaW5kZXggZTI0N2E4ZTJkNTZk
MGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZjY2ZlZGYzN2E3Y2NhOWQ3MWMwNGFlNmZi
ZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25s
b2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgYm9vbCBzaG91bGRDYWxsT25OZXR3b3Jr
VGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIGJvb2wgaXNPbGRFcHNv
blNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29uU29mdHdh
cmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgc3RhdGljIGJvb2wgaXNP
bGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29u
U29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkKTsK
ICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlcjsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUwZTllYzAxNTc2MDg5NTU1ZGFjLi40NjI1
MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDczMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtMTA4LDcgKzEwOCw3IEBA
ICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFiYXNlPj4gZGF0YWJhc2U7CiAgICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4gewot
ICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdlYkljb25E
YXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRhdGFiYXNlV2FybmluZykpCiAgICAgICAg
ICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaXMgbm90
IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhh
bmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVs
ZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQoKSA9IGFkb3B0TlMoW1tXZWJJY29uRGF0
YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KaW5kZXggZGQx
Yjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJmODQ1YS4uNzU0ZWI2NjczZGVlOTllNGEx
YmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAg
LTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7
CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s7CiB9
CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVy
ZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0
ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRUaGVTZWNy
ZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlID0gV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKSAmJiAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2Np
ZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93
V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0KIApAQCAtNzEsMjAgKzcxLDIwIEBAIGJv
b2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
KCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVu
dCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0UmVxdWlyZXNVc2Vy
R2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRo
YXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3Vs
ZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
KTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiB9CiAK
IGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewogICAgIC8vIEZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVudGlsIGFwcHMgYXJlIHJlYnVpbHQgd2l0
aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdElu
TGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYlNRTERpc2FibGVk
QnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJldHVybiB3ZWJTUUxFbmFibGVkOwogfQog
CkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVk
KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
KTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMjA4
LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkK
IAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxp
ZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
azsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydElu
dmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVlbExpc3RlbmVyc0Fz
RGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVm
YXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0QWxsb3dz
V2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFiOTk0NTc1MmRhOTlhODExZjkuLjBjYzE3
ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzOTEsNyArMTM5MSw3IEBAIC0odm9pZClf
aW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBMQVRGT1JNKElPUykKIHN0YXRpYyBib29s
IG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBuZWVkc1F1
aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVlUG9zdGFsZVF1aXJrcyk7CiAgICAgcmV0
dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>
<flag name="commit-queue"
          id="485763"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457222</attachid>
            <date>2022-04-10 19:03:22 -0700</date>
            <delta_ts>2022-04-10 19:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410190321.patch</filename>
            <type>text/plain</type>
            <size>98917</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi5jMjgwZWNkMTA4OWJmYTM5
NTEzZGFhZDUyZWJmZTdmMWU2YTMyODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIFZlY3Rv
ciB3aXRoIGlubGluZSBjYXBhY2l0eSBpbiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjcmVh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA4Yjc1YjhlNDQwMThmYmY1N2M4MTkyM2Q5MWZmNDY4NDUzNDU1Y2E2Li43N2Ex
NzNlMTFlY2JlMWJlOGUxMDI5MTUwNjNlOGM2NTBmNmRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBA
CisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3dpdGNoIHRvIGBkeWxkX3Byb2dyYW1fc2RrX2F0X2xlYXN0YCwgd2hpY2ggY29ycmVj
dGx5IGhhbmRsZXMgU0RLCisgICAgICAgIGNoZWNrcyBmb3IgYmluYXJpZXMgYnVpbHQgZm9yIG9u
ZSBTREsgcnVubmluZyBvbiBhbm90aGVyIHBsYXRmb3JtCisgICAgICAgIChlLmcuIGlPUyBhcHBz
IHJ1bm5pbmcgb24gbWFjT1MpLgorCisgICAgICAgIEJlY2F1c2UgYGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3RgIGlzIGJhc2VkIG9mZiBtb3JlIHRoYW4gYSBzaW1wbGUKKyAgICAgICAgaW50ZWdl
ciBjb21wYXJpc29uIGxpa2Ugb3VyIG9sZCBTREsgY2hlY2ssIHdlIG1vdmUgaXQgaW50byB0aGUK
KyAgICAgICAgYXBwbGljYXRpb24gcHJvY2VzcywgYW5kIGp1c3QgdHJhbnNtaXQgdGhlIGNvbXB1
dGVkIGJlaGF2aW9ycyB0bworICAgICAgICBzdWJwcm9jZXNzZXMuCisKKyAgICAgICAgUmVtb3Zl
IGZ1bmN0aW9ucyB0aGF0IGV4cG9zZS90cmFuc21pdCBwbGF0Zm9ybS1zcGVjaWZpYyBTREsgdmVy
c2lvbnMsCisgICAgICAgIHNvIHRoYXQgdXNhZ2UgaXNuJ3QgYWNjaWRlbnRhbGx5IHJlaW50cm9k
dWNlZC4KKworICAgICAgICBSZS1mcmFtZSB0aGUgbmFtaW5nIG9mIG91ciBsaW5rZWQtb24tb3It
YWZ0ZXIgY2hlY2tzIGFzIGJlaW5nIGFib3V0CisgICAgICAgIHNwZWNpZmljIGJlaGF2aW9ycyBp
bnN0ZWFkIG9mIFNESyB2ZXJzaW9ucy4KKworICAgICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAg
ICAgKFdURjo6V29yZFR5cGU+OjpzZXRBbGwpOgorICAgICAgICBBZGQgYHNldEFsbGAsIHdoaWNo
IHNldHMgYWxsIHRoZSBiaXRzIGluIHRoZSBCaXRtYXAsIGxpa2UgRmFzdEJpdFZlY3RvciBoYXMu
CisgICAgICAgIEV4cG9zZSB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGluIGJ5dGVzIHRvIG1ha2Ug
dHJhbnNtaXR0aW5nIHRoZSBCaXRtYXAgc2ltcGxlLgorCisgICAgICAgICogd3RmL2NvY29hL0xh
bmd1YWdlQ29jb2EubW06CisgICAgICAgIChXVEY6OmNhbk1pbmltaXplTGFuZ3VhZ2VzKToKKyAg
ICAgICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9k
eWxkU1BJLmg6CisgICAgICAgIEJlY2F1c2Ugb2YgdGhlIG5hdHVyZSBvZiBkeWxkX2J1aWxkX3Zl
cnNpb25fdCB2YWx1ZXMsIHdlIGNhbid0IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZSB0aGVtLiBU
aHVzLCBtYWludGFpbiBhIGZhbGxiYWNrIHRvIHRoZSBsZWdhY3kgcGxhdGZvcm0tc3BlY2lmaWMK
KyAgICAgICAgU0RLIGNoZWNrcyBmb3IgdXNlIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCB0aGUgaW50
ZXJuYWwgU0RLLCBvciB3aGVuCisgICAgICAgIGJhY2stZGVwbG95aW5nIHRvIG9sZGVyIFNES3Mg
dGhhdCBkb24ndCB5ZXQgaGF2ZSB2YWx1ZXMgZm9yIG5ld2VyIHZlcnNpb24gc2V0cy4KKworICAg
ICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAg
ICAgIChkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RG
Ojpjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRC
ZWhhdmlvcnNWYWx1ZSk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRCZWhhdmlvcnMpOgorICAg
ICAgICAoV1RGOjpzZXRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmRpc2FibGVBbGxTREtBbGln
bmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKToKKyAgICAgICAgKFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6c2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlcik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg6CisKIDIwMjItMDQtMDggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjU4Ni4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNjUxZDhjZGExMmY2NmNiYzZkYTg5MTAzNGFjZDRmYjVhNGM4OWQ3Li4xNTZjMDIx
YjE0MDM5MzVjMDRmODkzOGNhYTEwMzg5MjA4YzU1NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIg
Y2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3cpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpuZWVkc1dlQ2hhdFNjcm9s
bGluZ1F1aXJrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkT21pdEhU
TUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdp
bik6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb3RQ
cmVmaXhlZEZvcmJpZGRlbkZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OnNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5n
LgorCisKIDIwMjItMDQtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oKSB0byByZXR1cm4g
YSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzk4OWE0OTBjMWNm
NDhkYTUyYWE4YjA4NTZkNzIxODcwODZmZjQ1ZC4uMTJhYTgxMWViZmZmNjJhMzgzNzJlNzNjZGYw
NDdjNjk1OTQ0MzgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMi0wNC0xMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCAidmVy
c2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0
Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0F1
eGlsaWFyeVByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0
OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpn
ZXRDbGllbnRTREtWZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6WFBDU2Vydmlj
ZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6
CisgICAgICAgIEluc3RlYWQgb2YgdHJhbnNtaXR0aW5nIHRoZSBTREsgdmVyc2lvbiBhbmQgb3Zl
cnJpZGUgc3RhdGUgaW4gdGhlIGJvb3RzdHJhcAorICAgICAgICBtZXNzYWdlLCBqdXN0IHNlbmQg
dGhlIGNvbXB1dGVkIHNldCBvZiBiZWhhdmlvcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwpOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZGV0ZXJtaW5lSVRQU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVy
ZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwOgorICAgICAgICAoV0tQYWdlUmVsb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExp
bmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAoK1tXS1Byb2Nl
c3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGluZ0FueVhI
UkhlYWRlckZyb21GaWxlVVJMcyk6CisgICAgICAgIChzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVmYXVsdFNo
b3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFT
dG9yZSBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06
CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3
UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklz
S25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tT
dHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dzaW5nUmVj
b21tZW5kZWQpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXQgbGF5
ZXIgYmFja2luZyBzdG9yZSBidWZmZXJzIGludG8gdGhlIHBlci1SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIElPU3VyZmFjZVBvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5Njc5NzFm
YWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1Li45NmY2NzhmNTVhMGM5NjIzMDhlODhj
MDQ2NjkzNDhiMTAzYmU1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0
ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2Fk
Lm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29ya1RocmVhZCk6CisgICAgICAgICogTWlz
Yy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0cmlj
dEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJ
bnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVs
TGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRX
aGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1ZVBvc3RhbGVRdWlya3MpOgorICAgICAg
ICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOCAgRWxsaW90dCBXaWxsaWFtcyAg
PGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBBdm9pZCB0YXJnZXRpbmcgMzItYml0
IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNU
eXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYyNzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhh
NGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1OTgzZTE2MTgzODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
dm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVuZ3RoUXVpcmsoKQogewotICAgIHJldHVy
biAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFR5cGVkQXJyYXlBUElR
dWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWlyayk7CiB9CiAjZWxzZQogaW5saW5lIHN0
YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJheUxlbmd0aFF1aXJrKCkgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVy
TWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXgg
N2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYy
MGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBAQCBib29sIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJzaW9uT2ZMaW5rVGltZUphdmFTY3JpcHRD
b3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25PZkxpbmtUaW1lSmF2YVNjcmlw
dENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3Vw
cG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworICAgICAgICByZXR1cm4gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJ
bml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAgcmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdk
YS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCkBAIC02MTcsNyArNjE3LDcgQEAg
dm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpCiB2b2lkIFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2Jq
Qyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdo
ZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICByZXR1cm47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRl
eCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQx
MzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRo
ZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKICAgICAgICAgaWYgKHVzZUxlZ2FjeURy
YWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhkMWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3
ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMxNzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxs
aW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rh
c2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDU5
NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAyZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5
MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIGlubGluZSBz
dGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0byBidW5kbGVJRCA9IENGQnVuZGxlR2V0
SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlE
CiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENGU1RSKCJjb20ua3BnYW1lLlBva2VyQnJv
cyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAgICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdR
dWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQml0bWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBiOGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2
Y2Q0NDNmYmQ5YTIyNzBhLi5lZWY0ZDBmYmRmMWM1NzFhZmJhYmFkZjNmZjk5NDE1ZDhlNzY3YzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHNpemVf
dCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0OwogICAgIGNvbnN0ZXhwciB2b2lkIGNs
ZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgpOworICAgIHZvaWQgc2V0QWxsKCk7CiAg
ICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAgaW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhz
aXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXplX3QgY291bnQoc2l6ZV90IHN0YXJ0ID0g
MCkgY29uc3Q7CkBAIC0xNDEsNiArMTQyLDggQEAgcHVibGljOgogICAgIFdvcmRUeXBlKiBzdG9y
YWdlKCkgeyByZXR1cm4gYml0cy5kYXRhKCk7IH0KICAgICBjb25zdCBXb3JkVHlwZSogc3RvcmFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAKKyAgICBjb25zdGV4cHIgc2l6ZV90
IHN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkgeyByZXR1cm4gc2l6ZW9mKGJpdHMpOyB9CisKIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3Jk
VHlwZSkgKiA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFw
U2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKQEAgLTI0MCw2ICsyNDMsMTIgQEAgaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xlYXJBbGwoKQogICAgIG1l
bXNldChiaXRzLmRhdGEoKSwgMCwgc2l6ZW9mKGJpdHMpKTsKIH0KIAordGVtcGxhdGU8c2l6ZV90
IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6c2V0QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4
RkYsIHNpemVvZihiaXRzKSk7Cit9CisKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjppbnZlcnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0K
aW5kZXggMzAyMWZlYzA3MTdlZWZhNDI2YTVlN2ViZThiYmM3NjhjZjMzMzdkZi4uYmRjNGJlZDRj
NzRiNzllNmQyM2Y5ZmNlODI2ZTE4NGE5NWVlOGIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5n
dWFnZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5n
TGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0CiBi
b29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCByZXN1
bHQgPSBbXSgpIC0+IGJvb2wgewotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsK
KyAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsKICAgICB9
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcAppbmRleCBjNzE0OTNiNDRhNzIw
YjhmM2RkZDY3NGMyYWYxNDhjNDkxMjM5YWYwLi4yOGM5NzBjYmNmMmVkY2FhMjgwNzQwZWIyZTEy
NjA3YzdjYmU2NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCkBAIC0yNyw1MCArMjcsMTk2IEBACiAjaW5jbHVk
ZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4m
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkKK3N0YXRpYyBib29sIGxpbmtlZEJlZm9y
ZShkeWxkX2J1aWxkX3ZlcnNpb25fdCB2ZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja0lPU1ZlcnNp
b24sIHVpbnQzMl90IGZhbGxiYWNrTWFjT1NWZXJzaW9uKQogewotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiB2ZXJzaW9uOwotICAgIHJldHVybiB2ZXJzaW9uOworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgLy8gZHlsZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzIGNh
bm5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLCBzbyB3ZSBmYWxsIGJhY2sgdG8KKyAgICAvLyB0cmFk
aXRpb25hbCBTREsgdmVyc2lvbiBjaGVja3Mgd2hlbiBidWlsZGluZyBhZ2FpbnN0IGFuIFNESyB0
aGF0CisgICAgLy8gZG9lcyBub3QgaGF2ZSBkeWxkX3ByaXYuaCwgb3IgZG9lcyBub3QgZGVmaW5l
IGEgZ2l2ZW4gdmVyc2lvbiBzZXQuCisgICAgaWYgKHZlcnNpb24ucGxhdGZvcm0gfHwgdmVyc2lv
bi52ZXJzaW9uKQorICAgICAgICByZXR1cm4gIWR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QodmVy
c2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2ZXJzaW9uKTsKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tNYWNPU1ZlcnNp
b24pOworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFj
a0lPU1ZlcnNpb247CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmYWxsYmFja0lPU1ZlcnNpb24p
OworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFja01h
Y09TVmVyc2lvbjsKKyNlbmRpZgogfQogCi12b2lkIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbih1
aW50MzJfdCB2ZXJzaW9uKQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYUFkZGl0
aW9ucy5jcHA+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hQWRkaXRpb25zLmNwcD4KKyNlbHNlCitzdGF0aWMgdm9pZCBkaXNhYmxlQWRkaXRp
b25hbFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpCiB7Ci0gICAgYXBw
bGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKSA9IHZlcnNpb247CiB9CisjZW5kaWYKIAotdWlu
dDMyX3QgYXBwbGljYXRpb25TREtWZXJzaW9uKCkKK3N0YXRpYyBTREtBbGlnbmVkQmVoYXZpb3Jz
IGNvbXB1dGVTREtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICphcHBsaWNhdGlvblNES1ZlcnNpb25P
dmVycmlkZSgpOwotICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Cisg
ICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZpb3JzLnNldEFsbCgp
OworCisgICAgYXV0byBkaXNhYmxlQmVoYXZpb3IgPSBbJl0gKFNES0FsaWduZWRCZWhhdmlvciBi
ZWhhdmlvcikgeworICAgICAgICBiZWhhdmlvcnMuY2xlYXIoc3RhdGljX2Nhc3Q8c2l6ZV90Pihi
ZWhhdmlvcikpOworICAgIH07CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE1
X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzlfMCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xMSkpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9m
YWxsXzIwMTZfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTBfMCwgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlVucHJlZml4ZWRQbGF5c0lubGluZUF0dHJpYnV0ZSk7CisgICAgfQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2Vsc2UKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE0X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2VuZGlmCisKKyAgICBpZiAo
bGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9O
XzExXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpKSB7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9u
SGFuZGxlckNhbGxzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFz
ZVdhcm5pbmcpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAx
OF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMV8zLCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzXzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlz
dGVuZXJzT25Eb2N1bWVudCk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxOF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMl8wLCBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE0KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xsVmlld0RvZXNO
b3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25Jbldl
YlBhZ2VQcm94eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIH0K
KworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucywgRFlM
RF9JT1NfVkVSU0lPTl8xMl8yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0XzQpKSB7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2du
aXplckluc3RhbGxhdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKTsKKyAgICB9CisKKyAgICBp
ZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUpKSB7CisgICAgICAgIGRpc2FibGVC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRi
b3hFeHRlbnNpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJW
aWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3Jlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5v
SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQp
OworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM18yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaXRlU3Bl
Y2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9zcHJpbmdfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM180LCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1
YWdlcyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAyMF9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2
KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbik7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRS
ZXR1cm5pbmdOaWwpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1
aWx0SW5UYWdRdWlyayk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2xhdGVf
ZmFsbF8yMDIwX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE0XzIsIERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTYpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9zcHJpbmdfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF81LCBEWUxEX01B
Q09TWF9WRVJTSU9OXzExXzMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXND
bGFzc1Byb3BlcnR5KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6Tm9XZUNoYXRTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlNoYXJlZE5ldHdvcmtQcm9jZXNzKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QmxhbmtzVmlld09uSlNQcm9tcHQpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVm
YXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0Jl
Y29tZU5vbkJsb2NraW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDIxX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTJfMDApKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6Ok51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QXBwbGljYXRpb25D
YWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3Jv
dGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTVfNCwgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8zKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyk7CisK
KyAgICBkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKKwor
ICAgIHJldHVybiBiZWhhdmlvcnM7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPExpbmtlZE9u
T3JBZnRlck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxTREtBbGlnbmVkQmVoYXZpb3JzPiYgc2RrQWxpZ25lZEJlaGF2aW9yc1Zh
bHVlKCkKIHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZT4gbGlua2VkT25PckFmdGVyOwotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4+IGJl
aGF2aW9yczsKKyAgICByZXR1cm4gYmVoYXZpb3JzLmdldCgpOwogfQogCi12b2lkIHNldExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+
IGxpbmtlZE9uT3JBZnRlcikKK2NvbnN0IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRC
ZWhhdmlvcnMoKQogewotICAgIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKSA9IGxpbmtl
ZE9uT3JBZnRlcjsKKyAgICBhdXRvJiBiZWhhdmlvcnMgPSBzZGtBbGlnbmVkQmVoYXZpb3JzVmFs
dWUoKTsKKworICAgIGlmICghYmVoYXZpb3JzKQorICAgICAgICBiZWhhdmlvcnMgPSBjb21wdXRl
U0RLQWxpZ25lZEJlaGF2aW9ycygpOworCisgICAgcmV0dXJuICpiZWhhdmlvcnM7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlKCkKK3ZvaWQgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzIGJl
aGF2aW9ycykKIHsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpOwor
ICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdlIHdvdWxkIGFzc2VydCB0aGF0IGBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3JgIGhhZCBub3QKKyAgICAvLyBiZWVuIGNhbGxlZCBhdCB0aGlzIHBv
aW50IChiZWNhdXNlIGl0cyByZXBseSBjb3VsZCBoYXZlIGJlZW4gaW5hY2N1cmF0ZSksCisgICAg
Ly8gYnV0IFdlYlByZWZlcmVuY2VzIHVzZSBpbiBTYWZhcmkgKGF0IGxlYXN0KSBjdXJyZW50bHkg
cHJldmVudHMgdGhpcyBoYXJkZW5pbmcuCisKKyAgICBzZGtBbGlnbmVkQmVoYXZpb3JzVmFsdWUo
KSA9IGJlaGF2aW9yczsKK30KKwordm9pZCBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCkK
K3sKKyAgICBTREtBbGlnbmVkQmVoYXZpb3JzIGJlaGF2aW9yczsKKyAgICBiZWhhdmlvcnMuc2V0
QWxsKCk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhiZWhhdmlvcnMpOwogfQogCi1ib29s
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24pCit2b2lkIGRpc2FibGVBbGxT
REtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXV0byBvdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICpvdmVycmlkZVZhbHVlID09
IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmc7CisgICAgc2V0U0RLQWxp
Z25lZEJlaGF2aW9ycyh7IH0pOworfQogCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9u
QXNJbnRlZ2VyICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpID49IHNka1ZlcnNpb25Bc0ludGVn
ZXI7Citib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgcmV0dXJuIHNka0FsaWduZWRCZWhhdmlvcnMoKS5nZXQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oIGIvU291cmNlL1dU
Ri93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAppbmRleCAwNTU4MjZk
MzM5ODVmYjg0ZjE1MTZjNWIyODE2ODA2Zjk1Yzc0YTEwLi44ZDA2MWRmZTVmOTI5MThkYWJkNjJk
MDg5NmEwMDJhMTIzNDdmMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKQEAgLTI2LDEyNSArMjYsOTIgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxk
U1BJLmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50
MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFdpdGhQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAotICAgIEZpcnN0V2l0
aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19WRVJT
SU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0g
RFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5
RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0lu
dmFsaWRVUkxzVG9CbGFuayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhv
dXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayA9IERZTERfSU9T
X1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1
dGUgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRz
SW5pdENvbnN0cnVjdG9ycyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhF
eGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZF
UlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJI
ZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0
RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJT
SU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2Jz
Y3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNj
cm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlv
bkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91
dE1vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwK
LSAgICBGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyA9IERZTERfSU9TX1ZFUlNJT05f
MTJfMCwKLSAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBE
WUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0
ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRob3V0VW5j
b25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lPU19W
RVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdERlY2lkZXNQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJl
bnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aE1vZGVy
bkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBG
aXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5k
cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93
SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRo
b3V0SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAot
ICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18yLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0gICAgRmlyc3RUaGF0TWluaW1pemVzTGFu
Z3VhZ2VzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aFNlc3Npb25DbGVh
bnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aEluaXRp
YWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwK
LSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9J
T1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aFdlYlNRTERpc2FibGVkQnlEZWZhdWx0SW5M
ZWdhY3lXZWJLaXQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCi0gICAgRmlyc3RXaXRob3V0TGFC
YW5xdWVQb3N0YWxlUXVpcmtzID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAg
ICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzIs
Ci0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfSU9TX1ZFUlNJT05f
MTRfNSwKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0g
RFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0
eSA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxp
bmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhTaGFyZWROZXR3
b3JrUHJvY2VzcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhCbGFua1Zp
ZXdPbkpTUHJvbXB0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0V2l0aE51bGxP
cmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCi0g
ICAgRmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiAgPSBEWUxEX0lPU19WRVJTSU9O
XzE1XzAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0VGhhdERv
ZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9JT1NfVkVS
U0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5S
ZWRpcmVjdHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzQsCi0gICAgRmlyc3RXaXRob3V0VHlwZWRB
cnJheUFQSVF1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotICAgIEZpcnN0Rm9yYmlkZGlu
Z0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX0lPU19WRVJTSU9OXzE2XzAsCi0jZWxpZiBQTEFURk9S
TShNQUMpCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycyA9IDB4
QTBBMDAsIC8vIE9TIFggMTAuMTAKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9C
bGFuayA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9u
c0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzLAotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9
IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxv
YWRCZWhhdmlvciA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2Vi
SWNvbkRhdGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmly
c3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTQsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3Mg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwK
LSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1Vz
aW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAg
Rmlyc3RXaXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVF
bmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAotICAgIEZpcnN0
VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80
LAotICAgIEZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhy
ZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKLSAgICBGaXJzdFdpdGhX
S1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNiwKLSAgICBGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRoQmxhbmtWaWV3
T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhvdXRD
bGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBG
aXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVy
ZXNUb0JlY29tZU5vbkJsb2NraW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0VGhhdERvZXNOb3REcmFpblRoZU1p
Y3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwK
LSAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVy
dGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzID0gRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMl8zLAotICAgIEZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEzXzAsCi0jZW5kaWYKK2VudW0gY2xhc3MgU0RLQWxpZ25lZEJlaGF2aW9y
IHsKKyAgICBBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nLAorICAg
IEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCwKKyAgICBBdXRob3JpemF0aW9uSGVh
ZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzLAorICAgIEJsYW5rc1ZpZXdPbkpTUHJvbXB0LAorICAg
IENvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rLAorICAgIERhdGFVUkxGcmFnbWVudFJlbW92YWws
CisgICAgRGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3LAorICAgIERl
ZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERlZmF1bHRzVG9Q
YXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERpc2FsbG93c1NldHRpbmdBbnlY
SFJIZWFkZXJGcm9tRmlsZVVSTHMsCisgICAgRG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMsCisgICAgRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiwKKyAgICBEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCwKKyAgICBEcm9wVG9OYXZpZ2F0ZURp
c2FsbG93ZWRCeURlZmF1bHQsCisgICAgRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25I
YW5kbGVyQ2FsbHMsCisgICAgRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcywKKyAgICBFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yLAorICAgIEZvcmJp
ZHNEb3RQcmVmaXhlZEZvbnRzLAorICAgIEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiwKKyAg
ICBIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzLAorICAgIEluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbiwKKyAgICBMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxs
YXRpb24sCisgICAgTGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0LAorICAgIE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHksCisgICAgTWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjaywKKyAgICBNaW5pbWl6ZXNMYW5ndWFnZXMsCisgICAgTW9kZXJu
Q29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0LAorICAgIE5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAs
CisgICAgTm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdywKKyAgICBOb0lNRGJDU1NP
TVZpZXdTY3JvbGxpbmdRdWlyaywKKyAgICBOb0xhQmFucXVlUG9zdGFsZVF1aXJrcywKKyAgICBO
b01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyaywKKyAgICBOb1Bva2VyQnJvc0J1aWx0SW5U
YWdRdWlyaywKKyAgICBOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93T3BlblF1
aXJrLAorICAgIE5vVHlwZWRBcnJheUFQSVF1aXJrLAorICAgIE5vVW5jb25kaXRpb25hbFVuaXZl
cnNhbFNhbmRib3hFeHRlbnNpb24sCisgICAgTm9XZUNoYXRTY3JvbGxpbmdRdWlyaywKKyAgICBO
dWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzLAorICAgIE9ic2VydmVzQ2xhc3NQcm9w
ZXJ0eSwKKyAgICBQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywKKyAgICBQcm9jZXNzU3dh
cE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiwKKyAgICBSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8sCisgICAgUmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMsCisgICAgU2Nyb2xsVmlld0NvbnRlbnRJ
bnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMsCisgICAgU2VuZHNOYXRpdmVNb3VzZUV2ZW50cywK
KyAgICBTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwKKyAgICBTaGFyZWROZXR3b3JrUHJvY2VzcywK
KyAgICBTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0LAorICAgIFNuYXBzaG90
QWZ0ZXJTY3JlZW5VcGRhdGVzLAorICAgIFN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQVBJLAorICAgIFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycywKKyAgICBTdXBw
b3J0c2lPU0FwcHNPbk1hY09TLAorICAgIFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFt
ZSwKKyAgICBUaW1lclRocmVhZFNhZmV0eUNoZWNrcywKKyAgICBVSVNjcm9sbFZpZXdEb2VzTm90
QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSwKKyAgICBVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUsCisgICAgV2ViSWNvbkRhdGFiYXNlV2FybmluZywKKyAgICBXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0LAorICAgIFdLQ29udGVudFZpZXdEb2VzTm90
T3ZlcnJpZGVLZXlDb21tYW5kcywKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsLAorCisgICAgTnVtYmVyT2ZCZWhhdmlvcnMKIH07CiAKLVdURl9FWFBPUlRfUFJJVkFURSBi
b29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKK3VzaW5nIFNES0FsaWduZWRCZWhhdmlv
cnMgPSBCaXRtYXA8c3RhdGljX2Nhc3Q8c2l6ZV90PihTREtBbGlnbmVkQmVoYXZpb3I6Ok51bWJl
ck9mQmVoYXZpb3JzKSwgdWludDY0X3Q+OwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRB
cHBsaWNhdGlvblNES1ZlcnNpb24odWludDMyX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0
IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRCZWhhdmlvcnMoKTsKK1dURl9FWFBPUlRf
UFJJVkFURSB2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyk7
CiAKLS8vIERvIG5vdCB1c2UgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZGlyZWN0bHk7IGFkZCBh
IHZlcnNpb24gdG8gdGhlIGVudW0gYWJvdmUsCi0vLyBhbmQgdXNlIGxpbmtlZE9uT3JBZnRlcigp
IGF0IGNhbGwgc2l0ZXMuCi1XVEZfRVhQT1JUX1BSSVZBVEUgdWludDMyX3QgYXBwbGljYXRpb25T
REtWZXJzaW9uKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9ycygpOwogCi1lbnVtIGNsYXNzIExpbmtlZE9uT3JBZnRlck92ZXJyaWRlIDogdWlu
dDhfdCB7Ci0gICAgQmVmb3JlRXZlcnl0aGluZywKLSAgICBBZnRlckV2ZXJ5dGhpbmcKLX07Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9w
dGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVyT3ZlcnJp
ZGUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3IpOwogCiB9CiAKLXVzaW5nIFdURjo6c2V0QXBwbGljYXRp
b25TREtWZXJzaW9uOwotdXNpbmcgV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb247Ci11c2luZyBX
VEY6OkxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNpbmcgV1RGOjpzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBX
VEY6OmxpbmtlZE9uT3JBZnRlcjsKLXVzaW5nIFdURjo6U0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uOwordXNpbmcgV1RGOjpkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9yczsKK3VzaW5nIFdURjo6ZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9yczsKK3Vz
aW5nIFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yOwordXNpbmcgV1RGOjpTREtB
bGlnbmVkQmVoYXZpb3I7Cit1c2luZyBXVEY6OnNka0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBX
VEY6OlNES0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OnNldFNES0FsaWduZWRCZWhhdmlv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDM0Njg5OGMyODU2ZDJmN2Jl
NzgwNzFlNjgyYzEyZTE3YjM1NWNjZGUuLjAwNzM1NzI4ZDcxOTFmM2M2NjYzYmQxNTYzZDJmY2I1
MjZkMTM4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBAIC0xMjMsNiArMTIz
LDEzIEBACiAKICNlbHNlCiAKK3R5cGVkZWYgdWludDMyX3QgZHlsZF9wbGF0Zm9ybV90OworCit0
eXBlZGVmIHN0cnVjdCB7CisgICAgZHlsZF9wbGF0Zm9ybV90IHBsYXRmb3JtOworICAgIHVpbnQz
Ml90IHZlcnNpb247Cit9IGR5bGRfYnVpbGRfdmVyc2lvbl90OworCiAjZGVmaW5lIERZTERfSU9T
X1ZFUlNJT05fM18wIDB4MDAwMzAwMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl80XzIgMHgw
MDA0MDIwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzVfMCAweDAwMDUwMDAwCkBAIC0xNDQs
MTAgKzE1MSwxMyBAQAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE1XzQgMHgwMDBmMDQwMAog
I2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE2XzAgMHgwMDEwMDAwMAogCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTAgMHgwMDBBMEEwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzExIDB4MDAwQTBCMDAKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMiAw
eDAwMEEwQzAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMgMHgwMDBBMEQwMAor
I2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzXzQgMHgwMDBBMEQwNAogI2RlZmluZSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBFMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNF80IDB4MDAwQTBFMDQKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNSAweDAwMEEwRjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSAweDAw
MEEwRjAxCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCAweDAwMEEwRjA0CkBA
IC0xNjEsNiArMTcxLDc1IEBACiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCisvLyBCZWNhdXNlIGl0
IGlzIG5vdCBwb3NzaWJsZSB0byBmb3J3YXJkLWRlY2xhcmUgZHlsZF9idWlsZF92ZXJzaW9uX3Qg
dmFsdWVzLAorLy8gd2UgZm9yd2FyZC1kZWNsYXJlIHBsYWNlaG9sZGVycyBmb3IgYW55IG1pc3Np
bmcgZGVmaW5pdGlvbnMsIGFuZCB1c2UgdGhlaXIgZW1wdHkKKy8vIHZhbHVlIHRvIGluZGljYXRl
IHRoYXQgd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gYW50aXF1ZSBzaW5nbGUtcGxhdGZvcm0gU0RL
IGNoZWNrcy4KKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucworI2RlZmluZSBk
eWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTdfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTdfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfc3ByaW5nXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAxOF9vc192
ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisK
KyNpZm5kZWYgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHls
ZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3Nf
dmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9z
cHJpbmdfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIwX29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxk
X2xhdGVfZmFsbF8yMDIwX29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAw
LCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3dpbnRlcl8yMDIwX29zX3ZlcnNpb25z
CisjZGVmaW5lIGR5bGRfd2ludGVyXzIwMjBfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVy
c2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDIxX29z
X3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3Nwcmlu
Z18yMDIyX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCiB1aW50MzJf
dCBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Citib29sIGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3QoZHlsZF9idWlsZF92ZXJzaW9uX3QpOwogCiBXVEZfRVhURVJOX0NfRU5ECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
OGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNhMzFkYjYwNi4uNWZhNjEyZjVmODBkZWNm
NjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZlbiB0aGF0IFdpbmRvd1Byb3h5IGlzIHRo
ZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5IG1vZGUgZnVuY3Rpb25zLCBpdCdzIGhh
cmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlPUyBhbmQgbWFjT1MgYXBwcyBkb24ndCBh
Y2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IsIHNvIHdlIGtlZXAgaXQgZm9yIHRo
ZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWlyayA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldp
bmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKaW5kZXgg
MjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3ZjJhMzVlMC4uY2E3OTM4ZTc5NDUwOGM3
YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEpTV2luZG93UHJv
eHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYgZG9tV2luZG93KQogICAgICAgICB3aW5k
b3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBsb2NhbFdpbmRv
dywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IHRydWU7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CisgICAgICAg
IGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsKICNlbmRpZgogICAgICAg
ICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhhdmVJbml0aWFsaXplZFNlY3VyaXR5T3Jp
Z2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAgICAgICAgIGxvY2FsV2luZG93LnNldEFz
V3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyZDgxZjE0NWFiMDVlOWI2YzBj
NTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQyZTUzYTI2MDkyNThiNjY2OTVjZTZjNzI2
ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
QEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCiAgICAgICAgIHJldHVybiAh
bV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3
ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lubGluZUF0dHIpOwotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFVucHJlZml4ZWRQbGF5c0lubGluZUF0
dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBjMzYwOWEy
MjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjLi5kYzg2OTk2NjA5ZWFjNDc3ODdkOGVi
NTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbmVlZHNQ
cmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TW92aVN0YXJQbHVzQ09SU1ByZWZs
aWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xp
Y3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9s
aWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZsaWdodFF1aXJrID0gSU9TQXBwbGljYXRp
b246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAo
bV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8
IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CiAj
ZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODkyMDNhYWVhZGExZDMwM2IyMzY5NDU4ZDQ3
MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0MjRlYjMzZjhjYjhjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIGJvb2wgUXVpcmtzOjpuZWVkc0Z1bGxz
Y3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJvb2wgUXVpcmtzOjpuZWVkc1dlQ2hhdFNj
cm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG5l
ZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRX
ZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGljYXRpb246OmlzV2VjaGF0KCk7CisgICAg
cmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0
aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTcx
Niw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNv
bnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29sIHNob3VsZE9t
aXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKICAgICByZXR1cm4gc2hvdWxk
T21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXM7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjQ5NDIy
N2FkNTRiMjY0NGIyMGYyNWZjYzMzMWExOTljMTRkNGI4MS4uNjhlNTllMmE3MjMxZWZmMmJjYmFj
YjViYWY4MjliODIyZjE1MTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzVW5pcXVlT3Jp
Z2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8j
b3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBpZiAodXJsLmhhc1NwZWNpYWxTY2hlbWUo
KQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpCisgICAg
ICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKQogICAgICAgICB8fCB1cmwucHJv
dG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBw
bGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygieC1hcHBsZS1xbC1pZDIiKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4OTA1M2Y5Mjg1Zjk4ODZmYTU5Yjg4N2E3
MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVhYzQyYzdjOTNmZGMyMzAxYjUxOGIzZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTI1MCw5ICsyNTAsOSBAQCBwcml2YXRl
Ogogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjaygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gV2ViVGhyZWFkSXNFbmFibGVkKCkgfHwg
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxlZCgpIHx8ICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFpc0luV2ViUHJvY2Vzcygp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRTYWZl
dHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlByb2Nlc3MoKSAmJiAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlD
aGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFmZWJmNjM2ZDE5MDUyYzI2NTQyMzQyLi5k
OTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAyN2E4MzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBzdHJ1Y3QgRm9udExvb2t1cCB7CiAKIHN0
YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5Gb250KGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0Rm9yYmlk
ZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRzRG90UHJlZml4ZWRGb250cykpCiAgICAg
ICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicpOwogICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBwbGVzeXN0ZW11aWZvbnRzZXJpZiIpCiAg
ICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgIi5zZiBucyBt
b25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYyYTEwNzk4NTdlZTM3OGZjYTM4NDBlZC4u
Y2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZmOGUzNzM4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIHN0YXRpYyBib29sIHNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBITFMgdXNlcyAjIGluIHRoZSBtaWRk
bGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2MjcyMjNiZDcwMmIxOTBkNzRjMDA2YzgxNTJm
MTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5NjQ1N2FlZGFiNTRmOGQ0NjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBA
IC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdG
b3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRBcHBsaWNhdGlvblNE
S1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVy
eXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4ZTlkOGFlMjFlYjBkN2Y5ODllMmFkNWUz
M2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2ZlNzUxNjU2OTMwMWUzNjZmZGU0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKIAogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVh
ZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9y
aXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCisgICAgICAgIGlmIChh
dXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29y
ZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwo
KSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzKSkKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3Jp
emF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVTRShDUkVERU5USUFMX1NUT1JBR0VfV0lU
SF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggN2IwNDJhMzY1M2M1OWVh
MTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIxMzlhNTg4ODE2NGFlMzg1ODg1OTEwOTI4
NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgc3Rh
dGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29uZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Np
b25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29uZmlndXJhdGlvbl07CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0Q2xpZW50Q2VydGlm
aWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKKyAgICBib29sIHByZXZlbnRD
Rk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8
IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAgICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3Jr
Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgyOTg1OTNjMzJjOTVjZTdjNzJkZWI4ZTc3
MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3YmJhZThmOTExZmVlOTAzZjI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTgwLDE0ICsxODAsMTMg
QEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVudGlmaWVyOwogICAg
IFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IGNsaWVudFNES1Zl
cnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJv
Y2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gcHJp
b3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJpZGU7CisgICAgU0RLQWxpZ25lZEJlaGF2
aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFiYWJiZGI0Zi4uN2I1NmQ0NjBjOTEyMDhm
NDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtNzcsOCArNzcsNyBAQCB2b2lk
IEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQ
YXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFy
YW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKKyAg
ICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRlcnMuY2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2NTMxZjFlMTlkNmYxNDkzMjE4YWY4ODQ3
ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYxM2Y3NTlmZmE4YjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwoKQogICAgIHN0YXRpYyBib29s
IHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRp
b24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBzaG91bGRUaHJvd0V4Y2Vw
dGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsK
ICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNm
NTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcuLjNhMTZhMmNjMzk0NGM0MjExNDUz
OThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9p
ZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1cnJlbnRJVFBTdGF0ZSAhPSBJVFBTdGF0
ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBhcHBXYXNMaW5r
ZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lv
bkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNs
ZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUoKSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsKICAgICBpdHBRdWV1ZSgpLT5kaXNwYXRj
aChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJZGVudGlmaWVyID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCldIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCmluZGV4
IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBhZmQ5ODBmN2UuLjE0ZTdjYzI1YjIwMjY4
YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAtNjQsNyArNjQsNyBAQCB2
b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0
aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRo
aW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRv
IGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsK
LSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24p
KQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SW5pdGlhbGl6ZVdlYktpdDJNYWlu
VGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1bkluaXRpYWxpemF0aW9uQ29kZSgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaFN5bmMo
W10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGJhYTAxMjU3MDc3
N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1MmFkYzAxN2NlMjcwNzUxOTFmMTM3OTlk
MmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RL
QWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzJik7CiAgICAgdmlydHVhbCBib29s
IGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3RlZDoKQEAgLTEzNSwxMCArMTM0LDcgQEAg
dm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBUaGUgaG9zdCBwcm9jZXNzIG1heSBub3Qg
aGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEgY29tbWFuZCBsaW5lIGFwcCksIHNvIGRv
bid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIo
cGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKICAgICAKLSAgICBkZWxlZ2F0ZS5n
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJh
bWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Cisg
ICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVu
dFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmll
cihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggY2I3MjQwZDg1ZDI1ZTE3MzFjM2Q0
NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2NTI3MmMxY2M3Yjc3OTRmYWUzMjQ4MDA1
ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1IEBAIGJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRC
dW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKTsKIH0KIAot
Ym9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1
aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYg
YmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9IHBhcnNlSW50ZWdlcjx1aW50MzJfdD4o
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1z
ZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJzaW9uID0gdmVyc2lvbi52YWx1ZV9vcigw
KTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUoKTsKLX0KKyAgICBzaXplX3QgbGVuZ3Ro
ID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKG1f
aW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsICZsZW5n
dGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlvckRhdGEpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPT0gYmVoYXZpb3JzLnN0b3JhZ2VMZW5n
dGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlvcnMuc3RvcmFnZSgpLCBiZWhhdmlvckRh
dGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJp
ZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsKLSAgICBhdXRvIGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1l
c3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVyLW92ZXJyaWRlIik7Ci0gICAgaWYgKGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAgICAgIGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpID8g
TGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyA6IExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAgIGVsc2UKLSAgICAgICAgbGlua2VkT25P
ckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRiYzRkMjZkOTIyZmY3NTE5OTEuLmY4M2Qw
MWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDQsMTMg
KzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hM
aXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
CiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKIHsKLSAgICBzdGF0
aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxp
bmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRJTURiQ1NTT01WaWV3U2Nyb2xs
aW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOwogICAgIHJldHVybiAh
cmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAgYm9vbCBkZWZhdWx0QWx0ZXJuYXRlRm9y
bUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlV2hlZWxM
aXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogewotICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRB
bGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBkZWZhdWx0QXBw
bGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRp
YyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhBcHBs
aWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgIHN0YXRpYyBib29sIG5ld1NESyA9
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAgICAgcmV0dXJuICFuZXdTREs7CiAjZWxz
ZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMgc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcg
dGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThmNjczZjg4Li4yZDJjYTcwMWM5MDkyNjEz
Zjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VS
ZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVs
b2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQyNGViMGRkOGZjLi42
NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYzZjI3NzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDk4LDgg
KzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsKIAogKyAodm9p
ZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiB7Ci0gICAgc2V0QXBw
bGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nKTsKKyAgICBkaXNhYmxlQWxs
U0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUwOCw3IEBAICsgKHZvaWQpX3NldExpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAKICsgKHZvaWQpX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1l
cmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFi
bGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAKICsgKHZvaWQpX3NldENhcHRpdmVQb3J0
YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4M2Y0ZmMy
ODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTguLmFiMDc0Y2I0YjMzMTA0ZjViODk3YWU5
Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgLSAoQk9PTClfaXNWYWxpZAog
CiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFBpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOwogICAgIHJldHVy
biBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwogfQogCiBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
czsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Niw3
ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRl
bygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1l
cyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKQEAgLTM0
NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wg
KnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0
aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29s
ICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmll
dyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRp
ZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQ
cm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0
b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25z
Rm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzKSkKICAgICAgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJS
ZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3JlICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVAIiwgcmVsYXRlZFdlYlZpZXcsIFtyZWxh
dGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0sIFtfY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAgICAgW19jb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2xdOwpAQCAtMzY4LDcgKzM2OCw3IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3Ig
PSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gZGVmYXVsdEFsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAg
X2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0KTsKIAogI2lmIEhBVkUo
VUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBOTzsKQEAg
LTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxl
VVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlld10pOwogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQobGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQ
SSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXREZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25Q
ZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEh
W19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAtNTcwLDcgKzU3MCw3
IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVy
ZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2UoW19jb25maWd1cmF0
aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZV0pOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0KFtf
Y29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodF0pOwogCi0gICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJr
c0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKXJlbG9hZAogewogICAgIFRI
Uk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBy
ZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZp
b3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4
cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0
aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29u
ZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKICAg
ICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFz
bmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewor
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAg
IGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUwMmIwZTVmNjEyYzNhZTcxZmY1ZDU5Yi4u
MTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xpZnREZWxheSB0b0Ry
YWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGRE
ZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiB7CiAjaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVjaWRlc1BvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1cm4gc2hvdWxkRGVjaWRlOwogI2Vsc2UK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9ICFfYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0g
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJB
Y3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvOwogICAgIGVsc2UKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgzOTkyOGRhZTgxMmYwNmNiMjgyOGMyMjM2
NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1MTE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopbm9u
UGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5p
dFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQog
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9uIGZvcm1hdDpAIkNh
bGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBpcyBub3Qgc3VwcG9ydGVkLiJdOwogICAg
IAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MDgxOWIxYzVmOWZmYjAxZTE0
YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3OWRjNjFkYzJkNTQ0MTliMzZjNTliMzhm
MmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJRWRnZUluc2V0cylfY29udGVudEluc2V0
c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwogCiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1
dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cykp
IHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewog
ICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywg
dHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVu
IHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9u
IHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1
dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkxZThhNTlhY2U5ODBhMTFkZjAzMWQyMjc0
NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYyMTZlYjdkMjRhNGYyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTExODYs
NyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJfZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnCiAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93
ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFn
Z2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRl
RGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThmNTVlZDVkMjgwZGU0MTUxZi4uNjU5NDAy
M2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIC0gKHZvaWQpaW5zcGVjdG9yV0tX
ZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKICAgICAgICAgcmV0
dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9u
czsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAg
ICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7
CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2Yz
MzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIyMzIzYTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcgKzIxNiw2IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwgIWNsaWVudElkZW50
aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgpIDogKl9OU0dl
dFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVz
c2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIsIFdlYkNvcmU6OmFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGstdmVyc2lvbiIs
IFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCkuZGF0YSgpKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJw
cm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vzcy1uYW1lIiwg
W1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhTdHJpbmddKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJz
ZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsyMjYsOCBAQCB2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9mZChib290
c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RERVJSX0ZJTEVOTyk7CiAgICAgfQogICAg
IAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSBsaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIsICps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpB
ZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0
KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3JzIiwgc2RrQmVoYXZpb3JzLnN0b3JhZ2Uo
KSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOwogCiAgICAgYXV0byBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRl
KG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFmOWE3MWU0OGZiNTgxOGVjZWM5NjBlZmUx
MTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYxODRkOTU0MzZmYjRmMTVkNmY1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhh
c1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisgICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9u
TWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWJmY2M4YjQ1OTY0Njc1OGJhYzMyYjcz
NTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2NDg0NWM2ODY2NjQ1NTlhZjMxZmExYjhi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzQ5LDcg
KzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIH0KIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKKyAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZl
cnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCkBAIC0yNjY3
LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYgKCFtX2hhc1VwZGF0ZWRSZW5kZXJpbmdB
ZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKICNlbHNlCiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNzdjNGJlNzk0M2QxYjAyNDIyZTc2NzYy
NzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAgICAgYm9vbCBpc1NhZmFyaSA9
IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCiAgICAgICAgIGlm
IChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgICAgICAgICAgZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlmCiAgICAgfSk7CiAKQEAgLTI3OSw3ICsy
NzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgdXBkYXRlQmFja0ZvcndhcmRDYWNoZUNh
cGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2VzcykpIHsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRE
YXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpkZWZh
dWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC0xMTU0LDcgKzEx
NTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogCiAgICAgYm9vbCBlbmFibGVQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2UtPnByZWZlcmVuY2VzKCkucHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5h
dmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkg
JiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKICAgICAgICAgZW5hYmxlUHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNzA0NTBhOTViYTZlOGE0OWVl
NWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0NGQ2ZjMyNmIwOTRjYTI0Y2QzZjU1MWM3
ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzUmVhY2hlZFByb2Nl
c3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6
OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5U
aHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFko
UnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5
KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFp
bigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9v
cDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNl
bHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDNiNDY3ZjQ1Yjk4MDNiNjAz
ZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFlNDljMzIyZjViZmIwMjg3NmNlNDJkNDNj
YzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIKICAgICBbc2Vs
ZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAgW19maXhlZENsaXBw
aW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAg
ICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFj
dGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBv
YmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERp
ZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAotICAg
IGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVL
ZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3Rl
KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAgICAgICAgIGNsYXNz
X2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpLCByZWludGVycHJl
dF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRo
b2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBz
ZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEwMWEuLmQxODQ1N2Mz
MzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODEy
Nyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVzCiAgICAgICAgIHJl
dHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdEhh
c1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC05ODgzLDcgKzk4ODMsNyBAQCBz
dGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNo
YXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CiAKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09u
TWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKSkgewogICAgICAgICBpZiAoV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc05v
Z2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0
OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25U
b0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkg
ewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzUG9ja2V0Q2l0eSgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyNjk0
NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRVNQTkZhbnRh
c3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2NzE1NDM+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRleCA3ODFkMzZlZDhhMWVmNjJhYmE1ZDUw
MWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2ZWE3ZTgxY2JjMjk2MDQ2NjhiMzQ0NmMw
MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KQEAg
LTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMpX3N5c3RlbUNvbnRlbnRJbnNldAogICAg
IC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQu
IFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hl
biB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2Fm
ZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNv
bmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJ
U2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKKyAgICBpZiAobGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VUlTY3JvbGxWaWV3RG9l
c05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudElu
c2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1l
bnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9hcmRC
b3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFiN2Q5ZjNlMDc5NjE0ZTc4YzZjNDc5Li4w
MWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0MzNmY2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAt
ODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAgaWYgKCsrX3N0YXJ0Q291bnQgPiAxKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkp
CiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOwogfQogCkBAIC05Miw3ICs5Miw3IEBA
IC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291bnQgfHwgLS1fc3RhcnRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQog
ICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBlMzI4YjEzZjE1
OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZlMTM2NjYwZTExNzFlYTQ0YjAxMmMxZjY2
MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAgc3RhdGljIGJvb2wgZGVza3RvcENs
YXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FNYWlu
U2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hvdWxkUmVjb21tZW5k
RGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAm
JiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9wQ2xhc3NCcm93c2lu
Z1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IEln
bm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAg
ICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVn
dWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAv
LyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMg
U0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGlu
ZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdL
V2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVs
ZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBhNjFlZjgyYmJhY2U2MWE2NzMzNjY3MDI2
OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5MmY5MmJjZjJkNmUyODJlYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVn
YXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZyYW1lVmlldzooV2ViRnJhbWVWaWV3ICop
ZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoTlNVSW50ZWdlcil3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlmICghbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVs
dCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1
cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJuIFdlYkRyYWdEZXN0
aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0KaW5kZXggZTI0N2E4ZTJkNTZk
MGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZjY2ZlZGYzN2E3Y2NhOWQ3MWMwNGFlNmZi
ZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25s
b2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgYm9vbCBzaG91bGRDYWxsT25OZXR3b3Jr
VGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIGJvb2wgaXNPbGRFcHNv
blNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29uU29mdHdh
cmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgc3RhdGljIGJvb2wgaXNP
bGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29u
U29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkKTsK
ICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlcjsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUwZTllYzAxNTc2MDg5NTU1ZGFjLi40NjI1
MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDczMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtMTA4LDcgKzEwOCw3IEBA
ICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFiYXNlPj4gZGF0YWJhc2U7CiAgICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4gewot
ICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdlYkljb25E
YXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRhdGFiYXNlV2FybmluZykpCiAgICAgICAg
ICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaXMgbm90
IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhh
bmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVs
ZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQoKSA9IGFkb3B0TlMoW1tXZWJJY29uRGF0
YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KaW5kZXggZGQx
Yjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJmODQ1YS4uNzU0ZWI2NjczZGVlOTllNGEx
YmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAg
LTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7
CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s7CiB9
CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVy
ZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0
ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRUaGVTZWNy
ZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlID0gV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKSAmJiAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2Np
ZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93
V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0KIApAQCAtNzEsMjAgKzcxLDIwIEBAIGJv
b2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
KCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVu
dCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0UmVxdWlyZXNVc2Vy
R2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRo
YXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3Vs
ZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
KTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiB9CiAK
IGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewogICAgIC8vIEZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVudGlsIGFwcHMgYXJlIHJlYnVpbHQgd2l0
aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdElu
TGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYlNRTERpc2FibGVk
QnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJldHVybiB3ZWJTUUxFbmFibGVkOwogfQog
CkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVk
KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
KTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMjA4
LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkK
IAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxp
ZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
azsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydElu
dmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVlbExpc3RlbmVyc0Fz
RGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVm
YXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0QWxsb3dz
V2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFiOTk0NTc1MmRhOTlhODExZjkuLjBjYzE3
ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzOTEsNyArMTM5MSw3IEBAIC0odm9pZClf
aW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBMQVRGT1JNKElPUykKIHN0YXRpYyBib29s
IG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBuZWVkc1F1
aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVlUG9zdGFsZVF1aXJrcyk7CiAgICAgcmV0
dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>
<flag name="commit-queue"
          id="485766"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457223</attachid>
            <date>2022-04-10 19:08:41 -0700</date>
            <delta_ts>2022-04-10 19:28:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410190840.patch</filename>
            <type>text/plain</type>
            <size>98917</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi5jMjgwZWNkMTA4OWJmYTM5
NTEzZGFhZDUyZWJmZTdmMWU2YTMyODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIFZlY3Rv
ciB3aXRoIGlubGluZSBjYXBhY2l0eSBpbiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjcmVh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA4Yjc1YjhlNDQwMThmYmY1N2M4MTkyM2Q5MWZmNDY4NDUzNDU1Y2E2Li43N2Ex
NzNlMTFlY2JlMWJlOGUxMDI5MTUwNjNlOGM2NTBmNmRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBA
CisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3dpdGNoIHRvIGBkeWxkX3Byb2dyYW1fc2RrX2F0X2xlYXN0YCwgd2hpY2ggY29ycmVj
dGx5IGhhbmRsZXMgU0RLCisgICAgICAgIGNoZWNrcyBmb3IgYmluYXJpZXMgYnVpbHQgZm9yIG9u
ZSBTREsgcnVubmluZyBvbiBhbm90aGVyIHBsYXRmb3JtCisgICAgICAgIChlLmcuIGlPUyBhcHBz
IHJ1bm5pbmcgb24gbWFjT1MpLgorCisgICAgICAgIEJlY2F1c2UgYGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3RgIGlzIGJhc2VkIG9mZiBtb3JlIHRoYW4gYSBzaW1wbGUKKyAgICAgICAgaW50ZWdl
ciBjb21wYXJpc29uIGxpa2Ugb3VyIG9sZCBTREsgY2hlY2ssIHdlIG1vdmUgaXQgaW50byB0aGUK
KyAgICAgICAgYXBwbGljYXRpb24gcHJvY2VzcywgYW5kIGp1c3QgdHJhbnNtaXQgdGhlIGNvbXB1
dGVkIGJlaGF2aW9ycyB0bworICAgICAgICBzdWJwcm9jZXNzZXMuCisKKyAgICAgICAgUmVtb3Zl
IGZ1bmN0aW9ucyB0aGF0IGV4cG9zZS90cmFuc21pdCBwbGF0Zm9ybS1zcGVjaWZpYyBTREsgdmVy
c2lvbnMsCisgICAgICAgIHNvIHRoYXQgdXNhZ2UgaXNuJ3QgYWNjaWRlbnRhbGx5IHJlaW50cm9k
dWNlZC4KKworICAgICAgICBSZS1mcmFtZSB0aGUgbmFtaW5nIG9mIG91ciBsaW5rZWQtb24tb3It
YWZ0ZXIgY2hlY2tzIGFzIGJlaW5nIGFib3V0CisgICAgICAgIHNwZWNpZmljIGJlaGF2aW9ycyBp
bnN0ZWFkIG9mIFNESyB2ZXJzaW9ucy4KKworICAgICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAg
ICAgKFdURjo6V29yZFR5cGU+OjpzZXRBbGwpOgorICAgICAgICBBZGQgYHNldEFsbGAsIHdoaWNo
IHNldHMgYWxsIHRoZSBiaXRzIGluIHRoZSBCaXRtYXAsIGxpa2UgRmFzdEJpdFZlY3RvciBoYXMu
CisgICAgICAgIEV4cG9zZSB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGluIGJ5dGVzIHRvIG1ha2Ug
dHJhbnNtaXR0aW5nIHRoZSBCaXRtYXAgc2ltcGxlLgorCisgICAgICAgICogd3RmL2NvY29hL0xh
bmd1YWdlQ29jb2EubW06CisgICAgICAgIChXVEY6OmNhbk1pbmltaXplTGFuZ3VhZ2VzKToKKyAg
ICAgICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9k
eWxkU1BJLmg6CisgICAgICAgIEJlY2F1c2Ugb2YgdGhlIG5hdHVyZSBvZiBkeWxkX2J1aWxkX3Zl
cnNpb25fdCB2YWx1ZXMsIHdlIGNhbid0IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZSB0aGVtLiBU
aHVzLCBtYWludGFpbiBhIGZhbGxiYWNrIHRvIHRoZSBsZWdhY3kgcGxhdGZvcm0tc3BlY2lmaWMK
KyAgICAgICAgU0RLIGNoZWNrcyBmb3IgdXNlIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCB0aGUgaW50
ZXJuYWwgU0RLLCBvciB3aGVuCisgICAgICAgIGJhY2stZGVwbG95aW5nIHRvIG9sZGVyIFNES3Mg
dGhhdCBkb24ndCB5ZXQgaGF2ZSB2YWx1ZXMgZm9yIG5ld2VyIHZlcnNpb24gc2V0cy4KKworICAg
ICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAg
ICAgIChkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RG
Ojpjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRC
ZWhhdmlvcnNWYWx1ZSk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRCZWhhdmlvcnMpOgorICAg
ICAgICAoV1RGOjpzZXRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmRpc2FibGVBbGxTREtBbGln
bmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKToKKyAgICAgICAgKFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6c2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlcik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg6CisKIDIwMjItMDQtMDggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjU4Ni4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNjUxZDhjZGExMmY2NmNiYzZkYTg5MTAzNGFjZDRmYjVhNGM4OWQ3Li4xNTZjMDIx
YjE0MDM5MzVjMDRmODkzOGNhYTEwMzg5MjA4YzU1NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIg
Y2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3cpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpuZWVkc1dlQ2hhdFNjcm9s
bGluZ1F1aXJrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkT21pdEhU
TUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdp
bik6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb3RQ
cmVmaXhlZEZvcmJpZGRlbkZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OnNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5n
LgorCisKIDIwMjItMDQtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oKSB0byByZXR1cm4g
YSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzk4OWE0OTBjMWNm
NDhkYTUyYWE4YjA4NTZkNzIxODcwODZmZjQ1ZC4uMTJhYTgxMWViZmZmNjJhMzgzNzJlNzNjZGYw
NDdjNjk1OTQ0MzgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMi0wNC0xMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCAidmVy
c2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0
Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0F1
eGlsaWFyeVByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0
OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpn
ZXRDbGllbnRTREtWZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6WFBDU2Vydmlj
ZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6
CisgICAgICAgIEluc3RlYWQgb2YgdHJhbnNtaXR0aW5nIHRoZSBTREsgdmVyc2lvbiBhbmQgb3Zl
cnJpZGUgc3RhdGUgaW4gdGhlIGJvb3RzdHJhcAorICAgICAgICBtZXNzYWdlLCBqdXN0IHNlbmQg
dGhlIGNvbXB1dGVkIHNldCBvZiBiZWhhdmlvcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwpOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZGV0ZXJtaW5lSVRQU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVy
ZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwOgorICAgICAgICAoV0tQYWdlUmVsb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExp
bmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAoK1tXS1Byb2Nl
c3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGluZ0FueVhI
UkhlYWRlckZyb21GaWxlVVJMcyk6CisgICAgICAgIChzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVmYXVsdFNo
b3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFT
dG9yZSBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06
CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3
UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklz
S25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tT
dHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dzaW5nUmVj
b21tZW5kZWQpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXQgbGF5
ZXIgYmFja2luZyBzdG9yZSBidWZmZXJzIGludG8gdGhlIHBlci1SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIElPU3VyZmFjZVBvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5Njc5NzFm
YWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1Li45NmY2NzhmNTVhMGM5NjIzMDhlODhj
MDQ2NjkzNDhiMTAzYmU1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0
ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2Fk
Lm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29ya1RocmVhZCk6CisgICAgICAgICogTWlz
Yy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0cmlj
dEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJ
bnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVs
TGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRX
aGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1ZVBvc3RhbGVRdWlya3MpOgorICAgICAg
ICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOCAgRWxsaW90dCBXaWxsaWFtcyAg
PGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBBdm9pZCB0YXJnZXRpbmcgMzItYml0
IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNU
eXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYyNzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhh
NGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1OTgzZTE2MTgzODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
dm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVuZ3RoUXVpcmsoKQogewotICAgIHJldHVy
biAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFR5cGVkQXJyYXlBUElR
dWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWlyayk7CiB9CiAjZWxzZQogaW5saW5lIHN0
YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJheUxlbmd0aFF1aXJrKCkgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVy
TWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXgg
N2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYy
MGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBAQCBib29sIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJzaW9uT2ZMaW5rVGltZUphdmFTY3JpcHRD
b3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25PZkxpbmtUaW1lSmF2YVNjcmlw
dENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3Vw
cG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworICAgICAgICByZXR1cm4gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJ
bml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAgcmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdk
YS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCkBAIC02MTcsNyArNjE3LDcgQEAg
dm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpCiB2b2lkIFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2Jq
Qyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdo
ZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICByZXR1cm47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRl
eCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQx
MzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRo
ZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKICAgICAgICAgaWYgKHVzZUxlZ2FjeURy
YWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhkMWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3
ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMxNzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxs
aW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rh
c2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDU5
NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAyZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5
MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIGlubGluZSBz
dGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0byBidW5kbGVJRCA9IENGQnVuZGxlR2V0
SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlE
CiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENGU1RSKCJjb20ua3BnYW1lLlBva2VyQnJv
cyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAgICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdR
dWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQml0bWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBiOGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2
Y2Q0NDNmYmQ5YTIyNzBhLi5lZWY0ZDBmYmRmMWM1NzFhZmJhYmFkZjNmZjk5NDE1ZDhlNzY3YzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHNpemVf
dCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0OwogICAgIGNvbnN0ZXhwciB2b2lkIGNs
ZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgpOworICAgIHZvaWQgc2V0QWxsKCk7CiAg
ICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAgaW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhz
aXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXplX3QgY291bnQoc2l6ZV90IHN0YXJ0ID0g
MCkgY29uc3Q7CkBAIC0xNDEsNiArMTQyLDggQEAgcHVibGljOgogICAgIFdvcmRUeXBlKiBzdG9y
YWdlKCkgeyByZXR1cm4gYml0cy5kYXRhKCk7IH0KICAgICBjb25zdCBXb3JkVHlwZSogc3RvcmFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAKKyAgICBjb25zdGV4cHIgc2l6ZV90
IHN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkgeyByZXR1cm4gc2l6ZW9mKGJpdHMpOyB9CisKIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3Jk
VHlwZSkgKiA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFw
U2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKQEAgLTI0MCw2ICsyNDMsMTIgQEAgaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xlYXJBbGwoKQogICAgIG1l
bXNldChiaXRzLmRhdGEoKSwgMCwgc2l6ZW9mKGJpdHMpKTsKIH0KIAordGVtcGxhdGU8c2l6ZV90
IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6c2V0QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4
RkYsIHNpemVvZihiaXRzKSk7Cit9CisKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjppbnZlcnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0K
aW5kZXggMzAyMWZlYzA3MTdlZWZhNDI2YTVlN2ViZThiYmM3NjhjZjMzMzdkZi4uYmRjNGJlZDRj
NzRiNzllNmQyM2Y5ZmNlODI2ZTE4NGE5NWVlOGIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5n
dWFnZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5n
TGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0CiBi
b29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCByZXN1
bHQgPSBbXSgpIC0+IGJvb2wgewotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsK
KyAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsKICAgICB9
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcAppbmRleCBjNzE0OTNiNDRhNzIw
YjhmM2RkZDY3NGMyYWYxNDhjNDkxMjM5YWYwLi4yOGM5NzBjYmNmMmVkY2FhMjgwNzQwZWIyZTEy
NjA3YzdjYmU2NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCkBAIC0yNyw1MCArMjcsMTk2IEBACiAjaW5jbHVk
ZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4m
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkKK3N0YXRpYyBib29sIGxpbmtlZEJlZm9y
ZShkeWxkX2J1aWxkX3ZlcnNpb25fdCB2ZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja0lPU1ZlcnNp
b24sIHVpbnQzMl90IGZhbGxiYWNrTWFjT1NWZXJzaW9uKQogewotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiB2ZXJzaW9uOwotICAgIHJldHVybiB2ZXJzaW9uOworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgLy8gZHlsZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzIGNh
bm5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLCBzbyB3ZSBmYWxsIGJhY2sgdG8KKyAgICAvLyB0cmFk
aXRpb25hbCBTREsgdmVyc2lvbiBjaGVja3Mgd2hlbiBidWlsZGluZyBhZ2FpbnN0IGFuIFNESyB0
aGF0CisgICAgLy8gZG9lcyBub3QgaGF2ZSBkeWxkX3ByaXYuaCwgb3IgZG9lcyBub3QgZGVmaW5l
IGEgZ2l2ZW4gdmVyc2lvbiBzZXQuCisgICAgaWYgKHZlcnNpb24ucGxhdGZvcm0gfHwgdmVyc2lv
bi52ZXJzaW9uKQorICAgICAgICByZXR1cm4gIWR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QodmVy
c2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2ZXJzaW9uKTsKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tNYWNPU1ZlcnNp
b24pOworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFj
a0lPU1ZlcnNpb247CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmYWxsYmFja0lPU1ZlcnNpb24p
OworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFja01h
Y09TVmVyc2lvbjsKKyNlbmRpZgogfQogCi12b2lkIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbih1
aW50MzJfdCB2ZXJzaW9uKQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYUFkZGl0
aW9ucy5jcHA+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hQWRkaXRpb25zLmNwcD4KKyNlbHNlCitzdGF0aWMgdm9pZCBkaXNhYmxlQWRkaXRp
b25hbFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpCiB7Ci0gICAgYXBw
bGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKSA9IHZlcnNpb247CiB9CisjZW5kaWYKIAotdWlu
dDMyX3QgYXBwbGljYXRpb25TREtWZXJzaW9uKCkKK3N0YXRpYyBTREtBbGlnbmVkQmVoYXZpb3Jz
IGNvbXB1dGVTREtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICphcHBsaWNhdGlvblNES1ZlcnNpb25P
dmVycmlkZSgpOwotICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Cisg
ICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZpb3JzLnNldEFsbCgp
OworCisgICAgYXV0byBkaXNhYmxlQmVoYXZpb3IgPSBbJl0gKFNES0FsaWduZWRCZWhhdmlvciBi
ZWhhdmlvcikgeworICAgICAgICBiZWhhdmlvcnMuY2xlYXIoc3RhdGljX2Nhc3Q8c2l6ZV90Pihi
ZWhhdmlvcikpOworICAgIH07CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE1
X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzlfMCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xMSkpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9m
YWxsXzIwMTZfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTBfMCwgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlVucHJlZml4ZWRQbGF5c0lubGluZUF0dHJpYnV0ZSk7CisgICAgfQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2Vsc2UKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE0X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2VuZGlmCisKKyAgICBpZiAo
bGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9O
XzExXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpKSB7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9u
SGFuZGxlckNhbGxzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFz
ZVdhcm5pbmcpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAx
OF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMV8zLCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzXzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlz
dGVuZXJzT25Eb2N1bWVudCk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxOF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMl8wLCBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE0KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xsVmlld0RvZXNO
b3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25Jbldl
YlBhZ2VQcm94eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIH0K
KworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucywgRFlM
RF9JT1NfVkVSU0lPTl8xMl8yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0XzQpKSB7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2du
aXplckluc3RhbGxhdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKTsKKyAgICB9CisKKyAgICBp
ZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUpKSB7CisgICAgICAgIGRpc2FibGVC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRi
b3hFeHRlbnNpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJW
aWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3Jlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5v
SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQp
OworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM18yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaXRlU3Bl
Y2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9zcHJpbmdfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM180LCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1
YWdlcyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAyMF9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2
KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbik7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRS
ZXR1cm5pbmdOaWwpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1
aWx0SW5UYWdRdWlyayk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2xhdGVf
ZmFsbF8yMDIwX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE0XzIsIERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTYpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9zcHJpbmdfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF81LCBEWUxEX01B
Q09TWF9WRVJTSU9OXzExXzMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXND
bGFzc1Byb3BlcnR5KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6Tm9XZUNoYXRTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlNoYXJlZE5ldHdvcmtQcm9jZXNzKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QmxhbmtzVmlld09uSlNQcm9tcHQpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVm
YXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0Jl
Y29tZU5vbkJsb2NraW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDIxX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTJfMDApKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6Ok51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QXBwbGljYXRpb25D
YWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3Jv
dGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTVfNCwgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8zKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyk7CisK
KyAgICBkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKKwor
ICAgIHJldHVybiBiZWhhdmlvcnM7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPExpbmtlZE9u
T3JBZnRlck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxTREtBbGlnbmVkQmVoYXZpb3JzPiYgc2RrQWxpZ25lZEJlaGF2aW9yc1Zh
bHVlKCkKIHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZT4gbGlua2VkT25PckFmdGVyOwotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4+IGJl
aGF2aW9yczsKKyAgICByZXR1cm4gYmVoYXZpb3JzLmdldCgpOwogfQogCi12b2lkIHNldExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+
IGxpbmtlZE9uT3JBZnRlcikKK2NvbnN0IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRC
ZWhhdmlvcnMoKQogewotICAgIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKSA9IGxpbmtl
ZE9uT3JBZnRlcjsKKyAgICBhdXRvJiBiZWhhdmlvcnMgPSBzZGtBbGlnbmVkQmVoYXZpb3JzVmFs
dWUoKTsKKworICAgIGlmICghYmVoYXZpb3JzKQorICAgICAgICBiZWhhdmlvcnMgPSBjb21wdXRl
U0RLQWxpZ25lZEJlaGF2aW9ycygpOworCisgICAgcmV0dXJuICpiZWhhdmlvcnM7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlKCkKK3ZvaWQgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzIGJl
aGF2aW9ycykKIHsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpOwor
ICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdlIHdvdWxkIGFzc2VydCB0aGF0IGBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3JgIGhhZCBub3QKKyAgICAvLyBiZWVuIGNhbGxlZCBhdCB0aGlzIHBv
aW50IChiZWNhdXNlIGl0cyByZXBseSBjb3VsZCBoYXZlIGJlZW4gaW5hY2N1cmF0ZSksCisgICAg
Ly8gYnV0IFdlYlByZWZlcmVuY2VzIHVzZSBpbiBTYWZhcmkgKGF0IGxlYXN0KSBjdXJyZW50bHkg
cHJldmVudHMgdGhpcyBoYXJkZW5pbmcuCisKKyAgICBzZGtBbGlnbmVkQmVoYXZpb3JzVmFsdWUo
KSA9IGJlaGF2aW9yczsKK30KKwordm9pZCBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCkK
K3sKKyAgICBTREtBbGlnbmVkQmVoYXZpb3JzIGJlaGF2aW9yczsKKyAgICBiZWhhdmlvcnMuc2V0
QWxsKCk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhiZWhhdmlvcnMpOwogfQogCi1ib29s
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24pCit2b2lkIGRpc2FibGVBbGxT
REtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXV0byBvdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICpvdmVycmlkZVZhbHVlID09
IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmc7CisgICAgc2V0U0RLQWxp
Z25lZEJlaGF2aW9ycyh7IH0pOworfQogCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9u
QXNJbnRlZ2VyICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpID49IHNka1ZlcnNpb25Bc0ludGVn
ZXI7Citib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgcmV0dXJuIHNka0FsaWduZWRCZWhhdmlvcnMoKS5nZXQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oIGIvU291cmNlL1dU
Ri93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAppbmRleCAwNTU4MjZk
MzM5ODVmYjg0ZjE1MTZjNWIyODE2ODA2Zjk1Yzc0YTEwLi44ZDA2MWRmZTVmOTI5MThkYWJkNjJk
MDg5NmEwMDJhMTIzNDdmMTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKQEAgLTI2LDEyNSArMjYsOTIgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxk
U1BJLmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50
MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFdpdGhQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAotICAgIEZpcnN0V2l0
aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19WRVJT
SU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0g
RFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5
RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0lu
dmFsaWRVUkxzVG9CbGFuayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhv
dXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayA9IERZTERfSU9T
X1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1
dGUgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRz
SW5pdENvbnN0cnVjdG9ycyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhF
eGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZF
UlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJI
ZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0
RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJT
SU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2Jz
Y3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNj
cm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlv
bkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91
dE1vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwK
LSAgICBGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyA9IERZTERfSU9TX1ZFUlNJT05f
MTJfMCwKLSAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBE
WUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0
ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRob3V0VW5j
b25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lPU19W
RVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdERlY2lkZXNQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJl
bnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aE1vZGVy
bkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBG
aXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5k
cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93
SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRo
b3V0SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAot
ICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18yLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0gICAgRmlyc3RUaGF0TWluaW1pemVzTGFu
Z3VhZ2VzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aFNlc3Npb25DbGVh
bnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aEluaXRp
YWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwK
LSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9J
T1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aFdlYlNRTERpc2FibGVkQnlEZWZhdWx0SW5M
ZWdhY3lXZWJLaXQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCi0gICAgRmlyc3RXaXRob3V0TGFC
YW5xdWVQb3N0YWxlUXVpcmtzID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAg
ICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzIs
Ci0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfSU9TX1ZFUlNJT05f
MTRfNSwKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0g
RFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0
eSA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxp
bmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhTaGFyZWROZXR3
b3JrUHJvY2VzcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhCbGFua1Zp
ZXdPbkpTUHJvbXB0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0V2l0aE51bGxP
cmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCi0g
ICAgRmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiAgPSBEWUxEX0lPU19WRVJTSU9O
XzE1XzAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0VGhhdERv
ZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9JT1NfVkVS
U0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5S
ZWRpcmVjdHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzQsCi0gICAgRmlyc3RXaXRob3V0VHlwZWRB
cnJheUFQSVF1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotICAgIEZpcnN0Rm9yYmlkZGlu
Z0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX0lPU19WRVJTSU9OXzE2XzAsCi0jZWxpZiBQTEFURk9S
TShNQUMpCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycyA9IDB4
QTBBMDAsIC8vIE9TIFggMTAuMTAKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9C
bGFuayA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9u
c0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzLAotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9
IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxv
YWRCZWhhdmlvciA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2Vi
SWNvbkRhdGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmly
c3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTQsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3Mg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwK
LSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1Vz
aW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAg
Rmlyc3RXaXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVF
bmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAotICAgIEZpcnN0
VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80
LAotICAgIEZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhy
ZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKLSAgICBGaXJzdFdpdGhX
S1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNiwKLSAgICBGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRoQmxhbmtWaWV3
T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhvdXRD
bGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBG
aXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVy
ZXNUb0JlY29tZU5vbkJsb2NraW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0VGhhdERvZXNOb3REcmFpblRoZU1p
Y3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwK
LSAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVy
dGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzID0gRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMl8zLAotICAgIEZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEzXzAsCi0jZW5kaWYKK2VudW0gY2xhc3MgU0RLQWxpZ25lZEJlaGF2aW9y
IHsKKyAgICBBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nLAorICAg
IEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCwKKyAgICBBdXRob3JpemF0aW9uSGVh
ZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzLAorICAgIEJsYW5rc1ZpZXdPbkpTUHJvbXB0LAorICAg
IENvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rLAorICAgIERhdGFVUkxGcmFnbWVudFJlbW92YWws
CisgICAgRGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3LAorICAgIERl
ZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERlZmF1bHRzVG9Q
YXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERpc2FsbG93c1NldHRpbmdBbnlY
SFJIZWFkZXJGcm9tRmlsZVVSTHMsCisgICAgRG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMsCisgICAgRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiwKKyAgICBEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCwKKyAgICBEcm9wVG9OYXZpZ2F0ZURp
c2FsbG93ZWRCeURlZmF1bHQsCisgICAgRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25I
YW5kbGVyQ2FsbHMsCisgICAgRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcywKKyAgICBFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yLAorICAgIEZvcmJp
ZHNEb3RQcmVmaXhlZEZvbnRzLAorICAgIEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiwKKyAg
ICBIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzLAorICAgIEluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbiwKKyAgICBMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxs
YXRpb24sCisgICAgTGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0LAorICAgIE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHksCisgICAgTWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjaywKKyAgICBNaW5pbWl6ZXNMYW5ndWFnZXMsCisgICAgTW9kZXJu
Q29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0LAorICAgIE5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAs
CisgICAgTm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdywKKyAgICBOb0lNRGJDU1NP
TVZpZXdTY3JvbGxpbmdRdWlyaywKKyAgICBOb0xhQmFucXVlUG9zdGFsZVF1aXJrcywKKyAgICBO
b01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyaywKKyAgICBOb1Bva2VyQnJvc0J1aWx0SW5U
YWdRdWlyaywKKyAgICBOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93T3BlblF1
aXJrLAorICAgIE5vVHlwZWRBcnJheUFQSVF1aXJrLAorICAgIE5vVW5jb25kaXRpb25hbFVuaXZl
cnNhbFNhbmRib3hFeHRlbnNpb24sCisgICAgTm9XZUNoYXRTY3JvbGxpbmdRdWlyaywKKyAgICBO
dWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzLAorICAgIE9ic2VydmVzQ2xhc3NQcm9w
ZXJ0eSwKKyAgICBQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywKKyAgICBQcm9jZXNzU3dh
cE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiwKKyAgICBSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8sCisgICAgUmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMsCisgICAgU2Nyb2xsVmlld0NvbnRlbnRJ
bnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMsCisgICAgU2VuZHNOYXRpdmVNb3VzZUV2ZW50cywK
KyAgICBTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwKKyAgICBTaGFyZWROZXR3b3JrUHJvY2VzcywK
KyAgICBTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0LAorICAgIFNuYXBzaG90
QWZ0ZXJTY3JlZW5VcGRhdGVzLAorICAgIFN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQVBJLAorICAgIFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycywKKyAgICBTdXBw
b3J0c2lPU0FwcHNPbk1hY09TLAorICAgIFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFt
ZSwKKyAgICBUaW1lclRocmVhZFNhZmV0eUNoZWNrcywKKyAgICBVSVNjcm9sbFZpZXdEb2VzTm90
QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSwKKyAgICBVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUsCisgICAgV2ViSWNvbkRhdGFiYXNlV2FybmluZywKKyAgICBXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0LAorICAgIFdLQ29udGVudFZpZXdEb2VzTm90
T3ZlcnJpZGVLZXlDb21tYW5kcywKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsLAorCisgICAgTnVtYmVyT2ZCZWhhdmlvcnMKIH07CiAKLVdURl9FWFBPUlRfUFJJVkFURSBi
b29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKK3VzaW5nIFNES0FsaWduZWRCZWhhdmlv
cnMgPSBCaXRtYXA8c3RhdGljX2Nhc3Q8c2l6ZV90PihTREtBbGlnbmVkQmVoYXZpb3I6Ok51bWJl
ck9mQmVoYXZpb3JzKSwgdWludDY0X3Q+OwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRB
cHBsaWNhdGlvblNES1ZlcnNpb24odWludDMyX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0
IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRCZWhhdmlvcnMoKTsKK1dURl9FWFBPUlRf
UFJJVkFURSB2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyk7
CiAKLS8vIERvIG5vdCB1c2UgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZGlyZWN0bHk7IGFkZCBh
IHZlcnNpb24gdG8gdGhlIGVudW0gYWJvdmUsCi0vLyBhbmQgdXNlIGxpbmtlZE9uT3JBZnRlcigp
IGF0IGNhbGwgc2l0ZXMuCi1XVEZfRVhQT1JUX1BSSVZBVEUgdWludDMyX3QgYXBwbGljYXRpb25T
REtWZXJzaW9uKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9ycygpOwogCi1lbnVtIGNsYXNzIExpbmtlZE9uT3JBZnRlck92ZXJyaWRlIDogdWlu
dDhfdCB7Ci0gICAgQmVmb3JlRXZlcnl0aGluZywKLSAgICBBZnRlckV2ZXJ5dGhpbmcKLX07Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9w
dGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVyT3ZlcnJp
ZGUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3IpOwogCiB9CiAKLXVzaW5nIFdURjo6c2V0QXBwbGljYXRp
b25TREtWZXJzaW9uOwotdXNpbmcgV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb247Ci11c2luZyBX
VEY6OkxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNpbmcgV1RGOjpzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBX
VEY6OmxpbmtlZE9uT3JBZnRlcjsKLXVzaW5nIFdURjo6U0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uOwordXNpbmcgV1RGOjpkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9yczsKK3VzaW5nIFdURjo6ZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9yczsKK3Vz
aW5nIFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yOwordXNpbmcgV1RGOjpTREtB
bGlnbmVkQmVoYXZpb3I7Cit1c2luZyBXVEY6OnNka0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBX
VEY6OlNES0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OnNldFNES0FsaWduZWRCZWhhdmlv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDM0Njg5OGMyODU2ZDJmN2Jl
NzgwNzFlNjgyYzEyZTE3YjM1NWNjZGUuLmJjYmY0MGNiMDFmZWIyODExZWU3NjM0MTJkNjAyMGU1
N2VlNzg3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBAIC0xMjMsNiArMTIz
LDEzIEBACiAKICNlbHNlCiAKK3R5cGVkZWYgdWludDMyX3QgZHlsZF9wbGF0Zm9ybV90OworCit0
eXBlZGVmIHN0cnVjdCB7CisgICAgZHlsZF9wbGF0Zm9ybV90IHBsYXRmb3JtOworICAgIHVpbnQz
Ml90IHZlcnNpb247Cit9IGR5bGRfYnVpbGRfdmVyc2lvbl90OworCiAjZGVmaW5lIERZTERfSU9T
X1ZFUlNJT05fM18wIDB4MDAwMzAwMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl80XzIgMHgw
MDA0MDIwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzVfMCAweDAwMDUwMDAwCkBAIC0xNDQs
MTAgKzE1MSwxMyBAQAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE1XzQgMHgwMDBmMDQwMAog
I2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE2XzAgMHgwMDEwMDAwMAogCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTAgMHgwMDBBMEEwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzExIDB4MDAwQTBCMDAKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMiAw
eDAwMEEwQzAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMgMHgwMDBBMEQwMAor
I2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzXzQgMHgwMDBBMEQwNAogI2RlZmluZSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBFMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNF80IDB4MDAwQTBFMDQKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNSAweDAwMEEwRjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSAweDAw
MEEwRjAxCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCAweDAwMEEwRjA0CkBA
IC0xNjEsNiArMTcxLDc1IEBACiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCisvLyBCZWNhdXNlIGl0
IGlzIG5vdCBwb3NzaWJsZSB0byBmb3J3YXJkLWRlY2xhcmUgZHlsZF9idWlsZF92ZXJzaW9uX3Qg
dmFsdWVzLAorLy8gd2UgZm9yd2FyZC1kZWNsYXJlIHBsYWNlaG9sZGVycyBmb3IgYW55IG1pc3Np
bmcgZGVmaW5pdGlvbnMsIGFuZCB1c2UgdGhlaXIgZW1wdHkKKy8vIHZhbHVlIHRvIGluZGljYXRl
IHRoYXQgd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gYW50aXF1ZSBzaW5nbGUtcGxhdGZvcm0gU0RL
IGNoZWNrcy4KKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucworI2RlZmluZSBk
eWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTdfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTdfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfc3ByaW5nXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAxOF9vc192
ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisK
KyNpZm5kZWYgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHls
ZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3Nf
dmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9z
cHJpbmdfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIwX29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxk
X2xhdGVfZmFsbF8yMDIwX29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAw
LCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3NwcmluZ18yMDIxX29zX3ZlcnNpb25z
CisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjFfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVy
c2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDIxX29z
X3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3Nwcmlu
Z18yMDIyX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCiB1aW50MzJf
dCBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Citib29sIGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3QoZHlsZF9idWlsZF92ZXJzaW9uX3QpOwogCiBXVEZfRVhURVJOX0NfRU5ECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
OGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNhMzFkYjYwNi4uNWZhNjEyZjVmODBkZWNm
NjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZlbiB0aGF0IFdpbmRvd1Byb3h5IGlzIHRo
ZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5IG1vZGUgZnVuY3Rpb25zLCBpdCdzIGhh
cmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlPUyBhbmQgbWFjT1MgYXBwcyBkb24ndCBh
Y2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IsIHNvIHdlIGtlZXAgaXQgZm9yIHRo
ZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWlyayA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldp
bmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKaW5kZXgg
MjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3ZjJhMzVlMC4uY2E3OTM4ZTc5NDUwOGM3
YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEpTV2luZG93UHJv
eHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYgZG9tV2luZG93KQogICAgICAgICB3aW5k
b3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBsb2NhbFdpbmRv
dywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IHRydWU7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CisgICAgICAg
IGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsKICNlbmRpZgogICAgICAg
ICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhhdmVJbml0aWFsaXplZFNlY3VyaXR5T3Jp
Z2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAgICAgICAgIGxvY2FsV2luZG93LnNldEFz
V3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyZDgxZjE0NWFiMDVlOWI2YzBj
NTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQyZTUzYTI2MDkyNThiNjY2OTVjZTZjNzI2
ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
QEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCiAgICAgICAgIHJldHVybiAh
bV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3
ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lubGluZUF0dHIpOwotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFVucHJlZml4ZWRQbGF5c0lubGluZUF0
dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBjMzYwOWEy
MjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjLi5kYzg2OTk2NjA5ZWFjNDc3ODdkOGVi
NTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbmVlZHNQ
cmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TW92aVN0YXJQbHVzQ09SU1ByZWZs
aWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xp
Y3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9s
aWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZsaWdodFF1aXJrID0gSU9TQXBwbGljYXRp
b246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAo
bV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8
IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CiAj
ZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODkyMDNhYWVhZGExZDMwM2IyMzY5NDU4ZDQ3
MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0MjRlYjMzZjhjYjhjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIGJvb2wgUXVpcmtzOjpuZWVkc0Z1bGxz
Y3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJvb2wgUXVpcmtzOjpuZWVkc1dlQ2hhdFNj
cm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG5l
ZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRX
ZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGljYXRpb246OmlzV2VjaGF0KCk7CisgICAg
cmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0
aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTcx
Niw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNv
bnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29sIHNob3VsZE9t
aXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKICAgICByZXR1cm4gc2hvdWxk
T21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXM7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjQ5NDIy
N2FkNTRiMjY0NGIyMGYyNWZjYzMzMWExOTljMTRkNGI4MS4uNjhlNTllMmE3MjMxZWZmMmJjYmFj
YjViYWY4MjliODIyZjE1MTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzVW5pcXVlT3Jp
Z2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8j
b3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBpZiAodXJsLmhhc1NwZWNpYWxTY2hlbWUo
KQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpCisgICAg
ICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKQogICAgICAgICB8fCB1cmwucHJv
dG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBw
bGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygieC1hcHBsZS1xbC1pZDIiKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4OTA1M2Y5Mjg1Zjk4ODZmYTU5Yjg4N2E3
MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVhYzQyYzdjOTNmZGMyMzAxYjUxOGIzZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTI1MCw5ICsyNTAsOSBAQCBwcml2YXRl
Ogogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjaygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gV2ViVGhyZWFkSXNFbmFibGVkKCkgfHwg
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxlZCgpIHx8ICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFpc0luV2ViUHJvY2Vzcygp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRTYWZl
dHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlByb2Nlc3MoKSAmJiAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlD
aGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFmZWJmNjM2ZDE5MDUyYzI2NTQyMzQyLi5k
OTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAyN2E4MzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBzdHJ1Y3QgRm9udExvb2t1cCB7CiAKIHN0
YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5Gb250KGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0Rm9yYmlk
ZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRzRG90UHJlZml4ZWRGb250cykpCiAgICAg
ICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicpOwogICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBwbGVzeXN0ZW11aWZvbnRzZXJpZiIpCiAg
ICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgIi5zZiBucyBt
b25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYyYTEwNzk4NTdlZTM3OGZjYTM4NDBlZC4u
Y2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZmOGUzNzM4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIHN0YXRpYyBib29sIHNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBITFMgdXNlcyAjIGluIHRoZSBtaWRk
bGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2MjcyMjNiZDcwMmIxOTBkNzRjMDA2YzgxNTJm
MTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5NjQ1N2FlZGFiNTRmOGQ0NjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBA
IC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdG
b3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRBcHBsaWNhdGlvblNE
S1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVy
eXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4ZTlkOGFlMjFlYjBkN2Y5ODllMmFkNWUz
M2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2ZlNzUxNjU2OTMwMWUzNjZmZGU0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKIAogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVh
ZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9y
aXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCisgICAgICAgIGlmIChh
dXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29y
ZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwo
KSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzKSkKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3Jp
emF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVTRShDUkVERU5USUFMX1NUT1JBR0VfV0lU
SF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggN2IwNDJhMzY1M2M1OWVh
MTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIxMzlhNTg4ODE2NGFlMzg1ODg1OTEwOTI4
NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgc3Rh
dGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29uZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Np
b25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29uZmlndXJhdGlvbl07CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0Q2xpZW50Q2VydGlm
aWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKKyAgICBib29sIHByZXZlbnRD
Rk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8
IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAgICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3Jr
Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgyOTg1OTNjMzJjOTVjZTdjNzJkZWI4ZTc3
MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3YmJhZThmOTExZmVlOTAzZjI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTgwLDE0ICsxODAsMTMg
QEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVudGlmaWVyOwogICAg
IFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IGNsaWVudFNES1Zl
cnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJv
Y2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gcHJp
b3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJpZGU7CisgICAgU0RLQWxpZ25lZEJlaGF2
aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFiYWJiZGI0Zi4uN2I1NmQ0NjBjOTEyMDhm
NDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtNzcsOCArNzcsNyBAQCB2b2lk
IEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQ
YXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFy
YW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKKyAg
ICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRlcnMuY2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2NTMxZjFlMTlkNmYxNDkzMjE4YWY4ODQ3
ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYxM2Y3NTlmZmE4YjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwoKQogICAgIHN0YXRpYyBib29s
IHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRp
b24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBzaG91bGRUaHJvd0V4Y2Vw
dGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsK
ICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNm
NTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcuLjNhMTZhMmNjMzk0NGM0MjExNDUz
OThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9p
ZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1cnJlbnRJVFBTdGF0ZSAhPSBJVFBTdGF0
ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBhcHBXYXNMaW5r
ZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lv
bkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNs
ZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUoKSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsKICAgICBpdHBRdWV1ZSgpLT5kaXNwYXRj
aChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJZGVudGlmaWVyID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCldIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCmluZGV4
IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBhZmQ5ODBmN2UuLjE0ZTdjYzI1YjIwMjY4
YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAtNjQsNyArNjQsNyBAQCB2
b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0
aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRo
aW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRv
IGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsK
LSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24p
KQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SW5pdGlhbGl6ZVdlYktpdDJNYWlu
VGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1bkluaXRpYWxpemF0aW9uQ29kZSgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaFN5bmMo
W10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGJhYTAxMjU3MDc3
N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1MmFkYzAxN2NlMjcwNzUxOTFmMTM3OTlk
MmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RL
QWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzJik7CiAgICAgdmlydHVhbCBib29s
IGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3RlZDoKQEAgLTEzNSwxMCArMTM0LDcgQEAg
dm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBUaGUgaG9zdCBwcm9jZXNzIG1heSBub3Qg
aGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEgY29tbWFuZCBsaW5lIGFwcCksIHNvIGRv
bid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIo
cGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKICAgICAKLSAgICBkZWxlZ2F0ZS5n
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJh
bWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Cisg
ICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVu
dFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmll
cihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggY2I3MjQwZDg1ZDI1ZTE3MzFjM2Q0
NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2NTI3MmMxY2M3Yjc3OTRmYWUzMjQ4MDA1
ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1IEBAIGJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRC
dW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKTsKIH0KIAot
Ym9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1
aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYg
YmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9IHBhcnNlSW50ZWdlcjx1aW50MzJfdD4o
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1z
ZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJzaW9uID0gdmVyc2lvbi52YWx1ZV9vcigw
KTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUoKTsKLX0KKyAgICBzaXplX3QgbGVuZ3Ro
ID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKG1f
aW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsICZsZW5n
dGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlvckRhdGEpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPT0gYmVoYXZpb3JzLnN0b3JhZ2VMZW5n
dGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlvcnMuc3RvcmFnZSgpLCBiZWhhdmlvckRh
dGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJp
ZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsKLSAgICBhdXRvIGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1l
c3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVyLW92ZXJyaWRlIik7Ci0gICAgaWYgKGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAgICAgIGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpID8g
TGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyA6IExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAgIGVsc2UKLSAgICAgICAgbGlua2VkT25P
ckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRiYzRkMjZkOTIyZmY3NTE5OTEuLmY4M2Qw
MWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDQsMTMg
KzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hM
aXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
CiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKIHsKLSAgICBzdGF0
aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxp
bmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRJTURiQ1NTT01WaWV3U2Nyb2xs
aW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOwogICAgIHJldHVybiAh
cmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAgYm9vbCBkZWZhdWx0QWx0ZXJuYXRlRm9y
bUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlV2hlZWxM
aXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogewotICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRB
bGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBkZWZhdWx0QXBw
bGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRp
YyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhBcHBs
aWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgIHN0YXRpYyBib29sIG5ld1NESyA9
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAgICAgcmV0dXJuICFuZXdTREs7CiAjZWxz
ZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMgc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcg
dGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThmNjczZjg4Li4yZDJjYTcwMWM5MDkyNjEz
Zjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VS
ZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVs
b2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQyNGViMGRkOGZjLi42
NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYzZjI3NzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDk4LDgg
KzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsKIAogKyAodm9p
ZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiB7Ci0gICAgc2V0QXBw
bGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nKTsKKyAgICBkaXNhYmxlQWxs
U0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUwOCw3IEBAICsgKHZvaWQpX3NldExpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAKICsgKHZvaWQpX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1l
cmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFi
bGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAKICsgKHZvaWQpX3NldENhcHRpdmVQb3J0
YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4M2Y0ZmMy
ODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTguLmFiMDc0Y2I0YjMzMTA0ZjViODk3YWU5
Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgLSAoQk9PTClfaXNWYWxpZAog
CiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFBpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOwogICAgIHJldHVy
biBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwogfQogCiBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
czsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Niw3
ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRl
bygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1l
cyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKQEAgLTM0
NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wg
KnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0
aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29s
ICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmll
dyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRp
ZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQ
cm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0
b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25z
Rm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzKSkKICAgICAgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJS
ZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3JlICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVAIiwgcmVsYXRlZFdlYlZpZXcsIFtyZWxh
dGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0sIFtfY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAgICAgW19jb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2xdOwpAQCAtMzY4LDcgKzM2OCw3IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3Ig
PSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gZGVmYXVsdEFsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAg
X2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0KTsKIAogI2lmIEhBVkUo
VUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBOTzsKQEAg
LTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxl
VVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlld10pOwogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQobGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQ
SSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXREZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25Q
ZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEh
W19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAtNTcwLDcgKzU3MCw3
IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVy
ZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2UoW19jb25maWd1cmF0
aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZV0pOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0KFtf
Y29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodF0pOwogCi0gICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJr
c0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKXJlbG9hZAogewogICAgIFRI
Uk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBy
ZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZp
b3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4
cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0
aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29u
ZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKICAg
ICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFz
bmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewor
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAg
IGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUwMmIwZTVmNjEyYzNhZTcxZmY1ZDU5Yi4u
MTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xpZnREZWxheSB0b0Ry
YWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGRE
ZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiB7CiAjaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVjaWRlc1BvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1cm4gc2hvdWxkRGVjaWRlOwogI2Vsc2UK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9ICFfYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0g
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJB
Y3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvOwogICAgIGVsc2UKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgzOTkyOGRhZTgxMmYwNmNiMjgyOGMyMjM2
NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1MTE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopbm9u
UGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5p
dFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQog
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9uIGZvcm1hdDpAIkNh
bGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBpcyBub3Qgc3VwcG9ydGVkLiJdOwogICAg
IAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MDgxOWIxYzVmOWZmYjAxZTE0
YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3OWRjNjFkYzJkNTQ0MTliMzZjNTliMzhm
MmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJRWRnZUluc2V0cylfY29udGVudEluc2V0
c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwogCiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1
dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cykp
IHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewog
ICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywg
dHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVu
IHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9u
IHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1
dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkxZThhNTlhY2U5ODBhMTFkZjAzMWQyMjc0
NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYyMTZlYjdkMjRhNGYyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTExODYs
NyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJfZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnCiAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93
ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFn
Z2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRl
RGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThmNTVlZDVkMjgwZGU0MTUxZi4uNjU5NDAy
M2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIC0gKHZvaWQpaW5zcGVjdG9yV0tX
ZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKICAgICAgICAgcmV0
dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9u
czsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAg
ICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7
CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2Yz
MzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIyMzIzYTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcgKzIxNiw2IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwgIWNsaWVudElkZW50
aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgpIDogKl9OU0dl
dFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVz
c2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIsIFdlYkNvcmU6OmFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGstdmVyc2lvbiIs
IFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCkuZGF0YSgpKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJw
cm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vzcy1uYW1lIiwg
W1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhTdHJpbmddKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJz
ZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsyMjYsOCBAQCB2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9mZChib290
c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RERVJSX0ZJTEVOTyk7CiAgICAgfQogICAg
IAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSBsaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIsICps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpB
ZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0
KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3JzIiwgc2RrQmVoYXZpb3JzLnN0b3JhZ2Uo
KSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOwogCiAgICAgYXV0byBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRl
KG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFmOWE3MWU0OGZiNTgxOGVjZWM5NjBlZmUx
MTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYxODRkOTU0MzZmYjRmMTVkNmY1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhh
c1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisgICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9u
TWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWJmY2M4YjQ1OTY0Njc1OGJhYzMyYjcz
NTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2NDg0NWM2ODY2NjQ1NTlhZjMxZmExYjhi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzQ5LDcg
KzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIH0KIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKKyAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZl
cnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCkBAIC0yNjY3
LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYgKCFtX2hhc1VwZGF0ZWRSZW5kZXJpbmdB
ZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKICNlbHNlCiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNzdjNGJlNzk0M2QxYjAyNDIyZTc2NzYy
NzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAgICAgYm9vbCBpc1NhZmFyaSA9
IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCiAgICAgICAgIGlm
IChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgICAgICAgICAgZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlmCiAgICAgfSk7CiAKQEAgLTI3OSw3ICsy
NzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgdXBkYXRlQmFja0ZvcndhcmRDYWNoZUNh
cGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2VzcykpIHsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRE
YXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpkZWZh
dWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC0xMTU0LDcgKzEx
NTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogCiAgICAgYm9vbCBlbmFibGVQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2UtPnByZWZlcmVuY2VzKCkucHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5h
dmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkg
JiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKICAgICAgICAgZW5hYmxlUHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNzA0NTBhOTViYTZlOGE0OWVl
NWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0NGQ2ZjMyNmIwOTRjYTI0Y2QzZjU1MWM3
ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzUmVhY2hlZFByb2Nl
c3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6
OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5U
aHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFko
UnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5
KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFp
bigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9v
cDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNl
bHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDNiNDY3ZjQ1Yjk4MDNiNjAz
ZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFlNDljMzIyZjViZmIwMjg3NmNlNDJkNDNj
YzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIKICAgICBbc2Vs
ZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAgW19maXhlZENsaXBw
aW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAg
ICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFj
dGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBv
YmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERp
ZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAotICAg
IGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVL
ZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3Rl
KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAgICAgICAgIGNsYXNz
X2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpLCByZWludGVycHJl
dF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRo
b2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBz
ZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEwMWEuLmQxODQ1N2Mz
MzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODEy
Nyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVzCiAgICAgICAgIHJl
dHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdEhh
c1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC05ODgzLDcgKzk4ODMsNyBAQCBz
dGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNo
YXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CiAKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09u
TWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKSkgewogICAgICAgICBpZiAoV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc05v
Z2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0
OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25U
b0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkg
ewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzUG9ja2V0Q2l0eSgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyNjk0
NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRVNQTkZhbnRh
c3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2NzE1NDM+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRleCA3ODFkMzZlZDhhMWVmNjJhYmE1ZDUw
MWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2ZWE3ZTgxY2JjMjk2MDQ2NjhiMzQ0NmMw
MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KQEAg
LTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMpX3N5c3RlbUNvbnRlbnRJbnNldAogICAg
IC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQu
IFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hl
biB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2Fm
ZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNv
bmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJ
U2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKKyAgICBpZiAobGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VUlTY3JvbGxWaWV3RG9l
c05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudElu
c2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1l
bnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9hcmRC
b3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFiN2Q5ZjNlMDc5NjE0ZTc4YzZjNDc5Li4w
MWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0MzNmY2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAt
ODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAgaWYgKCsrX3N0YXJ0Q291bnQgPiAxKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkp
CiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOwogfQogCkBAIC05Miw3ICs5Miw3IEBA
IC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291bnQgfHwgLS1fc3RhcnRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQog
ICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBlMzI4YjEzZjE1
OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZlMTM2NjYwZTExNzFlYTQ0YjAxMmMxZjY2
MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAgc3RhdGljIGJvb2wgZGVza3RvcENs
YXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FNYWlu
U2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hvdWxkUmVjb21tZW5k
RGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAm
JiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9wQ2xhc3NCcm93c2lu
Z1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IEln
bm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAg
ICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVn
dWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAv
LyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMg
U0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGlu
ZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdL
V2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVs
ZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBhNjFlZjgyYmJhY2U2MWE2NzMzNjY3MDI2
OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5MmY5MmJjZjJkNmUyODJlYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVn
YXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZyYW1lVmlldzooV2ViRnJhbWVWaWV3ICop
ZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoTlNVSW50ZWdlcil3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlmICghbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVs
dCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1
cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJuIFdlYkRyYWdEZXN0
aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0KaW5kZXggZTI0N2E4ZTJkNTZk
MGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZjY2ZlZGYzN2E3Y2NhOWQ3MWMwNGFlNmZi
ZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25s
b2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgYm9vbCBzaG91bGRDYWxsT25OZXR3b3Jr
VGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIGJvb2wgaXNPbGRFcHNv
blNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29uU29mdHdh
cmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgc3RhdGljIGJvb2wgaXNP
bGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29u
U29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkKTsK
ICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlcjsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUwZTllYzAxNTc2MDg5NTU1ZGFjLi40NjI1
MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDczMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtMTA4LDcgKzEwOCw3IEBA
ICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFiYXNlPj4gZGF0YWJhc2U7CiAgICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4gewot
ICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdlYkljb25E
YXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRhdGFiYXNlV2FybmluZykpCiAgICAgICAg
ICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaXMgbm90
IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhh
bmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVs
ZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQoKSA9IGFkb3B0TlMoW1tXZWJJY29uRGF0
YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KaW5kZXggZGQx
Yjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJmODQ1YS4uNzU0ZWI2NjczZGVlOTllNGEx
YmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAg
LTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7
CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s7CiB9
CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVy
ZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0
ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRUaGVTZWNy
ZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlID0gV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKSAmJiAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2Np
ZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93
V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0KIApAQCAtNzEsMjAgKzcxLDIwIEBAIGJv
b2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
KCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVu
dCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0UmVxdWlyZXNVc2Vy
R2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRo
YXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3Vs
ZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
KTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiB9CiAK
IGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewogICAgIC8vIEZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVudGlsIGFwcHMgYXJlIHJlYnVpbHQgd2l0
aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdElu
TGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYlNRTERpc2FibGVk
QnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJldHVybiB3ZWJTUUxFbmFibGVkOwogfQog
CkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVk
KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
KTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMjA4
LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkK
IAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxp
ZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
azsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydElu
dmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVlbExpc3RlbmVyc0Fz
RGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVm
YXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0QWxsb3dz
V2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFiOTk0NTc1MmRhOTlhODExZjkuLjBjYzE3
ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzOTEsNyArMTM5MSw3IEBAIC0odm9pZClf
aW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBMQVRGT1JNKElPUykKIHN0YXRpYyBib29s
IG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBuZWVkc1F1
aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVlUG9zdGFsZVF1aXJrcyk7CiAgICAgcmV0
dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>
<flag name="commit-queue"
          id="485768"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457224</attachid>
            <date>2022-04-10 19:14:03 -0700</date>
            <delta_ts>2022-04-11 23:45:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220410191402.patch</filename>
            <type>text/plain</type>
            <size>98917</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ODg5OGViMDE1NDQ3NmQ4YjZjY2RjMDAzZjU0OTk3ZjgyMGM2MWFiLi5jMjgwZWNkMTA4OWJmYTM5
NTEzZGFhZDUyZWJmZTdmMWU2YTMyODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTA5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIFZlY3Rv
ciB3aXRoIGlubGluZSBjYXBhY2l0eSBpbiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjcmVh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCA4Yjc1YjhlNDQwMThmYmY1N2M4MTkyM2Q5MWZmNDY4NDUzNDU1Y2E2Li43N2Ex
NzNlMTFlY2JlMWJlOGUxMDI5MTUwNjNlOGM2NTBmNmRlMjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBA
CisyMDIyLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3dpdGNoIHRvIGBkeWxkX3Byb2dyYW1fc2RrX2F0X2xlYXN0YCwgd2hpY2ggY29ycmVj
dGx5IGhhbmRsZXMgU0RLCisgICAgICAgIGNoZWNrcyBmb3IgYmluYXJpZXMgYnVpbHQgZm9yIG9u
ZSBTREsgcnVubmluZyBvbiBhbm90aGVyIHBsYXRmb3JtCisgICAgICAgIChlLmcuIGlPUyBhcHBz
IHJ1bm5pbmcgb24gbWFjT1MpLgorCisgICAgICAgIEJlY2F1c2UgYGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3RgIGlzIGJhc2VkIG9mZiBtb3JlIHRoYW4gYSBzaW1wbGUKKyAgICAgICAgaW50ZWdl
ciBjb21wYXJpc29uIGxpa2Ugb3VyIG9sZCBTREsgY2hlY2ssIHdlIG1vdmUgaXQgaW50byB0aGUK
KyAgICAgICAgYXBwbGljYXRpb24gcHJvY2VzcywgYW5kIGp1c3QgdHJhbnNtaXQgdGhlIGNvbXB1
dGVkIGJlaGF2aW9ycyB0bworICAgICAgICBzdWJwcm9jZXNzZXMuCisKKyAgICAgICAgUmVtb3Zl
IGZ1bmN0aW9ucyB0aGF0IGV4cG9zZS90cmFuc21pdCBwbGF0Zm9ybS1zcGVjaWZpYyBTREsgdmVy
c2lvbnMsCisgICAgICAgIHNvIHRoYXQgdXNhZ2UgaXNuJ3QgYWNjaWRlbnRhbGx5IHJlaW50cm9k
dWNlZC4KKworICAgICAgICBSZS1mcmFtZSB0aGUgbmFtaW5nIG9mIG91ciBsaW5rZWQtb24tb3It
YWZ0ZXIgY2hlY2tzIGFzIGJlaW5nIGFib3V0CisgICAgICAgIHNwZWNpZmljIGJlaGF2aW9ycyBp
bnN0ZWFkIG9mIFNESyB2ZXJzaW9ucy4KKworICAgICAgICAqIHd0Zi9CaXRtYXAuaDoKKyAgICAg
ICAgKFdURjo6V29yZFR5cGU+OjpzZXRBbGwpOgorICAgICAgICBBZGQgYHNldEFsbGAsIHdoaWNo
IHNldHMgYWxsIHRoZSBiaXRzIGluIHRoZSBCaXRtYXAsIGxpa2UgRmFzdEJpdFZlY3RvciBoYXMu
CisgICAgICAgIEV4cG9zZSB0aGUgbGVuZ3RoIG9mIHRoZSBkYXRhIGluIGJ5dGVzIHRvIG1ha2Ug
dHJhbnNtaXR0aW5nIHRoZSBCaXRtYXAgc2ltcGxlLgorCisgICAgICAgICogd3RmL2NvY29hL0xh
bmd1YWdlQ29jb2EubW06CisgICAgICAgIChXVEY6OmNhbk1pbmltaXplTGFuZ3VhZ2VzKToKKyAg
ICAgICAgQWRvcHQgdGhlIG5ldyBuYW1pbmcuCisKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9k
eWxkU1BJLmg6CisgICAgICAgIEJlY2F1c2Ugb2YgdGhlIG5hdHVyZSBvZiBkeWxkX2J1aWxkX3Zl
cnNpb25fdCB2YWx1ZXMsIHdlIGNhbid0IGZvcndhcmQKKyAgICAgICAgZGVjbGFyZSB0aGVtLiBU
aHVzLCBtYWludGFpbiBhIGZhbGxiYWNrIHRvIHRoZSBsZWdhY3kgcGxhdGZvcm0tc3BlY2lmaWMK
KyAgICAgICAgU0RLIGNoZWNrcyBmb3IgdXNlIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCB0aGUgaW50
ZXJuYWwgU0RLLCBvciB3aGVuCisgICAgICAgIGJhY2stZGVwbG95aW5nIHRvIG9sZGVyIFNES3Mg
dGhhdCBkb24ndCB5ZXQgaGF2ZSB2YWx1ZXMgZm9yIG5ld2VyIHZlcnNpb24gc2V0cy4KKworICAg
ICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAg
ICAgIChkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RG
Ojpjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRC
ZWhhdmlvcnNWYWx1ZSk6CisgICAgICAgIChXVEY6OnNka0FsaWduZWRCZWhhdmlvcnMpOgorICAg
ICAgICAoV1RGOjpzZXRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmRpc2FibGVBbGxTREtBbGln
bmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKToKKyAgICAgICAgKFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV1RGOjpzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdU
Rjo6c2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlcik6IERlbGV0ZWQuCisgICAgICAgICogd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrc0NvY29hLmg6CisKIDIwMjItMDQtMDggIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MjU4Ni4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNjUxZDhjZGExMmY2NmNiYzZkYTg5MTAzNGFjZDRmYjVhNGM4OWQ3Li4xNTZjMDIx
YjE0MDM5MzVjMDRmODkzOGNhYTEwMzg5MjA4YzU1NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIg
Y2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3cpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpuZWVkc1dlQ2hhdFNjcm9s
bGluZ1F1aXJrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6c2hvdWxkT21pdEhU
TUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHBhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdp
bik6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hv
dWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjayk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb3RQ
cmVmaXhlZEZvcmJpZGRlbkZvbnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVVSTERlY29kZXI6OnNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcik6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3JlVGVz
dFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjpzZXRMaW5rZWRPbk9y
QWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5n
LgorCisKIDIwMjItMDQtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgbGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oKSB0byByZXR1cm4g
YSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzk4OWE0OTBjMWNm
NDhkYTUyYWE4YjA4NTZkNzIxODcwODZmZjQ1ZC4uMTJhYTgxMWViZmZmNjJhMzgzNzJlNzNjZGYw
NDdjNjk1OTQ0MzgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAyMi0wNC0xMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBBZG9wdCAidmVy
c2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0
Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL0F1
eGlsaWFyeVByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vz
c0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemUpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tOgorICAgICAgICAoV2ViS2l0
OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk6CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlOjpn
ZXRDbGllbnRTREtWZXJzaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6WFBDU2Vydmlj
ZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6
CisgICAgICAgIEluc3RlYWQgb2YgdHJhbnNtaXR0aW5nIHRoZSBTREsgdmVyc2lvbiBhbmQgb3Zl
cnJpZGUgc3RhdGUgaW4gdGhlIGJvb3RzdHJhcAorICAgICAgICBtZXNzYWdlLCBqdXN0IHNlbmQg
dGhlIGNvbXB1dGVkIHNldCBvZiBiZWhhdmlvcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0Ojpjb25maWd1cmF0aW9uRm9yU2Vzc2lvbklEKToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2Ev
Q29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5tbToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxk
VGhyb3dFeGNlcHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwpOgorICAgICAg
ICAqIFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZGV0ZXJtaW5lSVRQU3RhdGUpOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJLaXQy
SW5pdGlhbGl6ZUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0Mik6
CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmRlZmF1bHRQYXNzaXZlVG91Y2hMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZh
dWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVy
ZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRPZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwOgorICAgICAgICAoV0tQYWdlUmVsb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExp
bmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZ10pOgorICAgICAgICAoK1tXS1Byb2Nl
c3NQb29sIF9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgIChzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKHNob3VsZEFsbG93U2V0dGluZ0FueVhI
UkhlYWRlckZyb21GaWxlVVJMcyk6CisgICAgICAgIChzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk6CisgICAgICAgIChzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlbG9hZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoZGVmYXVsdFNo
b3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KToKKyAgICAgICAg
KC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFT
dG9yZSBpbml0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF93ZWJfZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06
CisgICAgICAgICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgaW5zcGVjdG9yV0tXZWJWaWV3
UmVsb2FkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhhc1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
Ojppc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfc2hvdWxkVXNlQ29udGV4dE1lbnVzXSk6CisgICAgICAgIChhcHBsaWNhdGlvbklz
S25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbToKKyAgICAgICAgKC1bV0tTY3JvbGxWaWV3IF9zeXN0ZW1Db250ZW50SW5zZXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAgKC1bV0tT
dHlsdXNEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dzaW5nUmVj
b21tZW5kZWQpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOSAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQdXQgbGF5
ZXIgYmFja2luZyBzdG9yZSBidWZmZXJzIGludG8gdGhlIHBlci1SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIElPU3VyZmFjZVBvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5Njc5NzFm
YWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1Li45NmY2NzhmNTVhMGM5NjIzMDhlODhj
MDQ2NjkzNDhiMTAzYmU1OTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMjItMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0
ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRlIHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAgICAgICAgKiBNaXNjL1dlYkRvd25sb2Fk
Lm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29ya1RocmVhZCk6CisgICAgICAgICogTWlz
Yy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJ
Y29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZh
bHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRv
dWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1
bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOgorICAgICAgICAoV2ViS2l0OjpkZWZh
dWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRTaG91bGRSZXN0cmlj
dEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJ
bnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVs
TGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRX
aGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1ZVBvc3RhbGVRdWlya3MpOgorICAgICAg
ICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0wNC0wOCAgRWxsaW90dCBXaWxsaWFtcyAg
PGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2RlXSBBdm9pZCB0YXJnZXRpbmcgMzItYml0
IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNU
eXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYyNzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhh
NGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1OTgzZTE2MTgzODg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlwZWRBcnJheS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXkuY3BwCkBAIC0zNjgsNyArMzY4LDcgQEAg
dm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVzUHRyKEpTQ29udGV4dFJlZiBjdHgsIEpT
T2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFURk9STShJT1MpCiBpbmxpbmUgc3RhdGlj
IGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVuZ3RoUXVpcmsoKQogewotICAgIHJldHVy
biAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFR5cGVkQXJyYXlBUElR
dWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWlyayk7CiB9CiAjZWxzZQogaW5saW5lIHN0
YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJheUxlbmd0aFF1aXJrKCkgeyByZXR1cm4g
ZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVy
TWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXgg
N2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYy
MGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBAQCBib29sIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJzaW9uT2ZMaW5rVGltZUphdmFTY3JpcHRD
b3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZlcnNpb25PZkxpbmtUaW1lSmF2YVNjcmlw
dENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNpb25XaXRoSW5pdENvbnN0cnVjdG9yU3Vw
cG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworICAgICAgICByZXR1cm4gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJ
bml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAgcmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhv
ZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdk
YS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwCkBAIC02MTcsNyArNjE3LDcgQEAg
dm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVkUmVqZWN0aW9ucygpCiB2b2lkIFRlc3RB
UEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRpb25zKCkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2Jq
Qyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdo
ZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICByZXR1cm47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVz
dGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbQppbmRl
eCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQx
MzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRo
ZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKICAgICAgICAgaWYgKHVzZUxlZ2FjeURy
YWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhkMWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3
ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMxNzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAg
ICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAgICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9u
Y2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxs
aW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rh
c2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAgIH0pOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDU5
NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAyZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5
MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMzE3LDcgKzMxNyw3IEBAIGlubGluZSBz
dGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0byBidW5kbGVJRCA9IENGQnVuZGxlR2V0
SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlE
CiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENGU1RSKCJjb20ua3BnYW1lLlBva2VyQnJv
cyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAgICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdR
dWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQml0bWFwLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBiOGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2
Y2Q0NDNmYmQ5YTIyNzBhLi5lZWY0ZDBmYmRmMWM1NzFhZmJhYmFkZjNmZjk5NDE1ZDhlNzY3YzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHNpemVf
dCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0OwogICAgIGNvbnN0ZXhwciB2b2lkIGNs
ZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgpOworICAgIHZvaWQgc2V0QWxsKCk7CiAg
ICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAgaW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhz
aXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXplX3QgY291bnQoc2l6ZV90IHN0YXJ0ID0g
MCkgY29uc3Q7CkBAIC0xNDEsNiArMTQyLDggQEAgcHVibGljOgogICAgIFdvcmRUeXBlKiBzdG9y
YWdlKCkgeyByZXR1cm4gYml0cy5kYXRhKCk7IH0KICAgICBjb25zdCBXb3JkVHlwZSogc3RvcmFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAKKyAgICBjb25zdGV4cHIgc2l6ZV90
IHN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkgeyByZXR1cm4gc2l6ZW9mKGJpdHMpOyB9CisKIHByaXZh
dGU6CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkU2l6ZSA9IHNpemVvZihXb3Jk
VHlwZSkgKiA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgd29yZHMgPSAoYml0bWFw
U2l6ZSArIHdvcmRTaXplIC0gMSkgLyB3b3JkU2l6ZTsKQEAgLTI0MCw2ICsyNDMsMTIgQEAgaW5s
aW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6Y2xlYXJBbGwoKQogICAgIG1l
bXNldChiaXRzLmRhdGEoKSwgMCwgc2l6ZW9mKGJpdHMpKTsKIH0KIAordGVtcGxhdGU8c2l6ZV90
IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1h
cFNpemUsIFdvcmRUeXBlPjo6c2V0QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4
RkYsIHNpemVvZihiaXRzKSk7Cit9CisKIHRlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0eXBl
bmFtZSBXb3JkVHlwZT4KIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwg
V29yZFR5cGU+OjppbnZlcnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2Ev
TGFuZ3VhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0K
aW5kZXggMzAyMWZlYzA3MTdlZWZhNDI2YTVlN2ViZThiYmM3NjhjZjMzMzdkZi4uYmRjNGJlZDRj
NzRiNzllNmQyM2Y5ZmNlODI2ZTE4NGE5NWVlOGIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5n
dWFnZUNvY29hLm1tCkBAIC01Niw3ICs1Niw3IEBAIHNpemVfdCBpbmRleE9mQmVzdE1hdGNoaW5n
TGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29uc3QgVmVjdG9yPFN0CiBi
b29sIGNhbk1pbmltaXplTGFuZ3VhZ2VzKCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCByZXN1
bHQgPSBbXSgpIC0+IGJvb2wgewotICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsK
KyAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1YWdlcykgJiYgW05TTG9jYWxlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IobWluaW1pemVkTGFuZ3VhZ2VzRnJvbUxhbmd1YWdlczopXTsKICAgICB9
KCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcAppbmRleCBjNzE0OTNiNDRhNzIw
YjhmM2RkZDY3NGMyYWYxNDhjNDkxMjM5YWYwLi4yOGM5NzBjYmNmMmVkY2FhMjgwNzQwZWIyZTEy
NjA3YzdjYmU2NGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3NDb2NvYS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCkBAIC0yNyw1MCArMjcsMTk2IEBACiAjaW5jbHVk
ZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAKICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxkU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4m
IGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkKK3N0YXRpYyBib29sIGxpbmtlZEJlZm9y
ZShkeWxkX2J1aWxkX3ZlcnNpb25fdCB2ZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja0lPU1ZlcnNp
b24sIHVpbnQzMl90IGZhbGxiYWNrTWFjT1NWZXJzaW9uKQogewotICAgIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPHVpbnQzMl90PiB2ZXJzaW9uOwotICAgIHJldHVybiB2ZXJzaW9uOworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisgICAgLy8gZHlsZF9idWlsZF92ZXJzaW9uX3QgdmFsdWVzIGNh
bm5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLCBzbyB3ZSBmYWxsIGJhY2sgdG8KKyAgICAvLyB0cmFk
aXRpb25hbCBTREsgdmVyc2lvbiBjaGVja3Mgd2hlbiBidWlsZGluZyBhZ2FpbnN0IGFuIFNESyB0
aGF0CisgICAgLy8gZG9lcyBub3QgaGF2ZSBkeWxkX3ByaXYuaCwgb3IgZG9lcyBub3QgZGVmaW5l
IGEgZ2l2ZW4gdmVyc2lvbiBzZXQuCisgICAgaWYgKHZlcnNpb24ucGxhdGZvcm0gfHwgdmVyc2lv
bi52ZXJzaW9uKQorICAgICAgICByZXR1cm4gIWR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3QodmVy
c2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2ZXJzaW9uKTsKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tNYWNPU1ZlcnNp
b24pOworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFj
a0lPU1ZlcnNpb247CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShmYWxsYmFja0lPU1ZlcnNpb24p
OworICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCkgPCBmYWxsYmFja01h
Y09TVmVyc2lvbjsKKyNlbmRpZgogfQogCi12b2lkIHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbih1
aW50MzJfdCB2ZXJzaW9uKQorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYUFkZGl0
aW9ucy5jcHA+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hQWRkaXRpb25zLmNwcD4KKyNlbHNlCitzdGF0aWMgdm9pZCBkaXNhYmxlQWRkaXRp
b25hbFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpCiB7Ci0gICAgYXBw
bGljYXRpb25TREtWZXJzaW9uT3ZlcnJpZGUoKSA9IHZlcnNpb247CiB9CisjZW5kaWYKIAotdWlu
dDMyX3QgYXBwbGljYXRpb25TREtWZXJzaW9uKCkKK3N0YXRpYyBTREtBbGlnbmVkQmVoYXZpb3Jz
IGNvbXB1dGVTREtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICphcHBsaWNhdGlvblNES1ZlcnNpb25P
dmVycmlkZSgpOwotICAgIHJldHVybiBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Cisg
ICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZpb3JzLnNldEFsbCgp
OworCisgICAgYXV0byBkaXNhYmxlQmVoYXZpb3IgPSBbJl0gKFNES0FsaWduZWRCZWhhdmlvciBi
ZWhhdmlvcikgeworICAgICAgICBiZWhhdmlvcnMuY2xlYXIoc3RhdGljX2Nhc3Q8c2l6ZV90Pihi
ZWhhdmlvcikpOworICAgIH07CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE1
X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzlfMCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xMSkpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9m
YWxsXzIwMTZfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTBfMCwgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVU
b0xvYWRWaWRlbyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlVucHJlZml4ZWRQbGF5c0lubGluZUF0dHJpYnV0ZSk7CisgICAgfQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2Vsc2UKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE0X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTApKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMpOworI2VuZGlmCisKKyAgICBpZiAo
bGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9O
XzExXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMpKSB7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9u
SGFuZGxlckNhbGxzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFz
ZVdhcm5pbmcpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAx
OF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMV8zLCBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzXzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlz
dGVuZXJzT25Eb2N1bWVudCk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxOF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMl8wLCBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE0KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xsVmlld0RvZXNO
b3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25Jbldl
YlBhZ2VQcm94eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlDaGVja3MpOworICAgIH0K
KworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucywgRFlM
RF9JT1NfVkVSU0lPTl8xMl8yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0XzQpKSB7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2du
aXplckluc3RhbGxhdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlByb2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKTsKKyAgICB9CisKKyAgICBp
ZiAobGlua2VkQmVmb3JlKGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUpKSB7CisgICAgICAgIGRpc2FibGVC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRpb25hbFVuaXZlcnNhbFNhbmRi
b3hFeHRlbnNpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
RGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKKyAgICAgICAgZGlz
YWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJW
aWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3Jlcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJ
bnRlcmFjdGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcyk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1h
aW5GcmFtZSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5v
SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQp
OworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM18yLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaXRlU3Bl
Y2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9zcHJpbmdfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xM180LCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE1XzQpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2ZW50cyk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1pbmltaXplc0xhbmd1
YWdlcyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAyMF9vc192
ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2
KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZXNzaW9u
Q2xlYW51cEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkluaXRpYWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbik7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRS
ZXR1cm5pbmdOaWwpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Bva2VyQnJvc0J1
aWx0SW5UYWdRdWlyayk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2xhdGVf
ZmFsbF8yMDIwX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE0XzIsIERZTERfTUFDT1NY
X1ZFUlNJT05fMTBfMTYpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKTsKKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9zcHJpbmdfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF81LCBEWUxEX01B
Q09TWF9WRVJTSU9OXzExXzMpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwpOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVz
KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXND
bGFzc1Byb3BlcnR5KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6Tm9XZUNoYXRTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OlNoYXJlZE5ldHdvcmtQcm9jZXNzKTsKKyAgICAgICAgZGlzYWJsZUJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QmxhbmtzVmlld09uSlNQcm9tcHQpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVm
YXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0Jl
Y29tZU5vbkJsb2NraW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfZmFs
bF8yMDIxX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTJfMDApKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6Ok51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpOworICAgICAgICBkaXNhYmxl
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QXBwbGljYXRpb25D
YWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3Jv
dGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTVfNCwgRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8zKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyk7CisK
KyAgICBkaXNhYmxlQWRkaXRpb25hbFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKKwor
ICAgIHJldHVybiBiZWhhdmlvcnM7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPExpbmtlZE9u
T3JBZnRlck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxTREtBbGlnbmVkQmVoYXZpb3JzPiYgc2RrQWxpZ25lZEJlaGF2aW9yc1Zh
bHVlKCkKIHsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZT4gbGlua2VkT25PckFmdGVyOwotICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4+IGJl
aGF2aW9yczsKKyAgICByZXR1cm4gYmVoYXZpb3JzLmdldCgpOwogfQogCi12b2lkIHNldExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+
IGxpbmtlZE9uT3JBZnRlcikKK2NvbnN0IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRC
ZWhhdmlvcnMoKQogewotICAgIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKSA9IGxpbmtl
ZE9uT3JBZnRlcjsKKyAgICBhdXRvJiBiZWhhdmlvcnMgPSBzZGtBbGlnbmVkQmVoYXZpb3JzVmFs
dWUoKTsKKworICAgIGlmICghYmVoYXZpb3JzKQorICAgICAgICBiZWhhdmlvcnMgPSBjb21wdXRl
U0RLQWxpZ25lZEJlaGF2aW9ycygpOworCisgICAgcmV0dXJuICpiZWhhdmlvcnM7CiB9CiAKLXN0
ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlKCkKK3ZvaWQgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzIGJl
aGF2aW9ycykKIHsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSgpOwor
ICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdlIHdvdWxkIGFzc2VydCB0aGF0IGBsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3JgIGhhZCBub3QKKyAgICAvLyBiZWVuIGNhbGxlZCBhdCB0aGlzIHBv
aW50IChiZWNhdXNlIGl0cyByZXBseSBjb3VsZCBoYXZlIGJlZW4gaW5hY2N1cmF0ZSksCisgICAg
Ly8gYnV0IFdlYlByZWZlcmVuY2VzIHVzZSBpbiBTYWZhcmkgKGF0IGxlYXN0KSBjdXJyZW50bHkg
cHJldmVudHMgdGhpcyBoYXJkZW5pbmcuCisKKyAgICBzZGtBbGlnbmVkQmVoYXZpb3JzVmFsdWUo
KSA9IGJlaGF2aW9yczsKK30KKwordm9pZCBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCkK
K3sKKyAgICBTREtBbGlnbmVkQmVoYXZpb3JzIGJlaGF2aW9yczsKKyAgICBiZWhhdmlvcnMuc2V0
QWxsKCk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhiZWhhdmlvcnMpOwogfQogCi1ib29s
IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uIHNka1ZlcnNpb24pCit2b2lkIGRpc2FibGVBbGxT
REtBbGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBpZiAoYXV0byBvdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgcmV0dXJuICpvdmVycmlkZVZhbHVlID09
IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmc7CisgICAgc2V0U0RLQWxp
Z25lZEJlaGF2aW9ycyh7IH0pOworfQogCi0gICAgYXV0byBzZGtWZXJzaW9uQXNJbnRlZ2VyID0g
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNka1ZlcnNpb24pOwotICAgIHJldHVybiBzZGtWZXJzaW9u
QXNJbnRlZ2VyICYmIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpID49IHNka1ZlcnNpb25Bc0ludGVn
ZXI7Citib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgcmV0dXJuIHNka0FsaWduZWRCZWhhdmlvcnMoKS5nZXQoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihiZWhhdmlvcikpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oIGIvU291cmNlL1dU
Ri93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAppbmRleCAwNTU4MjZk
MzM5ODVmYjg0ZjE1MTZjNWIyODE2ODA2Zjk1Yzc0YTEwLi5lYWFhOTM5ZmE0NDA2NGFkOGEwYzNh
Zjk1ZTU4NzA3YjEzOGVmZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKQEAgLTI2LDEyNSArMjYsOTIgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKLSNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9keWxk
U1BJLmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFNES1ZlcnNpb24gOiB1aW50
MzJfdCB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBGaXJzdFdpdGhQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayA9IERZTERfSU9TX1ZFUlNJT05fOV8wLAotICAgIEZpcnN0V2l0
aE1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBEWUxEX0lPU19WRVJT
SU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0g
RFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5
RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0lu
dmFsaWRVUkxzVG9CbGFuayA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhv
dXRUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayA9IERZTERfSU9T
X1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1
dGUgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRz
SW5pdENvbnN0cnVjdG9ycyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhF
eGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfSU9TX1ZF
UlNJT05fMTFfMCwKLSAgICBGaXJzdFdpdGhFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yID0gRFlM
RF9JT1NfVkVSU0lPTl8xMV8wLAotICAgIEZpcnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJI
ZWFkZXJGcm9tRmlsZVVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0
RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVyc09uRG9jdW1lbnQgPSBEWUxEX0lPU19WRVJT
SU9OXzExXzMsCi0gICAgRmlyc3RXaGVyZVNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2Jz
Y3VyaW5nSW5zZXRzID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2hlcmVVSVNj
cm9sbFZpZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSA9IERZTERf
SU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdpdGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlv
bkluV2ViUGFnZVByb3h5ID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8wLAotICAgIEZpcnN0V2l0aG91
dE1vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwK
LSAgICBGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNoZWNrcyA9IERZTERfSU9TX1ZFUlNJT05f
MTJfMCwKLSAgICBGaXJzdFdpdGhMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRpb24gPSBE
WUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0
ZU5hdmlnYXRpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEyXzIsCi0gICAgRmlyc3RXaXRob3V0VW5j
b25kaXRpb25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX0lPU19W
RVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJt
aXNzaW9uQVBJID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0VGhhdERlY2lkZXNQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyA9IERZTERfSU9TX1ZFUlNJT05fMTNf
MCwKLSAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJl
bnREYXRhU3RvcmVzID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aE1vZGVy
bkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBG
aXJzdFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBEWUxEX0lPU19WRVJTSU9OXzEz
XzAsCi0gICAgRmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5k
cyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93
SGlkZGVuT25NYWluRnJhbWUgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RXaXRo
b3V0SU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAot
ICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0ID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18yLAotICAgIEZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
ID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdFNlbmRzTmF0aXZlTW91c2VF
dmVudHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzQsCi0gICAgRmlyc3RUaGF0TWluaW1pemVzTGFu
Z3VhZ2VzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0V2l0aFNlc3Npb25DbGVh
bnVwQnlEZWZhdWx0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aEluaXRp
YWxpemVXZWJLaXQyTWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwK
LSAgICBGaXJzdFdpdGhXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9J
T1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0aFdlYlNRTERpc2FibGVkQnlEZWZhdWx0SW5M
ZWdhY3lXZWJLaXQgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzAsCi0gICAgRmlyc3RXaXRob3V0TGFC
YW5xdWVQb3N0YWxlUXVpcmtzID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAg
ICBGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09uTWFjT1MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzIs
Ci0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERfSU9TX1ZFUlNJT05f
MTRfNSwKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0g
RFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0
eSA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhvdXRXZUNoYXRTY3JvbGxp
bmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhTaGFyZWROZXR3
b3JrUHJvY2VzcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdpdGhCbGFua1Zp
ZXdPbkpTUHJvbXB0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF81LAotICAgIEZpcnN0V2l0aE51bGxP
cmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCi0g
ICAgRmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiAgPSBEWUxEX0lPU19WRVJTSU9O
XzE1XzAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9JT1NfVkVSU0lPTl8xNV8wLAotICAgIEZpcnN0VGhhdERv
ZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9JT1NfVkVS
U0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5S
ZWRpcmVjdHMgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzQsCi0gICAgRmlyc3RXaXRob3V0VHlwZWRB
cnJheUFQSVF1aXJrID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotICAgIEZpcnN0Rm9yYmlkZGlu
Z0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX0lPU19WRVJTSU9OXzE2XzAsCi0jZWxpZiBQTEFURk9S
TShNQUMpCi0gICAgRmlyc3RWZXJzaW9uVGhhdFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycyA9IDB4
QTBBMDAsIC8vIE9TIFggMTAuMTAKLSAgICBGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9C
bGFuayA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTIsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9u
c0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxEX01BQ09TWF9WRVJTSU9O
XzEwXzEzLAotICAgIEZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCA9
IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxv
YWRCZWhhdmlvciA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmlyc3RXaXRoV2Vi
SWNvbkRhdGFiYXNlV2FybmluZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCi0gICAgRmly
c3RXaXRoTWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTQsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3Mg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aG91dFVuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwK
LSAgICBGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcyA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1Vz
aW5nRGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTUsCi0gICAg
Rmlyc3RXaXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2hlcmVTaXRlU3BlY2lmaWNRdWlya3NBcmVF
bmFibGVkQnlEZWZhdWx0ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV8xLAotICAgIEZpcnN0
VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80
LAotICAgIEZpcnN0VGhhdE1pbmltaXplc0xhbmd1YWdlcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFdpdGhTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhy
ZWFkQXNzZXJ0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNiwKLSAgICBGaXJzdFdpdGhX
S1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5nTmlsID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNiwKLSAgICBGaXJzdFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RXaXRoQmxhbmtWaWV3
T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhvdXRD
bGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBG
aXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFRoYXRBbGxvd3NXaGVlbEV2ZW50R2VzdHVy
ZXNUb0JlY29tZU5vbkJsb2NraW5nID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0VGhhdERvZXNOb3REcmFpblRoZU1p
Y3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwK
LSAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwLAotICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVy
dGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzID0gRFlMRF9NQUNPU1hfVkVS
U0lPTl8xMl8zLAotICAgIEZpcnN0Rm9yYmlkZGluZ0RvdFByZWZpeGVkRm9udHMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEzXzAsCi0jZW5kaWYKK2VudW0gY2xhc3MgU0RLQWxpZ25lZEJlaGF2aW9y
IHsKKyAgICBBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nLAorICAg
IEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCwKKyAgICBBdXRob3JpemF0aW9uSGVh
ZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzLAorICAgIEJsYW5rc1ZpZXdPbkpTUHJvbXB0LAorICAg
IENvbnZlcnRzSW52YWxpZFVSTHNUb0JsYW5rLAorICAgIERhdGFVUkxGcmFnbWVudFJlbW92YWws
CisgICAgRGVjaWRlc1BvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3LAorICAgIERl
ZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERlZmF1bHRzVG9Q
YXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50LAorICAgIERpc2FsbG93c1NldHRpbmdBbnlY
SFJIZWFkZXJGcm9tRmlsZVVSTHMsCisgICAgRG9lc05vdERyYWluVGhlTWljcm90YXNrUXVldWVX
aGVuQ2FsbGluZ09iakMsCisgICAgRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbiwKKyAgICBEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCwKKyAgICBEcm9wVG9OYXZpZ2F0ZURp
c2FsbG93ZWRCeURlZmF1bHQsCisgICAgRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25I
YW5kbGVyQ2FsbHMsCisgICAgRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVy
ZW50RGF0YVN0b3JlcywKKyAgICBFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yLAorICAgIEZvcmJp
ZHNEb3RQcmVmaXhlZEZvbnRzLAorICAgIEhhc1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiwKKyAg
ICBIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzLAorICAgIEluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbiwKKyAgICBMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxs
YXRpb24sCisgICAgTGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0LAorICAgIE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHksCisgICAgTWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjaywKKyAgICBNaW5pbWl6ZXNMYW5ndWFnZXMsCisgICAgTW9kZXJu
Q29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0LAorICAgIE5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAs
CisgICAgTm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdywKKyAgICBOb0lNRGJDU1NP
TVZpZXdTY3JvbGxpbmdRdWlyaywKKyAgICBOb0xhQmFucXVlUG9zdGFsZVF1aXJrcywKKyAgICBO
b01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyaywKKyAgICBOb1Bva2VyQnJvc0J1aWx0SW5U
YWdRdWlyaywKKyAgICBOb1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5V2luZG93T3BlblF1
aXJrLAorICAgIE5vVHlwZWRBcnJheUFQSVF1aXJrLAorICAgIE5vVW5jb25kaXRpb25hbFVuaXZl
cnNhbFNhbmRib3hFeHRlbnNpb24sCisgICAgTm9XZUNoYXRTY3JvbGxpbmdRdWlyaywKKyAgICBO
dWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzLAorICAgIE9ic2VydmVzQ2xhc3NQcm9w
ZXJ0eSwKKyAgICBQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaywKKyAgICBQcm9jZXNzU3dh
cE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiwKKyAgICBSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8sCisgICAgUmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMsCisgICAgU2Nyb2xsVmlld0NvbnRlbnRJ
bnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMsCisgICAgU2VuZHNOYXRpdmVNb3VzZUV2ZW50cywK
KyAgICBTZXNzaW9uQ2xlYW51cEJ5RGVmYXVsdCwKKyAgICBTaGFyZWROZXR3b3JrUHJvY2VzcywK
KyAgICBTaXRlU3BlY2lmaWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0LAorICAgIFNuYXBzaG90
QWZ0ZXJTY3JlZW5VcGRhdGVzLAorICAgIFN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25QZXJtaXNzaW9uQVBJLAorICAgIFN1cHBvcnRzSW5pdENvbnN0cnVjdG9ycywKKyAgICBTdXBw
b3J0c2lPU0FwcHNPbk1hY09TLAorICAgIFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFt
ZSwKKyAgICBUaW1lclRocmVhZFNhZmV0eUNoZWNrcywKKyAgICBVSVNjcm9sbFZpZXdEb2VzTm90
QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSwKKyAgICBVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUsCisgICAgV2ViSWNvbkRhdGFiYXNlV2FybmluZywKKyAgICBXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0LAorICAgIFdLQ29udGVudFZpZXdEb2VzTm90
T3ZlcnJpZGVLZXlDb21tYW5kcywKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsLAorCisgICAgTnVtYmVyT2ZCZWhhdmlvcnMKIH07CiAKLVdURl9FWFBPUlRfUFJJVkFURSBi
b29sIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uKTsKK3VzaW5nIFNES0FsaWduZWRCZWhhdmlv
cnMgPSBCaXRtYXA8c3RhdGljX2Nhc3Q8c2l6ZV90PihTREtBbGlnbmVkQmVoYXZpb3I6Ok51bWJl
ck9mQmVoYXZpb3JzKSwgdWludDMyX3Q+OwogCi1XVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRB
cHBsaWNhdGlvblNES1ZlcnNpb24odWludDMyX3QpOworV1RGX0VYUE9SVF9QUklWQVRFIGNvbnN0
IFNES0FsaWduZWRCZWhhdmlvcnMmIHNka0FsaWduZWRCZWhhdmlvcnMoKTsKK1dURl9FWFBPUlRf
UFJJVkFURSB2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyk7
CiAKLS8vIERvIG5vdCB1c2UgYXBwbGljYXRpb25TREtWZXJzaW9uKCkgZGlyZWN0bHk7IGFkZCBh
IHZlcnNpb24gdG8gdGhlIGVudW0gYWJvdmUsCi0vLyBhbmQgdXNlIGxpbmtlZE9uT3JBZnRlcigp
IGF0IGNhbGwgc2l0ZXMuCi1XVEZfRVhQT1JUX1BSSVZBVEUgdWludDMyX3QgYXBwbGljYXRpb25T
REtWZXJzaW9uKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9ycygpOwogCi1lbnVtIGNsYXNzIExpbmtlZE9uT3JBZnRlck92ZXJyaWRlIDogdWlu
dDhfdCB7Ci0gICAgQmVmb3JlRXZlcnl0aGluZywKLSAgICBBZnRlckV2ZXJ5dGhpbmcKLX07Ci1X
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9w
dGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgc3Rk
OjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4gbGlua2VkT25PckFmdGVyT3ZlcnJp
ZGUoKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3IpOwogCiB9CiAKLXVzaW5nIFdURjo6c2V0QXBwbGljYXRp
b25TREtWZXJzaW9uOwotdXNpbmcgV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb247Ci11c2luZyBX
VEY6OkxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwotdXNpbmcgV1RGOjpzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6bGlua2VkT25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBX
VEY6OmxpbmtlZE9uT3JBZnRlcjsKLXVzaW5nIFdURjo6U0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6
c2V0QXBwbGljYXRpb25TREtWZXJzaW9uOwordXNpbmcgV1RGOjpkaXNhYmxlQWxsU0RLQWxpZ25l
ZEJlaGF2aW9yczsKK3VzaW5nIFdURjo6ZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9yczsKK3Vz
aW5nIFdURjo6bGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yOwordXNpbmcgV1RGOjpTREtB
bGlnbmVkQmVoYXZpb3I7Cit1c2luZyBXVEY6OnNka0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBX
VEY6OlNES0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OnNldFNES0FsaWduZWRCZWhhdmlv
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaCBiL1Nv
dXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCmluZGV4IDM0Njg5OGMyODU2ZDJmN2Jl
NzgwNzFlNjgyYzEyZTE3YjM1NWNjZGUuLmJjYmY0MGNiMDFmZWIyODExZWU3NjM0MTJkNjAyMGU1
N2VlNzg3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vZHlsZFNQSS5oCkBAIC0xMjMsNiArMTIz
LDEzIEBACiAKICNlbHNlCiAKK3R5cGVkZWYgdWludDMyX3QgZHlsZF9wbGF0Zm9ybV90OworCit0
eXBlZGVmIHN0cnVjdCB7CisgICAgZHlsZF9wbGF0Zm9ybV90IHBsYXRmb3JtOworICAgIHVpbnQz
Ml90IHZlcnNpb247Cit9IGR5bGRfYnVpbGRfdmVyc2lvbl90OworCiAjZGVmaW5lIERZTERfSU9T
X1ZFUlNJT05fM18wIDB4MDAwMzAwMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl80XzIgMHgw
MDA0MDIwMAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzVfMCAweDAwMDUwMDAwCkBAIC0xNDQs
MTAgKzE1MSwxMyBAQAogI2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE1XzQgMHgwMDBmMDQwMAog
I2RlZmluZSBEWUxEX0lPU19WRVJTSU9OXzE2XzAgMHgwMDEwMDAwMAogCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTAgMHgwMDBBMEEwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJT
SU9OXzEwXzExIDB4MDAwQTBCMDAKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMiAw
eDAwMEEwQzAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMgMHgwMDBBMEQwMAor
I2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzXzQgMHgwMDBBMEQwNAogI2RlZmluZSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0IDB4MDAwQTBFMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xNF80IDB4MDAwQTBFMDQKICNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8x
MF8xNSAweDAwMEEwRjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSAweDAw
MEEwRjAxCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfNCAweDAwMEEwRjA0CkBA
IC0xNjEsNiArMTcxLDc1IEBACiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCisvLyBCZWNhdXNlIGl0
IGlzIG5vdCBwb3NzaWJsZSB0byBmb3J3YXJkLWRlY2xhcmUgZHlsZF9idWlsZF92ZXJzaW9uX3Qg
dmFsdWVzLAorLy8gd2UgZm9yd2FyZC1kZWNsYXJlIHBsYWNlaG9sZGVycyBmb3IgYW55IG1pc3Np
bmcgZGVmaW5pdGlvbnMsIGFuZCB1c2UgdGhlaXIgZW1wdHkKKy8vIHZhbHVlIHRvIGluZGljYXRl
IHRoYXQgd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gYW50aXF1ZSBzaW5nbGUtcGxhdGZvcm0gU0RL
IGNoZWNrcy4KKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucworI2RlZmluZSBk
eWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTVfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTdfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTdfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfc3ByaW5nXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAxOF9vc192
ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisK
KyNpZm5kZWYgZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHls
ZF9zcHJpbmdfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwg
MCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3Nf
dmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9sYXRlX2ZhbGxfMjAxOV9vc192ZXJzaW9ucyAoeyAoZHls
ZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9z
cHJpbmdfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIwX29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucworI2RlZmluZSBkeWxk
X2xhdGVfZmFsbF8yMDIwX29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAw
LCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3NwcmluZ18yMDIxX29zX3ZlcnNpb25z
CisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjFfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVy
c2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDIxX29z
X3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3Nwcmlu
Z18yMDIyX29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIwMjJfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCiB1aW50MzJf
dCBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9uKCk7Citib29sIGR5bGRfcHJvZ3JhbV9zZGtf
YXRfbGVhc3QoZHlsZF9idWlsZF92ZXJzaW9uX3QpOwogCiBXVEZfRVhURVJOX0NfRU5ECmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
OGNlNzg5NTllZWQzMDNjMmJkMWFiNzYyNWI4YjE5NWNhMzFkYjYwNi4uNWZhNjEyZjVmODBkZWNm
NjJiY2E3Y2I3YmMyYmY3OWZhYzg0ZDUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIGJvb2wgYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBHaXZlbiB0aGF0IFdpbmRvd1Byb3h5IGlzIHRo
ZSBkZWZhdWx0IHx0aGlzfCB2YWx1ZSBmb3Igc2xvcHB5IG1vZGUgZnVuY3Rpb25zLCBpdCdzIGhh
cmQgdG8gcHJvdmUKICAgICAvLyB0aGF0IG9sZGVyIGlPUyBhbmQgbWFjT1MgYXBwcyBkb24ndCBh
Y2NpZGVudGFsbHkgZGVwZW5kIG9uIHRoaXMgYmVoYXZpb3IsIHNvIHdlIGtlZXAgaXQgZm9yIHRo
ZW0uCi0gICAgc3RhdGljIGJvb2wgcmVxdWlyZXNRdWlyayA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RL
VmVyc2lvbjo6Rmlyc3RXaXRob3V0RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9FeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldp
bmRvdyk7CiAgICAgcmV0dXJuIHJlcXVpcmVzUXVpcms7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKaW5kZXgg
MjcyMWI3NzZhZTY3YWI2NmZkMzViZWNjNDFmMTdjMTQ3ZjJhMzVlMC4uY2E3OTM4ZTc5NDUwOGM3
YzNhYWY5YzY3YjM0NzNjNWIzNGQ2MTcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXaW5kb3dQcm94eS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIEpTV2luZG93UHJv
eHk6OnNldFdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyYgZG9tV2luZG93KQogICAgICAgICB3aW5k
b3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBsb2NhbFdpbmRv
dywgdGhpcyk7CiAgICAgICAgIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IHRydWU7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgICAgIGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaXRoRE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CisgICAgICAg
IGxpbmtlZFdpdGhOZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uKTsKICNlbmRpZgogICAgICAg
ICBpZiAoIWxvY2FsV2luZG93LmRvY3VtZW50KCktPmhhdmVJbml0aWFsaXplZFNlY3VyaXR5T3Jp
Z2luKCkgJiYgbGlua2VkV2l0aE5ld1NESykKICAgICAgICAgICAgIGxvY2FsV2luZG93LnNldEFz
V3JhcHBlZFdpdGhvdXRJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyZDgxZjE0NWFiMDVlOWI2YzBj
NTgxY2M5OGNkOGI0N2RlOTkyNWZlLi4xNzBiMWZlODQyZTUzYTI2MDkyNThiNjY2OTVjZTZjNzI2
ZDliODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
QEAgLTg1Nyw3ICs4NTcsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OnJlcXVpcmVzRnVs
bHNjcmVlbkZvclZpZGVvUGxheWJhY2soKSBjb25zdAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKENvY29hQXBwbGljYXRpb246OmlzSUJvb2tzKCkpCiAgICAgICAgIHJldHVybiAh
bV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3
ZWJraXRfcGxheXNpbmxpbmVBdHRyKSAmJiAhbV9lbGVtZW50Lmhhc0F0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpwbGF5c2lubGluZUF0dHIpOwotICAgIGlmICghbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFVucHJlZml4ZWRQbGF5c0lubGluZUF0
dHJpYnV0ZSkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAppbmRleCBjMzYwOWEy
MjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjLi5kYzg2OTk2NjA5ZWFjNDc3ODdkOGVi
NTQ1YjI5OGU5YjE4N2U3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIHJlCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6
TW9kZTo6Q29ycyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgbmVlZHNQ
cmVmbGlnaHRRdWlyayA9IElPU0FwcGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TW92aVN0YXJQbHVzQ09SU1ByZWZs
aWdodFF1aXJrKSAmJiAobV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xp
Y3k6OkNvbnNpZGVyIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9s
aWN5OjpGb3JjZSk7CisgICAgYm9vbCBuZWVkc1ByZWZsaWdodFF1aXJrID0gSU9TQXBwbGljYXRp
b246OmlzTW92aVN0YXJQbHVzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vTW92aVN0YXJQbHVzQ09SU1ByZWZsaWdodFF1aXJrKSAmJiAo
bV9vcHRpb25zLnByZWZsaWdodFBvbGljeSA9PSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyIHx8
IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpGb3JjZSk7CiAj
ZWxzZQogICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IGZhbHNlOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1F1aXJrcy5jcHAKaW5kZXggZGRiYTgzNWVmODkyMDNhYWVhZGExZDMwM2IyMzY5NDU4ZDQ3
MjgxMi4uODU1ZjhhNzkzOGRlYzQ1ODliZGQyODRiNTQ0MjRlYjMzZjhjYjhjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUXVpcmtzLmNwcApAQCAtNzA3LDcgKzcwNyw3IEBAIGJvb2wgUXVpcmtzOjpuZWVkc0Z1bGxz
Y3JlZW5EaXNwbGF5Tm9uZVF1aXJrKCkgY29uc3QKIGJvb2wgUXVpcmtzOjpuZWVkc1dlQ2hhdFNj
cm9sbGluZ1F1aXJrKCkgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIG5l
ZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRX
ZUNoYXRTY3JvbGxpbmdRdWlyaykgJiYgSU9TQXBwbGljYXRpb246OmlzV2VjaGF0KCk7CisgICAg
cmV0dXJuIG5lZWRzUXVpcmtzKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0
aW9uOjppc1dlY2hhdCgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKQEAgLTcx
Niw3ICs3MTYsNyBAQCBib29sIFF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNv
bnN0CiBib29sIFF1aXJrczo6c2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRpYyBib29sIHNob3VsZE9t
aXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzID0gIWxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKTsKICAgICByZXR1cm4gc2hvdWxk
T21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFByb3BlcnR5TmFtZXM7CiAjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjQ5NDIy
N2FkNTRiMjY0NGIyMGYyNWZjYzMzMWExOTljMTRkNGI4MS4uNjhlNTllMmE3MjMxZWZmMmJjYmFj
YjViYWY4MjliODIyZjE1MTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzVW5pcXVlT3Jp
Z2luKGNvbnN0IFVSTCYgdXJsKQogICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8j
b3JpZ2luIHdpdGggc29tZSBhZGRpdGlvbnMKICAgICBpZiAodXJsLmhhc1NwZWNpYWxTY2hlbWUo
KQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aE51bGxPcmlnaW5Gb3JOb25TcGVjaWFsU2NoZW1lZFVSTHMpCisgICAg
ICAgIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKQogICAgICAgICB8fCB1cmwucHJv
dG9jb2xJcygiYXBwbGV3ZWJkYXRhIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBw
bGUtcWwtaWQiKQogICAgICAgICB8fCB1cmwucHJvdG9jb2xJcygieC1hcHBsZS1xbC1pZDIiKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCmluZGV4IDE4OTA1M2Y5Mjg1Zjk4ODZmYTU5Yjg4N2E3
MmEwZDVlYzkxMDQ4OTMuLjdmOWRmODdmOWE4Y2I3YTVhYzQyYzdjOTNmZGMyMzAxYjUxOGIzZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKQEAgLTI1MCw5ICsyNTAsOSBAQCBwcml2YXRl
Ogogc3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NUaHJlYWRTYWZldHlDaGVjaygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gV2ViVGhyZWFkSXNFbmFibGVkKCkgfHwg
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CisgICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxlZCgpIHx8ICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpUaW1lclRocmVhZFNhZmV0eUNo
ZWNrcyk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuICFpc0luV2ViUHJvY2Vzcygp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRTYWZl
dHlDaGVja3MpOworICAgIHJldHVybiAhaXNJbldlYlByb2Nlc3MoKSAmJiAhbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRTYWZldHlD
aGVja3MpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcAppbmRleCBkZWFlMzIyM2NiMzE1M2ZmMzFmZWJmNjM2ZDE5MDUyYzI2NTQyMzQyLi5k
OTMxMmE5YTNjOGI4MmE3NjFlYWQzYTU5MDZmMWRlMDAyN2E4MzBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29y
ZVRleHQuY3BwCkBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBzdHJ1Y3QgRm9udExvb2t1cCB7CiAKIHN0
YXRpYyBib29sIGlzRG90UHJlZml4ZWRGb3JiaWRkZW5Gb250KGNvbnN0IEF0b21TdHJpbmcmIGZh
bWlseSkKIHsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0Rm9yYmlk
ZGluZ0RvdFByZWZpeGVkRm9udHMpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpGb3JiaWRzRG90UHJlZml4ZWRGb250cykpCiAgICAg
ICAgIHJldHVybiBmYW1pbHkuc3RhcnRzV2l0aCgnLicpOwogICAgIHJldHVybiBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIuYXBwbGVzeXN0ZW11aWZvbnRzZXJpZiIpCiAg
ICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgIi5zZiBucyBt
b25vIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVS
TERlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVj
b2Rlci5jcHAKaW5kZXggYWY1M2Q2NDE4ZGM1MTY1MmYyYTEwNzk4NTdlZTM3OGZjYTM4NDBlZC4u
Y2NiNzE4YzA2MDFhNDU2NTc2ZDRhNjM3NWU0YjYxZTZmOGUzNzM4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9EYXRhVVJMRGVjb2Rlci5jcHAKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIERhdGFVUkxEZWNvZGVyIHsKIHN0YXRpYyBib29sIHNob3VsZFJl
bW92ZUZyYWdtZW50SWRlbnRpZmllcihjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRhdGFVUkxGcmFnbWVudFJlbW92YWwp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBITFMgdXNlcyAjIGluIHRoZSBtaWRk
bGUgb2YgdGhlIG1hbmlmZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2Vi
Q29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCAxYmQ2MjcyMjNiZDcwMmIxOTBkNzRjMDA2YzgxNTJm
MTEwZTJkYzFiLi4wYzBkYjhmZWE4YTdmNGE2MTVkMWM5NjQ1N2FlZGFiNTRmOGQ0NjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBA
IC0xNTAsOCArMTUwLDcgQEAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sIGFs
bG93QW55U1NMQ2VydGlmaWNhdGUpCiB2b2lkIHNldExpbmtlZE9uT3JBZnRlckV2ZXJ5dGhpbmdG
b3JUZXN0aW5nKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRBcHBsaWNhdGlvblNE
S1ZlcnNpb24oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVy
eXRoaW5nKTsKKyAgICBlbmFibGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiAjZW5kaWYKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZTFmYWI4ZTlkOGFlMjFlYjBkN2Y5ODllMmFkNWUz
M2JlNjM2YjQzMy4uZDI5YWI3YzZmYjQzYjE3NTFlM2ZlNzUxNjU2OTMwMWUzNjZmZGU0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCkBAIC00OTgsNyArNDk4LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBPcmlnaW4oKTsKIAogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChhdXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVh
ZGVyRmllbGQoV2ViQ29yZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9y
aXphdGlvbi5pc051bGwoKSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRo
QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCisgICAgICAgIGlmIChh
dXRvIGF1dGhvcml6YXRpb24gPSBtX2ZpcnN0UmVxdWVzdC5odHRwSGVhZGVyRmllbGQoV2ViQ29y
ZTo6SFRUUEhlYWRlck5hbWU6OkF1dGhvcml6YXRpb24pOyAhYXV0aG9yaXphdGlvbi5pc051bGwo
KSAmJiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpB
dXRob3JpemF0aW9uSGVhZGVyT25TYW1lT3JpZ2luUmVkaXJlY3RzKSkKICAgICAgICAgICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3Jp
emF0aW9uLCBhdXRob3JpemF0aW9uKTsKIAogI2lmIFVTRShDUkVERU5USUFMX1NUT1JBR0VfV0lU
SF9ORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggN2IwNDJhMzY1M2M1OWVh
MTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZi4uZWZkMmIxMzlhNTg4ODE2NGFlMzg1ODg1OTEwOTI4
NzQyMzA4ZjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTA5Miw3ICsxMDkyLDcgQEAgc3Rh
dGljIE5TVVJMU2Vzc2lvbkNvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAgICAgY29uZmlndXJhdGlvbiA9IFtOU1VSTFNlc3Np
b25Db25maWd1cmF0aW9uIGRlZmF1bHRTZXNzaW9uQ29uZmlndXJhdGlvbl07CiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29r
dXAgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0Q2xpZW50Q2VydGlm
aWNhdGVMb29rdXApIHx8IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKKyAgICBib29sIHByZXZlbnRD
Rk5ldHdvcmtDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhC
ZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vQ2xpZW50Q2VydGlmaWNhdGVMb29rdXApIHx8
IHNlc3Npb24uaXNFcGhlbWVyYWwoKTsKICNlbHNlCiAgICAgYm9vbCBwcmV2ZW50Q0ZOZXR3b3Jr
Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BdXhpbGlhcnlQcm9jZXNzLmgKaW5kZXggOTJiNzgyOTg1OTNjMzJjOTVjZTdjNzJkZWI4ZTc3
MWU4NjExNmE1NC4uMTA2Njk1ODc0NDBiZmIyNWQzN2U3YmJhZThmOTExZmVlOTAzZjI0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaApAQCAtMTgwLDE0ICsxODAsMTMg
QEAgc3RydWN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMgewogICAg
IFN0cmluZyB1aVByb2Nlc3NOYW1lOwogICAgIFN0cmluZyBjbGllbnRJZGVudGlmaWVyOwogICAg
IFN0cmluZyBjbGllbnRCdW5kbGVJZGVudGlmaWVyOwotICAgIHVpbnQzMl90IGNsaWVudFNES1Zl
cnNpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcj4gcHJv
Y2Vzc0lkZW50aWZpZXI7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5pdGlhbGl6
YXRpb25EYXRhOwogICAgIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9TT2JqZWN0UHRyPHhwY19vYmplY3RfdD4gcHJp
b3JpdHlCb29zdE1lc3NhZ2U7Ci0gICAgc3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZT4gY2xpZW50TGlua2VkT25PckFmdGVyT3ZlcnJpZGU7CisgICAgU0RLQWxpZ25lZEJlaGF2
aW9ycyBjbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KaW5kZXgg
NWNiMGJkYzRkZjQ3OTQ0ZDY0NGVhMDc3NzExMTBjYmFiYWJiZGI0Zi4uN2I1NmQ0NjBjOTEyMDhm
NDY0ZmU4MmQwYTQ3OTUzMjg3NDQzYzQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQpAQCAtNzcsOCArNzcsNyBAQCB2b2lk
IEF1eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBBdXhpbGlhcnlQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYQogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
Y2hhbmdlQ3VycmVudERpcmVjdG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQ
YXRoXV07CiAKICAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIocGFy
YW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKLSAgICBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKTsKKyAg
ICBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKHBhcmFtZXRlcnMuY2xpZW50U0RLQWxpZ25lZEJlaGF2
aW9ycyk7CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxD
aGVja2VyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5tbQppbmRleCBmMmM0NWJhYmUzNDY2NTMxZjFlMTlkNmYxNDkzMjE4YWY4ODQ3
ZmM5Li41NDdhZjllOWRkNGIzYTFhZDg2Yjk1YTc1MTYxM2Y3NTlmZmE4YjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXIubW0KQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVGhyb3dFeGNl
cHRpb25Gb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGwoKQogICAgIHN0YXRpYyBib29s
IHNob3VsZFRocm93RXhjZXB0aW9uOwogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgc2hvdWxkVGhyb3dFeGNlcHRp
b24gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvckR1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMpOworICAgICAgICBzaG91bGRUaHJvd0V4Y2Vw
dGlvbiA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OkV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKICAgICB9KTsK
ICAgICByZXR1cm4gc2hvdWxkVGhyb3dFeGNlcHRpb247CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNm
NTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcuLjNhMTZhMmNjMzk0NGM0MjExNDUz
OThiY2YxNGUyYjU2NmU3YTUzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9p
ZCBkZXRlcm1pbmVJVFBTdGF0ZSgpCiAgICAgaWYgKGN1cnJlbnRJVFBTdGF0ZSAhPSBJVFBTdGF0
ZTo6VW5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBhcHBXYXNMaW5r
ZWRPbk9yQWZ0ZXIgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoU2Vzc2lv
bkNsZWFudXBCeURlZmF1bHQpOworICAgIGJvb2wgYXBwV2FzTGlua2VkT25PckFmdGVyID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2Vzc2lvbkNs
ZWFudXBCeURlZmF1bHQpOwogCiAgICAgaXRwUXVldWUoKSA9IFdvcmtRdWV1ZTo6Y3JlYXRlKCJj
b20uYXBwbGUuV2ViS2l0Lml0cENoZWNrUXVldWUiKTsKICAgICBpdHBRdWV1ZSgpLT5kaXNwYXRj
aChbYXBwV2FzTGlua2VkT25PckFmdGVyLCBidW5kbGVJZGVudGlmaWVyID0gV2ViQ29yZTo6YXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkuaXNvbGF0ZWRDb3B5KCldIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCmluZGV4
IGIwZTAxNTkxODEyZWU2MzkxMTk5ZWIwZmZlOWMyMzBhZmQ5ODBmN2UuLjE0ZTdjYzI1YjIwMjY4
YmZhZjlhNmQ2Y2MwNTQwM2NhOWM2YzkwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbQpAQCAtNjQsNyArNjQsNyBAQCB2
b2lkIEluaXRpYWxpemVXZWJLaXQyKCkKICAgICAvLyBNYWtlIHN1cmUgdGhlIGluaXRpYWxpemF0
aW9uIGNvZGUgaXMgcnVuIG9ubHkgb25jZSBhbmQgb24gdGhlIG1haW4gdGhyZWFkIHNpbmNlIHRo
aW5ncyBsaWtlIGluaXRpYWxpemVNYWluVGhyZWFkKCkKICAgICAvLyBhcmUgb25seSBzYWZlIHRv
IGNhbGwgb24gdGhlIG1haW4gdGhyZWFkLgogICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsK
LSAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFdpdGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24p
KQorICAgICAgICBpZiAoW05TVGhyZWFkIGlzTWFpblRocmVhZF0gfHwgbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SW5pdGlhbGl6ZVdlYktpdDJNYWlu
VGhyZWFkQXNzZXJ0aW9uKSkKICAgICAgICAgICAgIHJ1bkluaXRpYWxpemF0aW9uQ29kZSgpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaFN5bmMo
W10geyBydW5Jbml0aWFsaXphdGlvbkNvZGUoKTsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCmluZGV4IGJhYTAxMjU3MDc3
N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5NTkuLmE1MmFkYzAxN2NlMjcwNzUxOTFmMTM3OTlk
MmFhNWM5Yzc1ZTQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBAIC02Miw5ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UHJvY2Vzc0lkZW50aWZpZXIoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50SWRlbnRpZmllcihTdHJpbmcmIGNsaWVu
dElkZW50aWZpZXIpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVy
KFN0cmluZyYgY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES1ZlcnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRDbGllbnRQcm9jZXNzTmFtZShTdHJpbmcmIGNsaWVudFByb2Nlc3NOYW1lKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mKTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50U0RL
QWxpZ25lZEJlaGF2aW9ycyhTREtBbGlnbmVkQmVoYXZpb3JzJik7CiAgICAgdmlydHVhbCBib29s
IGdldEV4dHJhSW5pdGlhbGl6YXRpb25EYXRhKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSk7CiAKIHByb3RlY3RlZDoKQEAgLTEzNSwxMCArMTM0LDcgQEAg
dm9pZCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXIoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4g
Y29ubmVjdGlvbiwgeHBjX29iamVjdF8KICAgICAvLyBUaGUgaG9zdCBwcm9jZXNzIG1heSBub3Qg
aGF2ZSBhIGJ1bmRsZSBpZGVudGlmaWVyIChlLmcuIGEgY29tbWFuZCBsaW5lIGFwcCksIHNvIGRv
bid0IHJlcXVpcmUgb25lLgogICAgIGRlbGVnYXRlLmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIo
cGFyYW1ldGVycy5jbGllbnRCdW5kbGVJZGVudGlmaWVyKTsKICAgICAKLSAgICBkZWxlZ2F0ZS5n
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShwYXJhbWV0ZXJzLmNsaWVudExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTsKLQotICAgIGlmICghZGVsZWdhdGUuZ2V0Q2xpZW50U0RLVmVyc2lvbihwYXJh
bWV0ZXJzLmNsaWVudFNES1ZlcnNpb24pKQotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Cisg
ICAgZGVsZWdhdGUuZ2V0Q2xpZW50U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVu
dFNES0FsaWduZWRCZWhhdmlvcnMpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
cHJvY2Vzc0lkZW50aWZpZXI7CiAgICAgaWYgKCFkZWxlZ2F0ZS5nZXRQcm9jZXNzSWRlbnRpZmll
cihwcm9jZXNzSWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1Nl
cnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KaW5kZXggY2I3MjQwZDg1ZDI1ZTE3MzFjM2Q0
NmViMzZhZTdjZjc2ODY0OGU2My4uNjM2OGNmOTZlYTk2NTI3MmMxY2M3Yjc3OTRmYWUzMjQ4MDA1
ODhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGll
cy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlRW50cnlQb2ludC5tbQpAQCAtODIsMjAgKzgyLDE1IEBAIGJvb2wgWFBDU2VydmljZUluaXRp
YWxpemVyRGVsZWdhdGU6OmdldENsaWVudEJ1bmRsZUlkZW50aWZpZXIoU3RyaW5nJiBjbGllbnRC
dW5kCiAgICAgcmV0dXJuICFjbGllbnRCdW5kbGVJZGVudGlmaWVyLmlzRW1wdHkoKTsKIH0KIAot
Ym9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0Q2xpZW50U0RLVmVyc2lvbih1
aW50MzJfdCYgY2xpZW50U0RLVmVyc2lvbikKK2Jvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGU6OmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYg
YmVoYXZpb3JzKQogewotICAgIGF1dG8gdmVyc2lvbiA9IHBhcnNlSW50ZWdlcjx1aW50MzJfdD4o
eHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1z
ZGstdmVyc2lvbiIpKTsKLSAgICBjbGllbnRTREtWZXJzaW9uID0gdmVyc2lvbi52YWx1ZV9vcigw
KTsKLSAgICByZXR1cm4gdmVyc2lvbi5oYXNfdmFsdWUoKTsKLX0KKyAgICBzaXplX3QgbGVuZ3Ro
ID0gMDsKKyAgICBhdXRvIGJlaGF2aW9yRGF0YSA9IHhwY19kaWN0aW9uYXJ5X2dldF9kYXRhKG1f
aW5pdGlhbGl6ZXJNZXNzYWdlLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsICZsZW5n
dGgpOworICAgIGlmICghbGVuZ3RoIHx8ICFiZWhhdmlvckRhdGEpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPT0gYmVoYXZpb3JzLnN0b3JhZ2VMZW5n
dGhJbkJ5dGVzKCkpOworICAgIG1lbWNweShiZWhhdmlvcnMuc3RvcmFnZSgpLCBiZWhhdmlvckRh
dGEsIGxlbmd0aCk7CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJp
ZGU+JiBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZSkKLXsKLSAgICBhdXRvIGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlVmFsdWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUobV9pbml0aWFsaXplck1l
c3NhZ2UsICJjbGllbnQtbGlua2VkLW9uLW9yLWFmdGVyLW92ZXJyaWRlIik7Ci0gICAgaWYgKGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpCi0gICAgICAgIGxpbmtlZE9uT3JBZnRlck92ZXJy
aWRlID0geHBjX2Jvb2xfZ2V0X3ZhbHVlKGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUpID8g
TGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyA6IExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nOwotICAgIGVsc2UKLSAgICAgICAgbGlua2VkT25P
ckFmdGVyT3ZlcnJpZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMu
Y3BwCmluZGV4IDZhOWYyZWYyN2U0ZTZjMGRhNTdkMWRiYzRkMjZkOTIyZmY3NTE5OTEuLmY4M2Qw
MWEyMDQzYWVlNWQ1MzFiN2ZiYjVmMzMwMWRiYjE1ZTdiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmNwcApAQCAtNDQsMTMg
KzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBib29sIGRlZmF1bHRQYXNzaXZlVG91Y2hM
aXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
CiBib29sIGRlZmF1bHRDU1NPTVZpZXdTY3JvbGxpbmdBUElFbmFibGVkKCkKIHsKLSAgICBzdGF0
aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxp
bmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRJTURiQ1NTT01WaWV3U2Nyb2xs
aW5nUXVpcmspOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0lNRGIoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6Tm9JTURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmspOwogICAgIHJldHVybiAh
cmVzdWx0OwogfQogCkBAIC02NywxMyArNjcsMTMgQEAgYm9vbCBkZWZhdWx0QWx0ZXJuYXRlRm9y
bUNvbnRyb2xEZXNpZ25FbmFibGVkKCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlV2hlZWxM
aXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBkZWZhdWx0V2hlZWxFdmVudEdlc3R1cmVzQmVjb21lTm9uQmxvY2tpbmcoKQogewotICAgIHN0
YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRB
bGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKKyAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpBbGxvd3NXaGVlbEV2ZW50R2VzdHVyZXNUb0JlY29tZU5vbkJsb2NraW5nKTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBkZWZhdWx0QXBw
bGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZCgpCiBib29sIGRlZmF1bHRPZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHN0YXRp
YyBib29sIG5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhBcHBs
aWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOworICAgIHN0YXRpYyBib29sIG5ld1NESyA9
IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CiAgICAgcmV0dXJuICFuZXdTREs7CiAjZWxz
ZQogICAgIC8vIEZJWE1FOiBPdGhlciBwbGF0Zm9ybXMgc2hvdWxkIGNvbnNpZGVyIHR1cm5pbmcg
dGhpcyBvZmYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA1
ZWJjNWI4YTc0OWJmZWNiNGNiNTI3YzVkNDJjOGM5NThmNjczZjg4Li4yZDJjYTcwMWM5MDkyNjEz
Zjk2YzdhYjEwMmZlMmEyZjIyNGQ4ZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIFdLUGFnZVJlbG9hZChXS1BhZ2VS
ZWYgcGFnZVJlZikKICAgICBDUkFTSF9JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9uczsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVs
b2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAgICAgcmVs
b2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2wubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbQppbmRleCA5MDQzNDU1YTVmNjE4NmYzZmY4YWY3OTgwN2UxOTQyNGViMGRkOGZjLi42
NThkY2YwNzFhODUwYWFmNDQyMzRjMmUwYzJlNGI0MTYzZjI3NzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpAQCAtNDk4LDgg
KzQ5OCw3IEBAICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsKIAogKyAodm9p
ZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiB7Ci0gICAgc2V0QXBw
bGljYXRpb25TREtWZXJzaW9uKDApOwotICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExp
bmtlZE9uT3JBZnRlck92ZXJyaWRlOjpCZWZvcmVFdmVyeXRoaW5nKTsKKyAgICBkaXNhYmxlQWxs
U0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJF
dmVyeXRoaW5nRm9yVGVzdGluZwpAQCAtNTA5LDggKzUwOCw3IEBAICsgKHZvaWQpX3NldExpbmtl
ZE9uT3JBZnRlckV2ZXJ5dGhpbmdGb3JUZXN0aW5nCiAKICsgKHZvaWQpX3NldExpbmtlZE9uT3JB
ZnRlckV2ZXJ5dGhpbmcKIHsKLSAgICBzZXRBcHBsaWNhdGlvblNES1ZlcnNpb24oc3RkOjpudW1l
cmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBlbmFi
bGVBbGxTREtBbGlnbmVkQmVoYXZpb3JzKCk7CiB9CiAKICsgKHZvaWQpX3NldENhcHRpdmVQb3J0
YWxNb2RlRW5hYmxlZEdsb2JhbGx5Rm9yVGVzdGluZzooQk9PTClpc0VuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4M2Y0ZmMy
ODNjMzQ3ODUxODE5ZWI2NzVjZWM4YzI4NjYxNzZkMTguLmFiMDc0Y2I0YjMzMTA0ZjViODk3YWU5
Y2NhYjQyOTgxZTRmZTI1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtMjQyLDEzICsyNDIsMTMgQEAgLSAoQk9PTClfaXNWYWxpZAog
CiBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFBpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOwogICAgIHJldHVy
biBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrOwogfQogCiBzdGF0aWMg
Ym9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9T
QXBwbGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdERpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJMcyA9IChX
ZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNDYXJkaW9ncmFtKCkgfHwgV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzTmlrZSgpKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6RGlzYWxsb3dzU2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
cyk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxlVVJM
czsKIH0KIApAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93U2V0dGlu
Z0FueVhIUkhlYWRlckZyb21GaWxlVVJMcygpCiBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlk
ZW8pOworICAgIHN0YXRpYyBib29sIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVx
dWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVz
ZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTI2Niw3
ICsyNjYsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRl
bygpCiAKIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQogewotICAg
IHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0
ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOworICAgIHN0
YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1l
cyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAKQEAgLTM0
NCw3ICszNDQsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgICAgIFdLUHJvY2Vzc1Bvb2wg
KnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wgPSBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0
aW9uIHByb2Nlc3NQb29sXTsKICAgICAgICAgaWYgKHByb2Nlc3NQb29sICYmIHByb2Nlc3NQb29s
ICE9IHJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2wpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiUmVsYXRlZCB3ZWIgdmll
dyAlQCBoYXMgcHJvY2VzcyBwb29sICVAIGJ1dCBjb25maWd1cmF0aW9uIHNwZWNpZmllcyBhIGRp
ZmZlcmVudCBwcm9jZXNzIHBvb2wgJUAiLCByZWxhdGVkV2ViVmlldywgcmVsYXRlZFdlYlZpZXdQ
cm9jZXNzUG9vbCwgY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbF07Ci0gICAgICAgIGlmIChbcmVs
YXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdICE9IFtfY29uZmln
dXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0
b3JlcykpCisgICAgICAgIGlmIChbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdICE9IFtfY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAmJiBsaW5r
ZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25z
Rm9yUmVsYXRlZFdlYlZpZXdzVXNpbmdEaWZmZXJlbnREYXRhU3RvcmVzKSkKICAgICAgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJS
ZWxhdGVkIHdlYiB2aWV3ICVAIGhhcyBkYXRhIHN0b3JlICVAIGJ1dCBjb25maWd1cmF0aW9uIHNw
ZWNpZmllcyBhIGRpZmZlcmVudCBkYXRhIHN0b3JlICVAIiwgcmVsYXRlZFdlYlZpZXcsIFtyZWxh
dGVkV2ViVmlldy0+X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0sIFtfY29uZmlndXJh
dGlvbiB3ZWJzaXRlRGF0YVN0b3JlXV07CiAKICAgICAgICAgW19jb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnJlbGF0ZWRXZWJWaWV3UHJvY2Vzc1Bvb2xdOwpAQCAtMzY4LDcgKzM2OCw3IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3Ig
PSAxOwogICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0gZGVmYXVsdEFsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQ7Ci0gICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CisgICAg
X2FsbG93c0xpbmtQcmV2aWV3ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TGlua1ByZXZpZXdFbmFibGVkQnlEZWZhdWx0KTsKIAogI2lmIEhBVkUo
VUlGSU5ESU5URVJBQ1RJT04pCiAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBOTzsKQEAg
LTUxNSw3ICs1MTUsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnByZWZlcmVuY2VzKCktPnNldEFsbG93U2V0dGluZ0FueVhIUkhlYWRlckZyb21GaWxl
VVJMcyhzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKSk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFNob3VsZERlY2lkZVBvbGljeUJl
Zm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3KCEhW19jb25maWd1cmF0aW9uIF9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlld10pOwogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCi0gICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNl
dERldmljZU9yaWVudGF0aW9uUGVybWlzc2lvbkFQSUVuYWJsZWQobGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkFQ
SSkpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXREZXZpY2VPcmll
bnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25Q
ZXJtaXNzaW9uQVBJKSk7CiAjZW5kaWYKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnNldFN5c3RlbVByZXZpZXdFbmFibGVkKCEh
W19jb25maWd1cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pOwpAQCAtNTcwLDcgKzU3MCw3
IEBAIC0gKHZvaWQpX3NldHVwUGFnZUNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYpcGFnZUNvbmZpZ3VyYXRpb24KICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVy
ZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2UoW19jb25maWd1cmF0
aW9uIF9zYW1wbGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZV0pOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTYW1wbGVkUGFnZVRvcENvbG9yTWluSGVpZ2h0KFtf
Y29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodF0pOwogCi0gICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVNpdGVTcGVjaWZpY1F1aXJr
c0FyZUVuYWJsZWRCeURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtODgwLDcgKzg4MCw3IEBAIC0gKFdLTmF2aWdhdGlvbiAqKXJlbG9hZAogewogICAgIFRI
Uk9XX0lGX1NVU1BFTkRFRDsKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UmVsb2FkT3B0aW9uPiBy
ZWxvYWRPcHRpb25zOwotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZp
b3IpKQogICAgICAgICByZWxvYWRPcHRpb25zLmFkZChXZWJDb3JlOjpSZWxvYWRPcHRpb246OkV4
cGlyZWRPbmx5KTsKIAogICAgIHJldHVybiB3cmFwcGVyKF9wYWdlLT5yZWxvYWQocmVsb2FkT3B0
aW9ucykpOwpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgLSAodm9pZCl0YWtlU25hcHNob3RXaXRoQ29u
ZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3UKICAg
ICAgICAgfV07CiAgICAgfTsKIAotICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFz
bmFwc2hvdENvbmZpZ3VyYXRpb24uYWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewor
ICAgIGlmICgoc25hcHNob3RDb25maWd1cmF0aW9uICYmICFzbmFwc2hvdENvbmZpZ3VyYXRpb24u
YWZ0ZXJTY3JlZW5VcGRhdGVzKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpKSB7CiAgICAgICAg
IGNhbGxTbmFwc2hvdFJlY3QoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggZDMxNTYyM2YzNDJiMGNkMDUwMmIwZTVmNjEyYzNhZTcxZmY1ZDU5Yi4u
MTJiOWM1MDcyZWQ3MzI4ZDQwYzRmM2VjYzdhYTYyNDlmY2E2ZGY4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgX1dLRHJhZ0xpZnREZWxheSB0b0Ry
YWdMaWZ0RGVsYXkoTlNVSW50ZWdlciB2YWx1ZSkKIHN0YXRpYyBib29sIGRlZmF1bHRTaG91bGRE
ZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpCiB7CiAjaWYgVVNFKFFV
SUNLX0xPT0spCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0VGhhdERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29r
UHJldmlldyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkRGVjaWRlID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVjaWRlc1BvbGljeUJlZm9yZUxv
YWRpbmdRdWlja0xvb2tQcmV2aWV3KTsKICAgICByZXR1cm4gc2hvdWxkRGVjaWRlOwogI2Vsc2UK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDMsNyArMjAzLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWlu
aXQKICAgICBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiA9ICFfYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjazsKICAgICBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
ID0gX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCi0g
ICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJB
Y3Rpb25Gb3JQbGF5YmFjaykpCiAgICAgICAgIF9tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvOwogICAgIGVsc2UKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KaW5kZXggNTZhMGUwZDgzOTkyOGRhZTgxMmYwNmNiMjgyOGMyMjM2
NWI2N2NlOS4uZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1MTE2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopbm9u
UGVyc2lzdGVudERhdGFTdG9yZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewotICAgIGlmIChs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5p
dFJldHVybmluZ05pbCkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OldLV2Vic2l0ZURhdGFTdG9yZUluaXRSZXR1cm5pbmdOaWwpKQog
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9uIGZvcm1hdDpAIkNh
bGxpbmcgW1dLV2Vic2l0ZURhdGFTdG9yZSBpbml0XSBpcyBub3Qgc3VwcG9ydGVkLiJdOwogICAg
IAogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCA0MDgxOWIxYzVmOWZmYjAxZTE0
YmY4ODgwZGE2ZWI0NGRlYzI1ODJlLi4xN2I4YzZmMDc3OWRjNjFkYzJkNTQ0MTliMzZjNTliMzhm
MmMxNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5tbQpAQCAtNjQ2LDcgKzY0Niw3IEBAIC0gKFVJRWRnZUluc2V0cylfY29udGVudEluc2V0
c0Zyb21TeXN0ZW1NaW5pbXVtTGF5b3V0TWFyZ2lucwogCiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1
dGVkT2JzY3VyZWRJbnNldAogewotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0cykp
IHsKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OlNjcm9sbFZpZXdDb250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzKSkgewog
ICAgICAgICAvLyBGb3IgYmluYXJ5IGNvbXBhYmlsaXR5IHdpdGggdGhpcmQgcGFydHkgYXBwcywg
dHJlYXQgc2Nyb2xsIHZpZXcgY29udGVudCBpbnNldHMgYXMgb2JzY3VyaW5nIGluc2V0cyB3aGVu
IHRoZSBhcHAgaXMgY29tcGlsZWQKICAgICAgICAgLy8gYWdhaW5zdCBhIFdlYktpdCB2ZXJzaW9u
IHdpdGhvdXQgdGhlIGZpeCBpbiByMjI5NjQxLgogICAgICAgICByZXR1cm4gW3NlbGYgX2NvbXB1
dGVkQ29udGVudEluc2V0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1dlYlZpZXdNYWMubW0KaW5kZXggZDI5Y2M1Y2QzOTkxZThhNTlhY2U5ODBhMTFkZjAzMWQyMjc0
NjIyMC4uNTFiOWJkYjBmN2ZiNDI5YzZmNTJhZGZjMmYyMTZlYjdkMjRhNGYyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTExODYs
NyArMTE4Niw3IEBAIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJfZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uRm9yRHJhZ2dpbmdJbmZvOihpZCA8TlNEcmFnCiAgICAgaWYgKFt1aURlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTWFza0ZvckRyYWdnaW5nSW5mbzopXSkKICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93
ZWJWaWV3OnNlbGYgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpkcmFn
Z2luZ0luZm9dOwogCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRyb3BUb05hdmlnYXRl
RGlzYWxsb3dlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFj
dGlvbkFueTsKIAogICAgIHJldHVybiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbkFueSAmIH5XS0Ry
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KaW5kZXggZDk4MjY2MmI5ZmJiN2ZlM2I2ZmE4NThmNTVlZDVkMjgwZGU0MTUxZi4uNjU5NDAy
M2UzZTM1YzBmMjAyMTY5OTg1Y2QzMGE0N2I1Nzc3NDBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5tbQpAQCAtMjg2LDcgKzI4Niw3IEBAIC0gKHZvaWQpaW5zcGVjdG9yV0tX
ZWJWaWV3UmVsb2FkOihXS0luc3BlY3RvcldLV2ViVmlldyAqKXdlYlZpZXcKICAgICAgICAgcmV0
dXJuOwogCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9wdGlvbj4gcmVsb2FkT3B0aW9u
czsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKICAgICAg
ICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0aW9uOjpFeHBpcmVkT25seSk7
CiAKICAgICBfaW5zcGVjdGVkUGFnZS0+cmVsb2FkKHJlbG9hZE9wdGlvbnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2Yz
MzA1ZDlkLi45NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIyMzIzYTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtMjE2LDcgKzIxNiw2IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKIAogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmco
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1pZGVudGlmaWVyIiwgIWNsaWVudElkZW50
aWZpZXIuaXNFbXB0eSgpID8gY2xpZW50SWRlbnRpZmllci51dGY4KCkuZGF0YSgpIDogKl9OU0dl
dFByb2duYW1lKCkpOwogICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVz
c2FnZS5nZXQoKSwgImNsaWVudC1idW5kbGUtaWRlbnRpZmllciIsIFdlYkNvcmU6OmFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgIHhwY19kaWN0aW9uYXJ5
X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1zZGstdmVyc2lvbiIs
IFN0cmluZzo6bnVtYmVyKGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpKS51dGY4KCkuZGF0YSgpKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJw
cm9jZXNzLWlkZW50aWZpZXIiLCBTdHJpbmc6Om51bWJlcihtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c0lkZW50aWZpZXIudG9VSW50NjQoKSkudXRmOCgpLmRhdGEoKSk7CiAgICAgeHBjX2RpY3Rpb25h
cnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdldCgpLCAidWktcHJvY2Vzcy1uYW1lIiwg
W1tbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gcHJvY2Vzc05hbWVdIFVURjhTdHJpbmddKTsK
ICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJz
ZXJ2aWNlLW5hbWUiLCBuYW1lKTsKQEAgLTIyNyw4ICsyMjYsOCBAQCB2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHhwY19kaWN0aW9uYXJ5X3NldF9mZChib290
c3RyYXBNZXNzYWdlLmdldCgpLCAic3RkZXJyIiwgU1RERVJSX0ZJTEVOTyk7CiAgICAgfQogICAg
IAotICAgIGlmIChhdXRvIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUgPSBsaW5rZWRPbk9y
QWZ0ZXJPdmVycmlkZSgpKQotICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRfYm9vbChib290c3Ry
YXBNZXNzYWdlLmdldCgpLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIsICps
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID09IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpB
ZnRlckV2ZXJ5dGhpbmcpOworICAgIGF1dG8gc2RrQmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9ycygpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9kYXRhKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0
KCksICJjbGllbnQtc2RrLWFsaWduZWQtYmVoYXZpb3JzIiwgc2RrQmVoYXZpb3JzLnN0b3JhZ2Uo
KSwgc2RrQmVoYXZpb3JzLnN0b3JhZ2VMZW5ndGhJbkJ5dGVzKCkpOwogCiAgICAgYXV0byBleHRy
YUluaXRpYWxpemF0aW9uRGF0YSA9IGFkb3B0T1NPYmplY3QoeHBjX2RpY3Rpb25hcnlfY3JlYXRl
KG51bGxwdHIsIG51bGxwdHIsIDApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDBiNjFmOWE3MWU0OGZiNTgxOGVjZWM5NjBlZmUx
MTM3N2QyNDY5MDguLmJjZTE5NDI2Mjk0M2IzYjEwNTYxODRkOTU0MzZmYjRmMTVkNmY1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6Omhh
c1Njcm9sbGFibGVPclpvb21lZE1haW5GcmFtZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdFN1cHBvcnRzT3ZlcmZsb3dIaWRkZW5Pbk1haW5GcmFtZSkpCisgICAgaWYgKFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZW50YnJpdGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNPdmVyZmxvd0hpZGRlbk9u
TWFpbkZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZWJmY2M4YjQ1OTY0Njc1OGJhYzMyYjcz
NTU0NjA1YTdiYmI5MmQ4MC4uZWNhOGMxOGNjNTFhNDA2NDg0NWM2ODY2NjQ1NTlhZjMxZmExYjhi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMzQ5LDcg
KzEzNDksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVu
c2lvbkhhbmRsZShXZWJQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIH0KIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91
dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKKyAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVW5jb25kaXRp
b25hbFVuaXZlcnNhbFNhbmRib3hFeHRlbnNpb24pKQogICAgICAgICB3aWxsQWNxdWlyZVVuaXZl
cnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbihwcm9jZXNzKTsKICNlbmRpZgogCkBAIC0yNjY3
LDcgKzI2NjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVZpZXdCbGFua0lmVW5wYWludGVk
U2luY2VMYXN0TG9hZENvbW1pdCgpCiB7CiAgICAgaWYgKCFtX2hhc1VwZGF0ZWRSZW5kZXJpbmdB
ZnRlckRpZENvbW1pdExvYWQpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0KTsKKyAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TWFrZVZpZXdCbGFuayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsKICNlbHNlCiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNzdjNGJlNzk0M2QxYjAyNDIyZTc2NzYy
NzhjMjBmOGMwOTUzYjA0OS4uZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjM3
LDcgKzIzNyw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAgICAgYm9vbCBpc1NhZmFyaSA9
IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCiAgICAgICAgIGlm
IChpc1NhZmFyaSkKLSAgICAgICAgICAgIHNldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKExpbmtl
ZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcpOworICAgICAgICAgICAgZW5hYmxl
QWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2VuZGlmCiAgICAgfSk7CiAKQEAgLTI3OSw3ICsy
NzksNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgdXBkYXRlQmFja0ZvcndhcmRDYWNoZUNh
cGFjaXR5KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxp
Y2F0aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0x1dHJvbigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2VzcykpIHsKICAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW10gewogICAgICAgICAgICAgaWYgKFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRE
YXRhU3RvcmVFeGlzdHMoKSkKICAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpkZWZh
dWx0RGF0YVN0b3JlKCktPnRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CkBAIC0xMTU0LDcgKzEx
NTQsNyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQ
YWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogCiAgICAgYm9vbCBlbmFibGVQcm9jZXNz
U3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbiA9IHBhZ2UtPnByZWZlcmVuY2VzKCkucHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb25FbmFibGVkKCk7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmlyZWZveCgpICYmICFsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5h
dmlnYXRpb24pKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNGaXJlZm94KCkg
JiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uKSkKICAgICAgICAgZW5hYmxlUHJvY2Vzc1N3
YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxNzA0NTBhOTViYTZlOGE0OWVl
NWZjODFlMTFiNTUwOTFiYjk0YjYyLi40MzgyMTU1MzE0NGQ2ZjMyNmIwOTRjYTI0Y2QzZjU1MWM3
ZTMxMjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTEzMiw5ICsxMzIsOSBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6aGFzUmVhY2hlZFByb2Nl
c3NDb3VudExpbWl0KCkKIHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgp
CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6
OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5U
aHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFko
UnVuTG9vcDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5
KTsKICNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICByZXR1cm4gTElLRUxZKFJ1bkxvb3A6OmlzTWFp
bigpKSB8fCAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aE1haW5UaHJlYWRS
ZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkpOworICAgIHJldHVybiBMSUtFTFkoUnVuTG9v
cDo6aXNNYWluKCkpIHx8ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKICNl
bHNlCiAgICAgcmV0dXJuIFJ1bkxvb3A6OmlzTWFpbigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDNiNDY3ZjQ1Yjk4MDNiNjAz
ZDJhNWVkNmEwODc1NWI3ZmI1NDE4ZGQuLjhiNjcwZGFlNDljMzIyZjViZmIwMjg3NmNlNDJkNDNj
YzRjMTc1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCkBAIC0yMDAsNyArMjAwLDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25Jbml0aWFsaXph
dGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIKICAgICBbc2Vs
ZiBhZGRTdWJ2aWV3Ol9maXhlZENsaXBwaW5nVmlldy5nZXQoKV07CiAgICAgW19maXhlZENsaXBw
aW5nVmlldyBhZGRTdWJ2aWV3Ol9yb290Q29udGVudFZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uKSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkxhenlHZXN0dXJlUmVjb2duaXplckluc3RhbGxhdGlvbikpCiAg
ICAgICAgIFtzZWxmIHNldFVwSW50ZXJhY3Rpb25dOwogICAgIFtzZWxmIHNldFVzZXJJbnRlcmFj
dGlvbkVuYWJsZWQ6WUVTXTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBv
YmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERp
ZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAotICAg
IGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVdLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVL
ZXlDb21tYW5kcykpCisgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3Rl
KCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6
OldLQ29udGVudFZpZXdEb2VzTm90T3ZlcnJpZGVLZXlDb21tYW5kcykpCiAgICAgICAgIGNsYXNz
X2FkZE1ldGhvZChzZWxmLmNsYXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpLCByZWludGVycHJl
dF9jYXN0PElNUD4oJmtleUNvbW1hbmRzUGxhY2Vob2xkZXJIYWNrRm9yRXZlcm5vdGUpLCBtZXRo
b2RfZ2V0VHlwZUVuY29kaW5nKGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKHNlbGYuY2xhc3MsIEBz
ZWxlY3RvcihrZXlDb21tYW5kcykpKSk7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEwMWEuLmQxODQ1N2Mz
MzFmZTFjOTg4MjkzYjdkZmRkODU1ODYxN2I5YjA4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtODEy
Nyw3ICs4MTI3LDcgQEAgLSAoQk9PTClfc2hvdWxkVXNlQ29udGV4dE1lbnVzCiAgICAgICAgIHJl
dHVybiBOTzsKICNlbmRpZgogI2lmIEhBVkUoTElOS19QUkVWSUVXKSAmJiBVU0UoVUlDT05URVhU
TUVOVSkKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdEhh
c1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbik7CisgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Okhhc1VJQ29udGV4dE1lbnVJbnRlcmFj
dGlvbik7CiAjZW5kaWYKICAgICByZXR1cm4gTk87CiB9CkBAIC05ODgzLDcgKzk4ODMsNyBAQCBz
dGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25Ub0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNo
YXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CiAKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFZlcnNpb25XaXRoaU9TQXBwc09u
TWFjT1MpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTdXBwb3J0c2lPU0FwcHNPbk1hY09TKSkgewogICAgICAgICBpZiAoV2Vi
Q29yZTo6SU9TQXBwbGljYXRpb246OmlzRklGQUNvbXBhbmlvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82NzA5MzQ4Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc05v
Z2dpbigpIC8vIDxyZGFyOi8vcHJvYmxlbS82NDgzMDMzNT4KICAgICAgICAgICAgIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc09LQ3VwaWQoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjU2OTg0
OTY+CkBAIC05ODk1LDcgKzk4OTUsNyBAQCBzdGF0aWMgQk9PTCBhcHBsaWNhdGlvbklzS25vd25U
b0lnbm9yZU1vdXNlRXZlbnRzKGNvbnN0IGNoYXIqICZ3YXJuaW5nVmVyc2lvbikKICAgICAgICAg
fQogICAgIH0KIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dFNlbmRzTmF0aXZlTW91c2VFdmVudHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkg
ewogICAgICAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzUG9ja2V0Q2l0eSgpIC8v
IDxyZGFyOi8vcHJvYmxlbS82MjI3MzA3Nz4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0Vzc2VudGlhbFNrZWxldG9uKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzYyNjk0
NTE5PgogICAgICAgICAgICAgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRVNQTkZhbnRh
c3lTcG9ydHMoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ2NzE1NDM+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbQppbmRleCA3ODFkMzZlZDhhMWVmNjJhYmE1ZDUw
MWMwNmU2ZWU2ZTg1YTVlODM3Li43MTQ0YjMyMzUzYmQ2ZWE3ZTgxY2JjMjk2MDQ2NjhiMzQ0NmMw
MzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KQEAg
LTQyMiw3ICs0MjIsNyBAQCAtIChVSUVkZ2VJbnNldHMpX3N5c3RlbUNvbnRlbnRJbnNldAogICAg
IC8vIHRvIGluY2x1ZGUga2V5Ym9hcmQgaW5zZXRzIGluIHRoZSBzeXN0ZW1Db250ZW50SW5zZXQu
IFdlIGFsd2F5cyB3YW50CiAgICAgLy8ga2V5Ym9hcmQgaW5zZXRzIGFwcGxpZWQsIGV2ZW4gd2hl
biB3ZWIgY29udGVudCBoYXMgY2hvc2VuIHRvIGRpc2FibGUgYXV0b21hdGljCiAgICAgLy8gc2Fm
ZSBhcmVhIGluc2V0IGFkanVzdG1lbnQuCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFdoZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNv
bmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudEluc2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJ
U2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1lbnROZXZlcikKKyAgICBpZiAobGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VUlTY3JvbGxWaWV3RG9l
c05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkpICYmIHNlbGYuY29udGVudElu
c2V0QWRqdXN0bWVudEJlaGF2aW9yID09IFVJU2Nyb2xsVmlld0NvbnRlbnRJbnNldEFkanVzdG1l
bnROZXZlcikKICAgICAgICAgc3lzdGVtQ29udGVudEluc2V0LmJvdHRvbSArPSBfa2V5Ym9hcmRC
b3R0b21JbnNldEFkanVzdG1lbnQ7CiAKICAgICByZXR1cm4gc3lzdGVtQ29udGVudEluc2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2Jz
ZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNl
cnZlci5tbQppbmRleCA0ZGE3MmY0NTQ0ZTEwMDIyZmFiN2Q5ZjNlMDc5NjE0ZTc4YzZjNDc5Li4w
MWM4MDdmNjM4YmVjZjQ4MGZlYjE1NDVmYzJlZDAwMDY0MzNmY2RlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbQpAQCAt
ODIsNyArODIsNyBAQCAtICh2b2lkKXN0YXJ0CiAgICAgaWYgKCsrX3N0YXJ0Q291bnQgPiAxKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0VGhhdE9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkpCisgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9ic2VydmVzQ2xhc3NQcm9wZXJ0eSkp
CiAgICAgICAgIFtbVUlTY3JpYmJsZUludGVyYWN0aW9uIGNsYXNzXSBhZGRPYnNlcnZlcjpzZWxm
IGZvcktleVBhdGg6QCJpc1BlbmNpbElucHV0RXhwZWN0ZWQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDpuaWxdOwogfQogCkBAIC05Miw3ICs5Miw3IEBA
IC0gKHZvaWQpc3RvcAogICAgIGlmICghX3N0YXJ0Q291bnQgfHwgLS1fc3RhcnRDb3VudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQog
ICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIl07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDBlMzI4YjEzZjE1
OWY2YjExZDliNzgyNjM4ZTBjZmE5MWIzOTE4OTIuLmZlMTM2NjYwZTExNzFlYTQ0YjAxMmMxZjY2
MjIyNmI2MjdlYTZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtMTM5Nyw3ICsxMzk3LDcgQEAgc3RhdGljIGJvb2wgZGVza3RvcENs
YXNzQnJvd3NpbmdSZWNvbW1lbmRlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXUKICAgICAgICAgYXV0byBzY3JlZW5DbGFzcyA9IE1HR2V0U0ludDMyQW5zd2VyKGtNR1FNYWlu
U2NyZWVuQ2xhc3MsIE1HU2NyZWVuQ2xhc3NQYWQyKTsKICAgICAgICAgc2hvdWxkUmVjb21tZW5k
RGVza3RvcENsYXNzQnJvd3NpbmcgPSBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkMyAm
JiBzY3JlZW5DbGFzcyAhPSBNR1NjcmVlbkNsYXNzUGFkNCAmJiBkZXNrdG9wQ2xhc3NCcm93c2lu
Z1N1cHBvcnRlZCgpOwogI2VuZGlmCi0gICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IEln
bm9yZUFwcENvbXBhdGliaWxpdHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyKFNE
S1ZlcnNpb246OkZpcnN0V2l0aE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCkpIHsKKyAg
ICAgICAgaWYgKGlnbm9yZVNhZmVndWFyZHMgPT0gSWdub3JlQXBwQ29tcGF0aWJpbGl0eVNhZmVn
dWFyZHM6Ok5vICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQpKSB7CiAgICAgICAgICAgICAv
LyBPcHQgb3V0IGFwcHMgdGhhdCBoYXZlbid0IHlldCBidWlsdCBhZ2FpbnN0IHRoZSBpT1MgMTMg
U0RLIHRvIGxpbWl0IGFueSBpbmNvbXBhdGliaWxpdGllcyBhcyBhIHJlc3VsdCBvZiBlbmFibGlu
ZyBkZXNrdG9wLWNsYXNzIGJyb3dzaW5nIGJ5IGRlZmF1bHQgaW4KICAgICAgICAgICAgIC8vIFdL
V2ViVmlldyBvbiBhcHByb3ByaWF0ZWx5LXNpemVkIGlQYWQgbW9kZWxzLgogICAgICAgICAgICAg
c2hvdWxkUmVjb21tZW5kRGVza3RvcENsYXNzQnJvd3NpbmcgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVs
ZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRl
ZmF1bHRVSURlbGVnYXRlLm1tCmluZGV4IGUzMTI5NDBhNjFlZjgyYmJhY2U2MWE2NzMzNjY3MDI2
OTFhZjMxNTguLjhiYzJmZmNiM2UxMjgzMTRmZDc0MTk5MmY5MmJjZjJkNmUyODJlYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dFVJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVn
YXRlcy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQpAQCAtMjE2LDcgKzIxNiw3IEBAIC0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXNlbmRlciBwcmludEZyYW1lVmlldzooV2ViRnJhbWVWaWV3ICop
ZnJhbWVWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogLSAoTlNVSW50ZWdlcil3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwogewotICAgIGlmICghbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVs
dCkpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1
cm4gV2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwogCiAgICAgcmV0dXJuIFdlYkRyYWdEZXN0
aW5hdGlvbkFjdGlvbkFueSAmIH5XZWJEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJEb3dubG9hZC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0KaW5kZXggZTI0N2E4ZTJkNTZk
MGU2NzYwOWQ5ODhhZjEyNzljOGUyMzc1N2ViYi4uZjZjY2ZlZGYzN2E3Y2NhOWQ3MWMwNGFlNmZi
ZTYzNjI5Y2Y0ZTNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25s
b2FkLm1tCkBAIC00Nyw3ICs0Nyw3IEBACiBzdGF0aWMgYm9vbCBzaG91bGRDYWxsT25OZXR3b3Jr
VGhyZWFkKCkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIGJvb2wgaXNPbGRFcHNv
blNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29uU29mdHdh
cmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEb3du
bG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRocmVhZCk7CisgICAgc3RhdGljIGJvb2wgaXNP
bGRFcHNvblNvZnR3YXJlVXBkYXRlciA9IFdlYkNvcmU6Ok1hY0FwcGxpY2F0aW9uOjppc0Vwc29u
U29mdHdhcmVVcGRhdGVyKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtB
bGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkKTsK
ICAgICByZXR1cm4gaXNPbGRFcHNvblNvZnR3YXJlVXBkYXRlcjsKICNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFz
ZS5tbQppbmRleCBhMjgzNTU0YTNiNDFkN2QxMDQ5YTUwZTllYzAxNTc2MDg5NTU1ZGFjLi40NjI1
MTg1YmI1YjNmYmYxYjFlZGNjNDE2NDkzNTU2NTIxZDczMDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYkljb25EYXRhYmFzZS5tbQpAQCAtMTA4LDcgKzEwOCw3IEBA
ICsgKFdlYkljb25EYXRhYmFzZSAqKXNoYXJlZEljb25EYXRhYmFzZQogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxSZXRhaW5QdHI8V2ViSWNvbkRhdGFiYXNlPj4gZGF0YWJhc2U7CiAgICAgc3Rh
dGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOwogICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF4gewot
ICAgICAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdlYkljb25E
YXRhYmFzZVdhcm5pbmcpKQorICAgICAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6V2ViSWNvbkRhdGFiYXNlV2FybmluZykpCiAgICAgICAg
ICAgICBOU0xvZyhAIitbV2ViSWNvbkRhdGFiYXNlIHNoYXJlZEljb25EYXRhYmFzZV0gaXMgbm90
IEFQSSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiBXZWJJY29uRGF0YWJhc2Ugbm8gbG9uZ2VyIGhh
bmRsZXMgaWNvbiBsb2FkaW5nIGFuZCBpdCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVs
ZWFzZS4iKTsKIAogICAgICAgICBkYXRhYmFzZS5nZXQoKSA9IGFkb3B0TlMoW1tXZWJJY29uRGF0
YWJhc2UgYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KaW5kZXggZGQx
Yjc5NTc2MTEwNWFiYjQwYTU0NWNmN2YyODcxOTg1NmJmODQ1YS4uNzU0ZWI2NjczZGVlOTllNGEx
YmY5MzI2MGI1NTlkOWNjYjIwODc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMubW0KQEAg
LTU0LDEzICs1NCwxMyBAQCBib29sIGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0
ZXJGdWxsc2NyZWVuKCkKIAogYm9vbCBkZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlh
UGxheWJhY2soKQogewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVy
ZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOworICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93
UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7
CiAgICAgcmV0dXJuIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2s7CiB9
CiAKIGJvb2wgZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVy
ZSA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0
ZXJ5KCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhvdXRUaGVTZWNy
ZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CisgICAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlID0gV2ViQ29yZTo6SU9TQXBw
bGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKSAmJiAhbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9UaGVTZWNyZXRTb2Np
ZXR5SGlkZGVuTXlzdGVyeVdpbmRvd09wZW5RdWlyayk7CiAgICAgcmV0dXJuIHNob3VsZEFsbG93
V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZTsKIH0KIApAQCAtNzEsMjAgKzcxLDIwIEBAIGJv
b2wgZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRl
KCkKIAogYm9vbCBkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVu
dCgpCiB7Ci0gICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNp
b246OkZpcnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsK
KyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3Io
U0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBkZWZhdWx0UmVxdWlyZXNVc2Vy
R2VzdHVyZVRvTG9hZFZpZGVvKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRo
YXRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgIHN0YXRpYyBib29sIHNob3Vs
ZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
KTsKICAgICByZXR1cm4gc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW87CiB9CiAK
IGJvb2wgZGVmYXVsdFdlYlNRTEVuYWJsZWQoKQogewogICAgIC8vIEZvciBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBrZWVwIFdlYlNRTCB3b3JraW5nIHVudGlsIGFwcHMgYXJlIHJlYnVpbHQgd2l0
aCB0aGUgaU9TIDE0IFNESy4KLSAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVmYXVsdElu
TGVnYWN5V2ViS2l0KTsKKyAgICBzdGF0aWMgYm9vbCB3ZWJTUUxFbmFibGVkID0gIWxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYlNRTERpc2FibGVk
QnlEZWZhdWx0SW5MZWdhY3lXZWJLaXQpOwogICAgIHJldHVybiB3ZWJTUUxFbmFibGVkOwogfQog
CkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBkZWZhdWx0QXR0YWNobWVudEVsZW1lbnRFbmFibGVk
KCkKIAogYm9vbCBkZWZhdWx0U2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lcyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVz
KTsKICAgICByZXR1cm4gc2hvdWxkUmVzdHJpY3RCYXNlVVJMU2NoZW1lczsKIH0KIApAQCAtMjA4
LDcgKzIwOCw3IEBAIGJvb2wgZGVmYXVsdEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCkK
IAogYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuaygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXRDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFuayA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkNvbnZlcnRzSW52YWxp
ZFVSTHNUb0JsYW5rKTsKICAgICByZXR1cm4gc2hvdWxkQ29udmVydEludmFsaWRVUkxzVG9CbGFu
azsKIH0KIApAQCAtMjE2LDEzICsyMTYsMTMgQEAgYm9vbCBkZWZhdWx0U2hvdWxkQ29udmVydElu
dmFsaWRVUkxzVG9CbGFuaygpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVlbExpc3RlbmVyc0Fz
RGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVu
ZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVy
U0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVm
YXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsKLSAgICBzdGF0aWMg
Ym9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0QWxsb3dz
V2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlv
cjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IGYxNGZhMzk5NGY0YWZhYmJjZTViMDFiOTk0NTc1MmRhOTlhODExZjkuLjBjYzE3
ODUxMGIxNjA0ZWE4MGYyNTJiNmU0ZTAwODlmNGUyZGQ0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzOTEsNyArMTM5MSw3IEBAIC0odm9pZClf
aW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdAogI2lmIFBMQVRGT1JNKElPUykKIHN0YXRpYyBib29s
IG5lZWRzTGFCYW5xdWVQb3N0YWxlUXVpcmtzKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBuZWVkc1F1
aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0TGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICBzdGF0aWMgYm9vbCBuZWVkc1F1aXJrcyA9IFdlYkNvcmU6OklPU0FwcGxpY2F0
aW9uOjppc0xhQmFucXVlUG9zdGFsZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0xhQmFucXVlUG9zdGFsZVF1aXJrcyk7CiAgICAgcmV0
dXJuIG5lZWRzUXVpcmtzOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457312</attachid>
            <date>2022-04-11 23:46:03 -0700</date>
            <delta_ts>2022-04-11 23:48:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220411234602.patch</filename>
            <type>text/plain</type>
            <size>102206</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Zjc3NzE5YTYyNGFkYmYyZjEwMWJjOWNiZTVkZTY4NTZmZDM4YWI4Li4yZDcwYmM2MWY3NWZmMzUw
NjA0Nzk3MDRlMWYzNjk4NWZiZDg1OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTExICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVkdWNlIHVz
ZSBvZiB1bm5lY2Vzc2FyeSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbSBudW1iZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJl
N2RhYzc0YTM3YTAxMWZhMzFkYWZlZmY5NDA4MWQ1ZmQwNWM3NjAuLjJiMzcxNTlhOTQ1M2JiODY5
OWVkZWFmYTcyMmVmYmNkYzE1MDUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjItMDQtMTEg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQg
InZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2tzIGluc3RlYWQgb2Yg
cGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzQzNjcxNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2gg
dG8gYGR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3RgLCB3aGljaCBjb3JyZWN0bHkgaGFuZGxlcyBT
REsKKyAgICAgICAgY2hlY2tzIGZvciBiaW5hcmllcyBidWlsdCBmb3Igb25lIFNESyBydW5uaW5n
IG9uIGFub3RoZXIgcGxhdGZvcm0KKyAgICAgICAgKGUuZy4gaU9TIGFwcHMgcnVubmluZyBvbiBt
YWNPUykuCisKKyAgICAgICAgQmVjYXVzZSBgZHlsZF9wcm9ncmFtX3Nka19hdF9sZWFzdGAgaXMg
YmFzZWQgb2ZmIG1vcmUgdGhhbiBhIHNpbXBsZQorICAgICAgICBpbnRlZ2VyIGNvbXBhcmlzb24g
bGlrZSBvdXIgb2xkIFNESyBjaGVjaywgd2UgbW92ZSBpdCBpbnRvIHRoZQorICAgICAgICBhcHBs
aWNhdGlvbiBwcm9jZXNzLCBhbmQganVzdCB0cmFuc21pdCB0aGUgY29tcHV0ZWQgYmVoYXZpb3Jz
IHRvCisgICAgICAgIHN1YnByb2Nlc3Nlcy4KKworICAgICAgICBSZW1vdmUgZnVuY3Rpb25zIHRo
YXQgZXhwb3NlL3RyYW5zbWl0IHBsYXRmb3JtLXNwZWNpZmljIFNESyB2ZXJzaW9ucywKKyAgICAg
ICAgc28gdGhhdCB1c2FnZSBpc24ndCBhY2NpZGVudGFsbHkgcmVpbnRyb2R1Y2VkLgorCisgICAg
ICAgIFJlLWZyYW1lIHRoZSBuYW1pbmcgb2Ygb3VyIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3Mg
YXMgYmVpbmcgYWJvdXQKKyAgICAgICAgc3BlY2lmaWMgYmVoYXZpb3JzIGluc3RlYWQgb2YgU0RL
IHZlcnNpb25zLgorCisgICAgICAgICogd3RmL0JpdG1hcC5oOgorICAgICAgICAoV1RGOjpXb3Jk
VHlwZT46OnNldEFsbCk6CisgICAgICAgIEFkZCBgc2V0QWxsYCwgd2hpY2ggc2V0cyBhbGwgdGhl
IGJpdHMgaW4gdGhlIEJpdG1hcCwgbGlrZSBGYXN0Qml0VmVjdG9yIGhhcy4KKyAgICAgICAgRXhw
b3NlIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMgdG8gbWFrZSB0cmFuc21pdHRpbmcg
dGhlIEJpdG1hcCBzaW1wbGUuCisKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5t
bToKKyAgICAgICAgKFdURjo6Y2FuTWluaW1pemVMYW5ndWFnZXMpOgorICAgICAgICBBZG9wdCB0
aGUgbmV3IG5hbWluZy4KKworICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaDoKKyAg
ICAgICAgQmVjYXVzZSBvZiB0aGUgbmF0dXJlIG9mIGR5bGRfYnVpbGRfdmVyc2lvbl90IHZhbHVl
cywgd2UgY2FuJ3QgZm9yd2FyZAorICAgICAgICBkZWNsYXJlIHRoZW0uIFRodXMsIG1haW50YWlu
IGEgZmFsbGJhY2sgdG8gdGhlIGxlZ2FjeSBwbGF0Zm9ybS1zcGVjaWZpYworICAgICAgICBTREsg
Y2hlY2tzIGZvciB1c2Ugd2hlbiBidWlsZGluZyBhZ2FpbnN0IHRoZSBpbnRlcm5hbCBTREssIG9y
IHdoZW4KKyAgICAgICAgYmFjay1kZXBsb3lpbmcgdG8gb2xkZXIgU0RLcyB0aGF0IGRvbid0IHll
dCBoYXZlIHZhbHVlcyBmb3IgbmV3ZXIgdmVyc2lvbiBzZXRzLgorCisgICAgICAgICogd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcDoKKyAgICAgICAgKGRpc2FibGVB
ZGRpdGlvbmFsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmNvbXB1dGVTREtB
bGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9yc1ZhbHVl
KToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNl
dFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RGOjplbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZGlzYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMp
OgorICAgICAgICAoV1RGOjpsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IpOgorICAgICAg
ICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
OmFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpzZXRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiB3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aDoKKwogMjAyMi0wNC0xMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgog
CiAgICAgICAgIEZpeCBQbGF5U3RhdGlvbiBidWlsZCBhZnRlciByMjkyNjk2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTliNDllNzc0NmM2YjFkYWZlNTdkM2MxMWMwYzAxNTc0NmE1NThiZS4uYjk2OGU5ZTQ5YTkz
NDNlOTI1NmNiNTAxY2U3OTE1ODI2YmE4YzQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBA
CisyMDIyLTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphbGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6c2V0V2luZG93KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjayBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdR
dWlyayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnNob3VsZE9taXRIVE1MRG9j
dW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFRyZWF0QXNVbmlxdWVPcmlnaW4pOgor
ICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFN1
cHByZXNzVGhyZWFkU2FmZXR5Q2hlY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzRG90UHJlZml4
ZWRGb3JiaWRkZW5Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNv
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpzaG91bGRSZW1vdmVG
cmFnbWVudElkZW50aWZpZXIpOgorICAgICAgICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVy
RXZlcnl0aGluZ0ZvclRlc3RpbmcpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwor
CiAyMDIyLTA0LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ1NTIENvbnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgY29udGFpbmVyIHNob3J0aGFuZCBvcmRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5NjYzNzVlMWZiMjM2NzhmMTBiMzQ0YTY1ZWVkYjk0NDRjOGE3Yzc4Li5j
YjFhMmRiZDNlMjI5MjNjNzUxMmZmMmQwZDg1YjkzYTRlNjcyOTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg5IEBACisyMDIyLTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFm
dGVyIGNoZWNrcyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNo
YXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkF1
eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5o
OgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAgICAgICAqIFNo
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5
UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
OjpnZXRDbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgSW5zdGVhZCBvZiB0cmFuc21pdHRp
bmcgdGhlIFNESyB2ZXJzaW9uIGFuZCBvdmVycmlkZSBzdGF0ZSBpbiB0aGUgYm9vdHN0cmFwCisg
ICAgICAgIG1lc3NhZ2UsIGp1c3Qgc2VuZCB0aGUgY29tcHV0ZWQgc2V0IG9mIGJlaGF2aW9ycy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQ
UmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQp
OgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNvbXBs
ZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBTdGF0ZSk6CisgICAg
ICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVUb3Vj
aExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRQ
YXNzaXZlV2hlZWxMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSZWxvYWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAg
ICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0
aW5nXSk6CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOgorICAgICAg
ICAoc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKToKKyAgICAgICAg
KHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKToKKyAgICAgICAgKHNob3VsZFJl
c3RyaWN0QmFzZVVSTFNjaGVtZXMpOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VDb25m
aWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVsb2FkXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24ubW06CisgICAgICAgIChkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1
aWNrTG9va1ByZXZpZXcpOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToK
KyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfY29tcHV0
ZWRPYnNjdXJlZEluc2V0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3
TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9kcmFnRGVzdGluYXRpb25BY3Rpb25G
b3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlciBpbnNwZWN0b3JXS1dlYlZpZXdSZWxvYWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFzU2Nyb2xs
YWJsZU9yWm9vbWVkTWFpbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxp
emVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptYWtlVmlld0JsYW5rSWZVbnBhaW50ZWRTaW5jZUxhc3RMb2FkQ29tbWl0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDpjb25maWd1
cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG91bGRVc2VDb250ZXh0TWVudXNd
KToKKyAgICAgICAgKGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tOgorICAgICAgICAoLVtXS1Njcm9s
bFZpZXcgX3N5c3RlbUNvbnRlbnRJbnNldF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5tbToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciBzdGFydF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0b3BdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6ZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgIEFkb3B0IHRoZSBu
ZXcgbmFtaW5nLgorCiAyMDIyLTA0LTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFdlYiBjb250ZW50IHByb2Nlc3MgY3Jhc2hl
cyB3aGVuIHRyaWdnZXJpbmcgTGl2ZSBUZXh0IGluIHJlY292ZXJ5T1MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCA5Njc5NzFmYWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1
Li5hNjcwZmNkOWY5MDExZjhmZDgzZTU5NWIwNGY4ZDhmNDk2ODcyZjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDQtMTEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0
Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3Bl
Y2lmaWMgb25lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRl
IHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAg
ICAgICAgKiBNaXNjL1dlYkRvd25sb2FkLm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29y
a1RocmVhZCk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgr
W1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8p
OgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OmRlZmF1bHRTaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2Vi
S2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2lu
Zyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1
ZVBvc3RhbGVRdWlya3MpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0w
NC0wOCAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2Rl
XSBBdm9pZCB0YXJnZXRpbmcgMzItYml0IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYy
NzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhhNGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1
OTgzZTE2MTgzODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlw
ZWRBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXku
Y3BwCkBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVz
UHRyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFU
Rk9STShJT1MpCiBpbmxpbmUgc3RhdGljIGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVu
Z3RoUXVpcmsoKQogewotICAgIHJldHVybiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0V2l0aG91dFR5cGVkQXJyYXlBUElRdWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWly
ayk7CiB9CiAjZWxzZQogaW5saW5lIHN0YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJh
eUxlbmd0aFF1aXJrKCkgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1dyYXBwZXJNYXAubW0KaW5kZXggN2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2
Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYyMGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBA
QCBib29sIHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJz
aW9uT2ZMaW5rVGltZUphdmFTY3JpcHRDb3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZl
cnNpb25PZkxpbmtUaW1lSmF2YVNjcmlwdENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNp
b25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3Rv
cnMpOworICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAg
cmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2
ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdkYS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1
NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGku
Y3BwCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVk
UmVqZWN0aW9ucygpCiB2b2lkIFRlc3RBUEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRp
b25zKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0g
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNy
b3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90
RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2Fj
eURyYWluKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3
ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQxMzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3
NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBA
YXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VM
ZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05v
dERyYWluVGhlTWljcm90YXNrUXVldWVXaGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVz
ZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsK
ICAgICAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhk
MWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMx
NzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5j
cHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAg
ICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURy
YWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5U
aGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lE
cmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAg
IH0pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCmluZGV4IDU5NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAy
ZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAt
MzE3LDcgKzMxNyw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0
byBidW5kbGVJRCA9IENGQnVuZGxlR2V0SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUo
KSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlECiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENG
U1RSKCJjb20ua3BnYW1lLlBva2VyQnJvcyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAg
ICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQml0bWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBi
OGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2Y2Q0NDNmYmQ5YTIyNzBhLi5hZGIyZTRlMWE2OWVkZjU4
NzI5M2Y5YmI4M2EyZDM3ZDI5YWM5MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRt
YXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJs
aWM6CiAgICAgY29uc3RleHByIHNpemVfdCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0
OwogICAgIGNvbnN0ZXhwciB2b2lkIGNsZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgp
OworICAgIHZvaWQgc2V0QWxsKCk7CiAgICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAg
aW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhzaXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXpl
X3QgY291bnQoc2l6ZV90IHN0YXJ0ID0gMCkgY29uc3Q7CkBAIC0xNDEsNyArMTQyLDExIEBAIHB1
YmxpYzoKICAgICBXb3JkVHlwZSogc3RvcmFnZSgpIHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAg
ICAgY29uc3QgV29yZFR5cGUqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBiaXRzLmRhdGEoKTsg
fQogCisgICAgY29uc3RleHByIHNpemVfdCBzdG9yYWdlTGVuZ3RoSW5CeXRlcygpIHsgcmV0dXJu
IHNpemVvZihiaXRzKTsgfQorCiBwcml2YXRlOgorICAgIHZvaWQgY2xlYW5zZUxhc3RXb3JkKCk7
CisKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRTaXplID0gc2l6ZW9mKFdvcmRU
eXBlKSAqIDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChiaXRtYXBT
aXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOwogCkBAIC0yNDEsMTAgKzI0Niw4IEBAIGlu
bGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNsZWFyQWxsKCkKIH0KIAog
dGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIGNv
bnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVydCgpCitpbmxp
bmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpjbGVhbnNlTGFzdFdvcmQoKQog
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkKLSAgICAgICAgYml0c1tp
XSA9IH5iaXRzW2ldOwogICAgIGlmIGNvbnN0ZXhwciAoISEoYml0bWFwU2l6ZSAlIHdvcmRTaXpl
KSkgewogICAgICAgICBjb25zdGV4cHIgc2l6ZV90IHJlbWFpbmluZ0JpdHMgPSBiaXRtYXBTaXpl
ICUgd29yZFNpemU7CiAgICAgICAgIGNvbnN0ZXhwciBXb3JkVHlwZSBtYXNrID0gKHN0YXRpY19j
YXN0PFdvcmRUeXBlPigxKSA8PCByZW1haW5pbmdCaXRzKSAtIDE7CkBAIC0yNTIsNiArMjU1LDIx
IEBAIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojpp
bnZlcnQoKQogICAgIH0KIH0KIAordGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1l
IFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0
QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4RkYsIHNpemVvZihiaXRzKSk7Cisg
ICAgY2xlYW5zZUxhc3RXb3JkKCk7Cit9CisKK3RlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0
eXBlbmFtZSBXb3JkVHlwZT4KK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6
ZSwgV29yZFR5cGU+OjppbnZlcnQoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29y
ZHM7ICsraSkKKyAgICAgICAgYml0c1tpXSA9IH5iaXRzW2ldOworICAgIGNsZWFuc2VMYXN0V29y
ZCgpOworfQorCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+
CiBpbmxpbmUgY29uc3RleHByIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojpu
ZXh0UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0CiB7CkBAIC00NjIsMTEgKzQ4MCw3
IEBAIGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnNldEVhY2hOdGhC
aXQoc2l6ZV90IG4sIHNpemVfdCBzdGFydCwKICAgICAgICAgaW5kZXggKz0gbjsKICAgICB9CiAK
LSAgICBpZiBjb25zdGV4cHIgKCEhKGJpdG1hcFNpemUgJSB3b3JkU2l6ZSkpIHsKLSAgICAgICAg
Y29uc3RleHByIHNpemVfdCByZW1haW5pbmdCaXRzID0gYml0bWFwU2l6ZSAlIHdvcmRTaXplOwot
ICAgICAgICBjb25zdGV4cHIgV29yZFR5cGUgbWFzayA9IChzdGF0aWNfY2FzdDxXb3JkVHlwZT4o
MSkgPDwgcmVtYWluaW5nQml0cykgLSAxOwotICAgICAgICBiaXRzW3dvcmRzIC0gMV0gJj0gbWFz
azsKLSAgICB9CisgICAgY2xlYW5zZUxhc3RXb3JkKCk7CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBi
aXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tCmluZGV4IDMwMjFmZWMwNzE3ZWVmYTQyNmE1ZTdlYmU4YmJjNzY4Y2YzMzM3ZGYuLmJk
YzRiZWQ0Yzc0Yjc5ZTZkMjNmOWZjZTgyNmUxODRhOTVlZThiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29j
b2EvTGFuZ3VhZ2VDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCBzaXplX3QgaW5kZXhPZkJlc3RN
YXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3Rv
cjxTdAogYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgcmVzdWx0ID0gW10oKSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFn
ZXM6KV07CisgICAgICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6KV07
CiAgICAgfSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAKaW5kZXggYzcxNDkz
YjQ0YTcyMGI4ZjNkZGQ2NzRjMmFmMTQ4YzQ5MTIzOWFmMC4uMjhjOTcwY2JjZjJlZGNhYTI4MDc0
MGViMmUxMjYwN2M3Y2JlNjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcApAQCAtMjcsNTAgKzI3LDE5NiBAQAog
I2luY2x1ZGUgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4v
ZHlsZFNQSS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWlu
dDMyX3Q+JiBhcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSgpCitzdGF0aWMgYm9vbCBsaW5r
ZWRCZWZvcmUoZHlsZF9idWlsZF92ZXJzaW9uX3QgdmVyc2lvbiwgdWludDMyX3QgZmFsbGJhY2tJ
T1NWZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja01hY09TVmVyc2lvbikKIHsKLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gdmVyc2lvbjsKLSAgICByZXR1cm4gdmVyc2lvbjsKKyNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIC8vIGR5bGRfYnVpbGRfdmVyc2lvbl90IHZh
bHVlcyBjYW5ub3QgYmUgZm9yd2FyZCBkZWNsYXJlZCwgc28gd2UgZmFsbCBiYWNrIHRvCisgICAg
Ly8gdHJhZGl0aW9uYWwgU0RLIHZlcnNpb24gY2hlY2tzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBh
biBTREsgdGhhdAorICAgIC8vIGRvZXMgbm90IGhhdmUgZHlsZF9wcml2LmgsIG9yIGRvZXMgbm90
IGRlZmluZSBhIGdpdmVuIHZlcnNpb24gc2V0LgorICAgIGlmICh2ZXJzaW9uLnBsYXRmb3JtIHx8
IHZlcnNpb24udmVyc2lvbikKKyAgICAgICAgcmV0dXJuICFkeWxkX3Byb2dyYW1fc2RrX2F0X2xl
YXN0KHZlcnNpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmVyc2lvbik7CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgVU5VU0VEX1BBUkFNKGZhbGxiYWNrTWFj
T1NWZXJzaW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwg
ZmFsbGJhY2tJT1NWZXJzaW9uOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tJT1NW
ZXJzaW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwgZmFs
bGJhY2tNYWNPU1ZlcnNpb247CisjZW5kaWYKIH0KIAotdm9pZCBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24odWludDMyX3QgdmVyc2lvbikKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBf
X2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2FBZGRpdGlvbnMuY3BwPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3NDb2NvYUFkZGl0aW9ucy5jcHA+CisjZWxzZQorc3RhdGljIHZvaWQgZGlzYWJs
ZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhhdmlvcnMmKQogewot
ICAgIGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkgPSB2ZXJzaW9uOwogfQorI2VuZGlm
CiAKLXVpbnQzMl90IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpCitzdGF0aWMgU0RLQWxpZ25lZEJl
aGF2aW9ycyBjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGFwcGxpY2F0
aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKTsKLSAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lv
bigpOworICAgIFNES0FsaWduZWRCZWhhdmlvcnMgYmVoYXZpb3JzOworICAgIGJlaGF2aW9ycy5z
ZXRBbGwoKTsKKworICAgIGF1dG8gZGlzYWJsZUJlaGF2aW9yID0gWyZdIChTREtBbGlnbmVkQmVo
YXZpb3IgYmVoYXZpb3IpIHsKKyAgICAgICAgYmVoYXZpb3JzLmNsZWFyKHN0YXRpY19jYXN0PHNp
emVfdD4oYmVoYXZpb3IpKTsKKyAgICB9OworCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxNV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl85XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTIpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6Ok1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2spOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXF1aXJlc1VzZXJH
ZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVGhlU2VjcmV0U29j
aWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpOwor
ICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKGxpbmtlZEJlZm9yZShk
eWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8wLCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbHNlCisgICAgaWYgKGxpbmtl
ZEJlZm9yZShkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8w
LCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbmRpZgorCisg
ICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxN19vc192ZXJzaW9ucywgRFlMRF9JT1Nf
VkVSU0lPTl8xMV8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzKSkgeworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29t
cGxldGlvbkhhbmRsZXJDYWxscyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1
bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXZWJJY29u
RGF0YWJhc2VXYXJuaW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3By
aW5nXzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTFfMywgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xM180KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsKKyAgICAg
ICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTJfMCwgRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMF8xNCkpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6U2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVSVNjcm9sbFZp
ZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0
aW9uSW5XZWJQYWdlUHJveHkpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlRpbWVyVGhyZWFkU2FmZXR5Q2hlY2tzKTsK
KyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lv
bnMsIERZTERfSU9TX1ZFUlNJT05fMTJfMiwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNF80KSkg
eworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMYXp5R2VzdHVy
ZVJlY29nbml6ZXJJbnN0YWxsYXRpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbik7CisgICAgfQor
CisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxOV9vc192ZXJzaW9ucywgRFlMRF9J
T1NfVkVSU0lPTl8xM18wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1KSkgeworICAgICAgICBk
aXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1VuY29uZGl0aW9uYWxVbml2ZXJz
YWxTYW5kYm94RXh0ZW5zaW9uKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uUGVybWlzc2lvbkFQSSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkRlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JSZWxh
dGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIYXNVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c092ZXJmbG93SGlk
ZGVuT25NYWluRnJhbWUpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpOb0lNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWlu
VGhyZWFkKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfbGF0ZV9mYWxsXzIw
MTlfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNfMiwgRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNV8xKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCk7CisKKyAgICBpZiAobGlua2Vk
QmVmb3JlKGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNf
NCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNlbmRzTmF0aXZlTW91c2VFdmVu
dHMpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNaW5pbWl6
ZXNMYW5ndWFnZXMpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9mYWxsXzIw
MjBfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfMCwgRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
U2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pOworICAg
ICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3Rv
cmVJbml0UmV0dXJuaW5nTmlsKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6V2ViU1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vTGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9Qb2tl
ckJyb3NCdWlsdEluVGFnUXVpcmspOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8yLCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE2KSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6U3VwcG9ydHNpT1NBcHBzT25NYWNPUyk7CisKKyAgICBpZiAobGlua2VkQmVm
b3JlKGR5bGRfc3ByaW5nXzIwMjFfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfNSwg
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVy
dHlOYW1lcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9i
c2VydmVzQ2xhc3NQcm9wZXJ0eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2Vzcyk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9DbGllbnRDZXJ0
aWZpY2F0ZUxvb2t1cCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6OkRlZmF1bHRzVG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1
cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShk
eWxkX2ZhbGxfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNV8wLCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RE9NV2luZG93UmV1c2VSZXN0cmlj
dGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5U
aGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgfQorCisgICAgaWYgKGxpbmtl
ZEJlZm9yZShkeWxkX3NwcmluZ18yMDIyX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1
XzQsIERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMykpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5SZWRpcmVj
dHMpOworCisgICAgZGlzYWJsZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKGJlaGF2aW9y
cyk7CisKKyAgICByZXR1cm4gYmVoYXZpb3JzOwogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKQor
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4mIHNka0FsaWduZWRCZWhh
dmlvcnNWYWx1ZSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVy
T3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlcjsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFNES0FsaWduZWRCZWhhdmlv
cnM+PiBiZWhhdmlvcnM7CisgICAgcmV0dXJuIGJlaGF2aW9ycy5nZXQoKTsKIH0KIAotdm9pZCBz
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92
ZXJyaWRlPiBsaW5rZWRPbk9yQWZ0ZXIpCitjb25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtB
bGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKCkg
PSBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgYXV0byYgYmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9yc1ZhbHVlKCk7CisKKyAgICBpZiAoIWJlaGF2aW9ycykKKyAgICAgICAgYmVoYXZpb3JzID0g
Y29tcHV0ZVNES0FsaWduZWRCZWhhdmlvcnMoKTsKKworICAgIHJldHVybiAqYmVoYXZpb3JzOwog
fQogCi1zdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPiBsaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZSgpCit2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2
aW9ycyBiZWhhdmlvcnMpCiB7Ci0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFs
dWUoKTsKKyAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCBhc3NlcnQgdGhhdCBgbGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yYCBoYWQgbm90CisgICAgLy8gYmVlbiBjYWxsZWQgYXQg
dGhpcyBwb2ludCAoYmVjYXVzZSBpdHMgcmVwbHkgY291bGQgaGF2ZSBiZWVuIGluYWNjdXJhdGUp
LAorICAgIC8vIGJ1dCBXZWJQcmVmZXJlbmNlcyB1c2UgaW4gU2FmYXJpIChhdCBsZWFzdCkgY3Vy
cmVudGx5IHByZXZlbnRzIHRoaXMgaGFyZGVuaW5nLgorCisgICAgc2RrQWxpZ25lZEJlaGF2aW9y
c1ZhbHVlKCkgPSBiZWhhdmlvcnM7Cit9CisKK3ZvaWQgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2
aW9ycygpCit7CisgICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZp
b3JzLnNldEFsbCgpOworICAgIHNldFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKIH0K
IAotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbiBzZGtWZXJzaW9uKQordm9pZCBkaXNh
YmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqb3ZlcnJpZGVW
YWx1ZSA9PSBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nOworICAgIHNl
dFNES0FsaWduZWRCZWhhdmlvcnMoeyB9KTsKK30KIAotICAgIGF1dG8gc2RrVmVyc2lvbkFzSW50
ZWdlciA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZGtWZXJzaW9uKTsKLSAgICByZXR1cm4gc2Rr
VmVyc2lvbkFzSW50ZWdlciAmJiBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA+PSBzZGtWZXJzaW9u
QXNJbnRlZ2VyOworYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIHJldHVybiBzZGtBbGlnbmVkQmVoYXZpb3JzKCku
Z2V0KHN0YXRpY19jYXN0PHNpemVfdD4oYmVoYXZpb3IpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaCBiL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKaW5kZXgg
MDU1ODI2ZDMzOTg1ZmI4NGYxNTE2YzViMjgxNjgwNmY5NWM3NGExMC4uZWFhYTkzOWZhNDQwNjRh
ZDhhMGMzYWY5NWU1ODcwN2IxMzhlZmYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCkBAIC0yNiwxMjUgKzI2LDkyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9CaXRt
YXAuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oPgotCiBuYW1lc3BhY2UgV1RGIHsKIAotZW51bSBjbGFzcyBTREtWZXJzaW9u
IDogdWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBEWUxEX0lPU19WRVJTSU9OXzlfMCwKLSAgICBG
aXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gRFlMRF9J
T1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VGhhdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRW
aWRlbyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhMaW5rUHJldmlld0Vu
YWJsZWRCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0Q29u
dmVydHNJbnZhbGlkVVJMc1RvQmxhbmsgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmly
c3RXaXRob3V0VGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmsgPSBE
WUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RXaXRoVW5wcmVmaXhlZFBsYXlzSW5saW5l
QXR0cmlidXRlID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VmVyc2lvblRoYXRT
dXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmly
c3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxE
X0lPU19WRVJTSU9OXzExXzAsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlv
ciA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5n
QW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9J
T1NfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0Fy
ZU5vdE9ic2N1cmluZ0luc2V0cyA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdo
ZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkg
PSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VB
c3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJz
dFdpdGhvdXRNb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmsgPSBEWUxEX0lPU19WRVJTSU9O
XzEyXzAsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3MgPSBEWUxEX0lPU19W
RVJTSU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5zdGFsbGF0
aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0aFByb2Nlc3NTd2FwT25D
cm9zc1NpdGVOYXZpZ2F0aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0
aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAotICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uUGVybWlzc2lvbkFQSSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRE
ZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcgPSBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5n
RGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdp
dGhNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
Ci0gICAgRmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAotICAgIEZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5
Q29tbWFuZHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0U3VwcG9ydHNP
dmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZp
cnN0V2l0aG91dElNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVs
dCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJM
U2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2
ZU1vdXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdE1pbmlt
aXplc0xhbmd1YWdlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFdpdGhTZXNz
aW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdp
dGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX0lPU19WRVJTSU9O
XzE0XzAsCi0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9
IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVm
YXVsdEluTGVnYWN5V2ViS2l0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dExhQmFucXVlUG9zdGFsZVF1aXJrcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBG
aXJzdFdpdGhvdXRQb2tlckJyb3NCdWlsdEluVGFnUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0
XzAsCi0gICAgRmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNPbk1hY09TID0gRFlMRF9JT1NfVkVSU0lP
Tl8xNF8yLAotICAgIEZpcnN0V2l0aERhdGFVUkxGcmFnbWVudFJlbW92YWwgPSBEWUxEX0lPU19W
RVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFRoYXRPYnNlcnZlc0NsYXNz
UHJvcGVydHkgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRob3V0V2VDaGF0
U2Nyb2xsaW5nUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoU2hh
cmVkTmV0d29ya1Byb2Nlc3MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRo
QmxhbmtWaWV3T25KU1Byb21wdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdp
dGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8x
NV8wLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gID0gRFlMRF9JT1Nf
VkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVm
YXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5k
ZXhlZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJz
dFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERf
SU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhBdXRob3JpemF0aW9uSGVhZGVyT25TYW1l
T3JpZ2luUmVkaXJlY3RzID0gRFlMRF9JT1NfVkVSU0lPTl8xNV80LAotICAgIEZpcnN0V2l0aG91
dFR5cGVkQXJyYXlBUElRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTZfMCwKLSAgICBGaXJzdEZv
cmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotI2VsaWYg
UExBVEZPUk0oTUFDKQotICAgIEZpcnN0VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3Rv
cnMgPSAweEEwQTAwLCAvLyBPUyBYIDEwLjEwCi0gICAgRmlyc3RUaGF0Q29udmVydHNJbnZhbGlk
VVJMc1RvQmxhbmsgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEyLAotICAgIEZpcnN0V2l0aEV4
Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0
V2l0aFdlYkljb25EYXRhYmFzZVdhcm5pbmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAot
ICAgIEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aFRpbWVyVGhyZWFkU2FmZXR5
Q2hlY2tzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKLSAgICBGaXJzdFdpdGhvdXRVbmNv
bmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTUsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2Vi
Vmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
LAotICAgIEZpcnN0V2l0aERvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVp
cmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSwKLSAg
ICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQy
TWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmly
c3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEJs
YW5rVmlld09uSlNQcm9tcHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RX
aXRob3V0Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMs
Ci0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0QWxsb3dzV2hlZWxFdmVu
dEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywK
LSAgICBGaXJzdFdpdGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhET01XaW5kb3dSZXVzZVJlc3RyaWN0
aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFRoYXREb2VzTm90RHJh
aW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTJfMDAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhl
ZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDAsCi0gICAgRmly
c3RXaXRoQXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTJfMywKLSAgICBGaXJzdEZvcmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xM18wLAotI2VuZGlmCitlbnVtIGNsYXNzIFNES0FsaWduZWRC
ZWhhdmlvciB7CisgICAgQWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2lu
ZywKKyAgICBBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQsCisgICAgQXV0aG9yaXph
dGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cywKKyAgICBCbGFua3NWaWV3T25KU1Byb21w
dCwKKyAgICBDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuaywKKyAgICBEYXRhVVJMRnJhZ21lbnRS
ZW1vdmFsLAorICAgIERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldywK
KyAgICBEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEZWZh
dWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEaXNhbGxvd3NTZXR0
aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzLAorICAgIERvZXNOb3REcmFpblRoZU1pY3JvdGFz
a1F1ZXVlV2hlbkNhbGxpbmdPYmpDLAorICAgIERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24sCisg
ICAgRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQsCisgICAgRHJvcFRvTmF2
aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0LAorICAgIEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21w
bGV0aW9uSGFuZGxlckNhbGxzLAorICAgIEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2lu
Z0RpZmZlcmVudERhdGFTdG9yZXMsCisgICAgRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciwKKyAg
ICBGb3JiaWRzRG90UHJlZml4ZWRGb250cywKKyAgICBIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24sCisgICAgSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcywKKyAgICBJbml0aWFs
aXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24sCisgICAgTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uLAorICAgIExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5LAorICAgIE1lZGlhVHlwZXNSZXF1
aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2ssCisgICAgTWluaW1pemVzTGFuZ3VhZ2VzLAorICAg
IE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCwKKyAgICBOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwLAorICAgIE5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3csCisgICAgTm9J
TURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmssCisgICAgTm9MYUJhbnF1ZVBvc3RhbGVRdWlya3Ms
CisgICAgTm9Nb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmssCisgICAgTm9Qb2tlckJyb3NC
dWlsdEluVGFnUXVpcmssCisgICAgTm9UaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRv
d09wZW5RdWlyaywKKyAgICBOb1R5cGVkQXJyYXlBUElRdWlyaywKKyAgICBOb1VuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uLAorICAgIE5vV2VDaGF0U2Nyb2xsaW5nUXVpcmss
CisgICAgTnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcywKKyAgICBPYnNlcnZlc0Ns
YXNzUHJvcGVydHksCisgICAgUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2ssCisgICAgUHJv
Y2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24sCisgICAgUmVxdWlyZXNVc2VyR2VzdHVyZVRv
TG9hZFZpZGVvLAorICAgIFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzLAorICAgIFNjcm9sbFZpZXdD
b250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzLAorICAgIFNlbmRzTmF0aXZlTW91c2VF
dmVudHMsCisgICAgU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQsCisgICAgU2hhcmVkTmV0d29ya1By
b2Nlc3MsCisgICAgU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBT
bmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcywKKyAgICBTdXBwb3J0c0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uUGVybWlzc2lvbkFQSSwKKyAgICBTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMsCisg
ICAgU3VwcG9ydHNpT1NBcHBzT25NYWNPUywKKyAgICBTdXBwb3J0c092ZXJmbG93SGlkZGVuT25N
YWluRnJhbWUsCisgICAgVGltZXJUaHJlYWRTYWZldHlDaGVja3MsCisgICAgVUlTY3JvbGxWaWV3
RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHksCisgICAgVW5wcmVmaXhl
ZFBsYXlzSW5saW5lQXR0cmlidXRlLAorICAgIFdlYkljb25EYXRhYmFzZVdhcm5pbmcsCisgICAg
V2ViU1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCwKKyAgICBXS0NvbnRlbnRWaWV3
RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMsCisgICAgV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJl
dHVybmluZ05pbCwKKworICAgIE51bWJlck9mQmVoYXZpb3JzCiB9OwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbik7Cit1c2luZyBTREtBbGlnbmVk
QmVoYXZpb3JzID0gQml0bWFwPHN0YXRpY19jYXN0PHNpemVfdD4oU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdW1iZXJPZkJlaGF2aW9ycyksIHVpbnQzMl90PjsKIAotV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHVpbnQzMl90KTsKK1dURl9FWFBPUlRfUFJJVkFU
RSBjb25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtBbGlnbmVkQmVoYXZpb3JzKCk7CitXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhh
dmlvcnMpOwogCi0vLyBEbyBub3QgdXNlIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIGRpcmVjdGx5
OyBhZGQgYSB2ZXJzaW9uIHRvIHRoZSBlbnVtIGFib3ZlLAotLy8gYW5kIHVzZSBsaW5rZWRPbk9y
QWZ0ZXIoKSBhdCBjYWxsIHNpdGVzLgotV1RGX0VYUE9SVF9QUklWQVRFIHVpbnQzMl90IGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlQWxsU0RL
QWxpZ25lZEJlaGF2aW9ycygpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzYWJsZUFsbFNE
S0FsaWduZWRCZWhhdmlvcnMoKTsKIAotZW51bSBjbGFzcyBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZSA6IHVpbnQ4X3QgewotICAgIEJlZm9yZUV2ZXJ5dGhpbmcsCi0gICAgQWZ0ZXJFdmVyeXRoaW5n
Ci19OwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUo
c3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4pOwotV1RGX0VYUE9SVF9QUklW
QVRFIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yKTsKIAogfQogCi11c2luZyBXVEY6OnNldEFw
cGxpY2F0aW9uU0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uOwot
dXNpbmcgV1RGOjpMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6c2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwot
dXNpbmcgV1RGOjpsaW5rZWRPbk9yQWZ0ZXI7Ci11c2luZyBXVEY6OlNES1ZlcnNpb247Ci11c2lu
ZyBXVEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbjsKK3VzaW5nIFdURjo6ZGlzYWJsZUFsbFNE
S0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OmVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlv
cnM7Cit1c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcjsKK3VzaW5nIFdU
Rjo6U0RLQWxpZ25lZEJlaGF2aW9yOwordXNpbmcgV1RGOjpzZGtBbGlnbmVkQmVoYXZpb3JzOwor
dXNpbmcgV1RGOjpTREtBbGlnbmVkQmVoYXZpb3JzOwordXNpbmcgV1RGOjpzZXRTREtBbGlnbmVk
QmVoYXZpb3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJ
LmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaAppbmRleCAzNDY4OThjMjg1
NmQyZjdiZTc4MDcxZTY4MmMxMmUxN2IzNTVjY2RlLi5iY2JmNDBjYjAxZmViMjgxMWVlNzYzNDEy
ZDYwMjBlNTdlZTc4N2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5
bGRTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaApAQCAtMTIz
LDYgKzEyMywxMyBAQAogCiAjZWxzZQogCit0eXBlZGVmIHVpbnQzMl90IGR5bGRfcGxhdGZvcm1f
dDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGR5bGRfcGxhdGZvcm1fdCBwbGF0Zm9ybTsKKyAg
ICB1aW50MzJfdCB2ZXJzaW9uOworfSBkeWxkX2J1aWxkX3ZlcnNpb25fdDsKKwogI2RlZmluZSBE
WUxEX0lPU19WRVJTSU9OXzNfMCAweDAwMDMwMDAwCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05f
NF8yIDB4MDAwNDAyMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl81XzAgMHgwMDA1MDAwMApA
QCAtMTQ0LDEwICsxNTEsMTMgQEAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl8xNV80IDB4MDAw
ZjA0MDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl8xNl8wIDB4MDAxMDAwMDAKIAorI2RlZmlu
ZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEwIDB4MDAwQTBBMDAKICNkZWZpbmUgRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xMSAweDAwMEEwQjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTIgMHgwMDBBMEMwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzIDB4MDAw
QTBEMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xM180IDB4MDAwQTBEMDQKICNk
ZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCAweDAwMEEwRTAwCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTRfNCAweDAwMEEwRTA0CiAjZGVmaW5lIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUgMHgwMDBBMEYwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEgMHgwMDBBMEYwMQogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQgMHgwMDBB
MEYwNApAQCAtMTYxLDYgKzE3MSw3NSBAQAogCiBXVEZfRVhURVJOX0NfQkVHSU4KIAorLy8gQmVj
YXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gZm9yd2FyZC1kZWNsYXJlIGR5bGRfYnVpbGRfdmVy
c2lvbl90IHZhbHVlcywKKy8vIHdlIGZvcndhcmQtZGVjbGFyZSBwbGFjZWhvbGRlcnMgZm9yIGFu
eSBtaXNzaW5nIGRlZmluaXRpb25zLCBhbmQgdXNlIHRoZWlyIGVtcHR5CisvLyB2YWx1ZSB0byBp
bmRpY2F0ZSB0aGF0IHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIGFudGlxdWUgc2luZ2xlLXBsYXRm
b3JtIFNESyBjaGVja3MuCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTRfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTRfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE1X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE1X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTZfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTZfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX3NwcmluZ18yMDE4X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE4X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRf
ZmFsbF8yMDE4X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07
IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3NwcmluZ18yMDE5X29zX3ZlcnNpb25zCisjZGVm
aW5lIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2xhdGVfZmFsbF8y
MDE5X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVm
IGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxs
XzIwMjBfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkK
KyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZp
bmUgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9u
X3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9zcHJpbmdfMjAyMV9vc192
ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxf
MjAyMV9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMV9vc192ZXJzaW9ucyAoeyAo
ZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHls
ZF9zcHJpbmdfMjAyMl9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIyX29zX3Zl
cnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKwog
dWludDMyX3QgZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworYm9vbCBkeWxkX3Byb2dy
YW1fc2RrX2F0X2xlYXN0KGR5bGRfYnVpbGRfdmVyc2lvbl90KTsKIAogV1RGX0VYVEVSTl9DX0VO
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CmluZGV4IDhjZTc4OTU5ZWVkMzAzYzJiZDFhYjc2MjViOGIxOTVjYTMxZGI2MDYuLjVmYTYxMmY1
ZjgwZGVjZjYyYmNhN2NiN2JjMmJmNzlmYWM4NGQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBib29sIGFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVy
dGllcygpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gR2l2ZW4gdGhhdCBXaW5kb3dQcm94
eSBpcyB0aGUgZGVmYXVsdCB8dGhpc3wgdmFsdWUgZm9yIHNsb3BweSBtb2RlIGZ1bmN0aW9ucywg
aXQncyBoYXJkIHRvIHByb3ZlCiAgICAgLy8gdGhhdCBvbGRlciBpT1MgYW5kIG1hY09TIGFwcHMg
ZG9uJ3QgYWNjaWRlbnRhbGx5IGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9yLCBzbyB3ZSBrZWVwIGl0
IGZvciB0aGVtLgotICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVydGllc09uV2lu
ZG93KTsKKyAgICBzdGF0aWMgYm9vbCByZXF1aXJlc1F1aXJrID0gIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0
aWVzT25XaW5kb3cpOwogICAgIHJldHVybiByZXF1aXJlc1F1aXJrOwogI2Vsc2UKICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRv
d1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3Bw
CmluZGV4IDI3MjFiNzc2YWU2N2FiNjZmZDM1YmVjYzQxZjE3YzE0N2YyYTM1ZTAuLmNhNzkzOGU3
OTQ1MDhjN2MzYWFmOWM2N2IzNDczYzViMzRkNjE3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3coQWJzdHJhY3RET01XaW5kb3cmIGRvbVdpbmRvdykKICAgICAg
ICAgd2luZG93ID0gSlNET01XaW5kb3c6OmNyZWF0ZSh2bSwgJndpbmRvd1N0cnVjdHVyZSwgbG9j
YWxXaW5kb3csIHRoaXMpOwogICAgICAgICBib29sIGxpbmtlZFdpdGhOZXdTREsgPSB0cnVlOwog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICBsaW5rZWRXaXRoTmV3U0RLID0gbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24pOwor
ICAgICAgICBsaW5rZWRXaXRoTmV3U0RLID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6RE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CiAjZW5kaWYK
ICAgICAgICAgaWYgKCFsb2NhbFdpbmRvdy5kb2N1bWVudCgpLT5oYXZlSW5pdGlhbGl6ZWRTZWN1
cml0eU9yaWdpbigpICYmIGxpbmtlZFdpdGhOZXdTREspCiAgICAgICAgICAgICBsb2NhbFdpbmRv
dy5zZXRBc1dyYXBwZWRXaXRob3V0SW5pdGlhbGl6ZWRTZWN1cml0eU9yaWdpbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggMmQ4MWYxNDVhYjA1
ZTliNmMwYzU4MWNjOThjZDhiNDdkZTk5MjVmZS4uMTcwYjFmZTg0MmU1M2EyNjA5MjU4YjY2Njk1
Y2U2YzcyNmQ5YjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCkBAIC04NTcsNyArODU3LDcgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1
aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgY29uc3QKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIGlmIChDb2NvYUFwcGxpY2F0aW9uOjppc0lCb29rcygpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cikgJiYgIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6cGxheXNpbmxpbmVBdHRyKTsKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6VW5wcmVmaXhlZFBsYXlzSW5saW5lQXR0cmlidXRlKSkKICAg
ICAgICAgcmV0dXJuICFtX2VsZW1lbnQuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihIVE1MTmFtZXM6OndlYmtpdF9wbGF5c2lubGluZUF0dHIpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
YzM2MDlhMjIzYWEzZWNiZDNkMWExNjYyN2ZlZjIxOTMxMjIyZDBjYy4uZGM4Njk5NjYwOWVhYzQ3
Nzg3ZDhlYjU0NWIyOThlOWIxODdlNzk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmJiByZQogICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29s
IG5lZWRzUHJlZmxpZ2h0UXVpcmsgPSBJT1NBcHBsaWNhdGlvbjo6aXNNb3ZpU3RhclBsdXMoKSAm
JiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dE1vdmlTdGFyUGx1c0NP
UlNQcmVmbGlnaHRRdWlyaykgJiYgKG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxp
Z2h0UG9saWN5OjpDb25zaWRlciB8fCBtX29wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID09IFByZWZs
aWdodFBvbGljeTo6Rm9yY2UpOworICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IElPU0Fw
cGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWly
aykgJiYgKG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpDb25z
aWRlciB8fCBtX29wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID09IFByZWZsaWdodFBvbGljeTo6Rm9y
Y2UpOwogI2Vsc2UKICAgICBib29sIG5lZWRzUHJlZmxpZ2h0UXVpcmsgPSBmYWxzZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IGRkYmE4MzVlZjg5MjAzYWFlYWRhMWQzMDNiMjM2
OTQ1OGQ0NzI4MTIuLjg1NWY4YTc5MzhkZWM0NTg5YmRkMjg0YjU0NDI0ZWIzM2Y4Y2I4YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTcwNyw3ICs3MDcsNyBAQCBib29sIFF1aXJrczo6bmVl
ZHNGdWxsc2NyZWVuRGlzcGxheU5vbmVRdWlyaygpIGNvbnN0CiBib29sIFF1aXJrczo6bmVlZHNX
ZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHJl
dHVybiBuZWVkc1F1aXJrcygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRob3V0V2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0aW9uOjppc1dlY2hhdCgp
OworICAgIHJldHVybiBuZWVkc1F1aXJrcygpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1dlQ2hhdFNjcm9sbGluZ1F1aXJrKSAmJiBJT1NB
cHBsaWNhdGlvbjo6aXNXZWNoYXQoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CkBAIC03MTYsNyArNzE2LDcgQEAgYm9vbCBRdWlya3M6Om5lZWRzV2VDaGF0U2Nyb2xsaW5nUXVp
cmsoKSBjb25zdAogYm9vbCBRdWlya3M6OnNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGF0aWMgYm9vbCBz
aG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyk7CiAgICAgcmV0dXJu
IHNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzOwogI2Vsc2UKICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4
IDY0OTQyMjdhZDU0YjI2NDRiMjBmMjVmY2MzMzFhMTk5YzE0ZDRiODEuLjY4ZTU5ZTJhNzIzMWVm
ZjJiY2JhY2I1YmFmODI5YjgyMmYxNTExODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1Vu
aXF1ZU9yaWdpbihjb25zdCBVUkwmIHVybCkKICAgICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3
Zy5vcmcvI29yaWdpbiB3aXRoIHNvbWUgYWRkaXRpb25zCiAgICAgaWYgKHVybC5oYXNTcGVjaWFs
U2NoZW1lKCkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgfHwgIWxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFdpdGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxz
KQorICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6TnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcykKICAgICAgICAgfHwg
dXJsLnByb3RvY29sSXMoImFwcGxld2ViZGF0YSIpCiAgICAgICAgIHx8IHVybC5wcm90b2NvbElz
KCJ4LWFwcGxlLXFsLWlkIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBwbGUtcWwt
aWQyIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAppbmRleCAxODkwNTNmOTI4NWY5ODg2ZmE1
OWI4ODdhNzJhMGQ1ZWM5MTA0ODkzLi43ZjlkZjg3ZjlhOGNiN2E1YWM0MmM3YzkzZmRjMjMwMWI1
MThiM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCkBAIC0yNTAsOSArMjUwLDkgQEAg
cHJpdmF0ZToKIHN0YXRpYyBib29sIHNob3VsZFN1cHByZXNzVGhyZWFkU2FmZXR5Q2hlY2soKQog
ewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxl
ZCgpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRT
YWZldHlDaGVja3MpOworICAgIHJldHVybiBXZWJUaHJlYWRJc0VuYWJsZWQoKSB8fCAhbGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRT
YWZldHlDaGVja3MpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiAhaXNJbldlYlBy
b2Nlc3MoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFRpbWVyVGhy
ZWFkU2FmZXR5Q2hlY2tzKTsKKyAgICByZXR1cm4gIWlzSW5XZWJQcm9jZXNzKCkgJiYgIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlRpbWVyVGhyZWFk
U2FmZXR5Q2hlY2tzKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHAKaW5kZXggZGVhZTMyMjNjYjMxNTNmZjMxZmViZjYzNmQxOTA1MmMyNjU0
MjM0Mi4uZDkzMTJhOWEzYzhiODJhNzYxZWFkM2E1OTA2ZjFkZTAwMjdhODMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmNwcApAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgc3RydWN0IEZvbnRMb29rdXAg
ewogCiBzdGF0aWMgYm9vbCBpc0RvdFByZWZpeGVkRm9yYmlkZGVuRm9udChjb25zdCBBdG9tU3Ry
aW5nJiBmYW1pbHkpCiB7Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dEZvcmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Rm9yYmlkc0RvdFByZWZpeGVkRm9udHMp
KQogICAgICAgICByZXR1cm4gZmFtaWx5LnN0YXJ0c1dpdGgoJy4nKTsKICAgICByZXR1cm4gZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAiLmFwcGxlc3lzdGVtdWlmb250c2Vy
aWYiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIu
c2YgbnMgbW9ubyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0RhdGFVUkxEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0
YVVSTERlY29kZXIuY3BwCmluZGV4IGFmNTNkNjQxOGRjNTE2NTJmMmExMDc5ODU3ZWUzNzhmY2Ez
ODQwZWQuLmNjYjcxOGMwNjAxYTQ1NjU3NmQ0YTYzNzVlNGI2MWU2ZjhlMzczODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBA
IC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBEYXRhVVJMRGVjb2RlciB7CiBzdGF0aWMgYm9vbCBz
aG91bGRSZW1vdmVGcmFnbWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCkpCisgICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRS
ZW1vdmFsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSExTIHVzZXMgIyBpbiB0
aGUgbWlkZGxlIG9mIHRoZSBtYW5pZmVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggMWJkNjI3MjIzYmQ3MDJiMTkwZDc0YzAw
NmM4MTUyZjExMGUyZGMxYi4uMGMwZGI4ZmVhOGE3ZjRhNjE1ZDFjOTY0NTdhZWRhYjU0ZjhkNDYw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBv
cnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcApAQCAtMTUwLDggKzE1MCw3IEBAIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCBhbGxvd0FueVNTTENlcnRpZmljYXRlKQogdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVy
eXRoaW5nRm9yVGVzdGluZygpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc2V0QXBwbGlj
YXRpb25TREtWZXJzaW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Ci0g
ICAgc2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFm
dGVyRXZlcnl0aGluZyk7CisgICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGUxZmFiOGU5ZDhhZTIxZWIwZDdmOTg5
ZTJhZDVlMzNiZTYzNmI0MzMuLmQyOWFiN2M2ZmI0M2IxNzUxZTNmZTc1MTY1NjkzMDFlMzY2ZmRl
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmCiAgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQT3JpZ2luKCk7CiAKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAoYXV0byBhdXRob3JpemF0aW9uID0gbV9maXJzdFJlcXVlc3Qu
aHR0cEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKTsg
IWF1dGhvcml6YXRpb24uaXNOdWxsKCkgJiYgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5SZWRpcmVjdHMpKQorICAgICAg
ICBpZiAoYXV0byBhdXRob3JpemF0aW9uID0gbV9maXJzdFJlcXVlc3QuaHR0cEhlYWRlckZpZWxk
KFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKTsgIWF1dGhvcml6YXRpb24u
aXNOdWxsKCkgJiYgbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCiAgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVyTmFtZTo6
QXV0aG9yaXphdGlvbiwgYXV0aG9yaXphdGlvbik7CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9S
QUdFX1dJVEhfTkVUV09SS19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDdiMDQyYTM2
NTNjNTllYTE5NWZkZmY0MTI0NWMxNmU2YTM2MDE1YWYuLmVmZDJiMTM5YTU4ODgxNjRhZTM4NTg4
NTkxMDkyODc0MjMwOGY2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEwOTIsNyArMTA5Miw3
IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uRm9yU2Vz
c2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBbTlNV
UkxTZXNzaW9uQ29uZmlndXJhdGlvbiBkZWZhdWx0U2Vzc2lvbkNvbmZpZ3VyYXRpb25dOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgcHJldmVudENGTmV0d29ya0NsaWVudENlcnRpZmlj
YXRlTG9va3VwID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dENsaWVu
dENlcnRpZmljYXRlTG9va3VwKSB8fCBzZXNzaW9uLmlzRXBoZW1lcmFsKCk7CisgICAgYm9vbCBw
cmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRlTG9v
a3VwKSB8fCBzZXNzaW9uLmlzRXBoZW1lcmFsKCk7CiAjZWxzZQogICAgIGJvb2wgcHJldmVudENG
TmV0d29ya0NsaWVudENlcnRpZmljYXRlTG9va3VwID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IDkyYjc4Mjk4NTkzYzMyYzk1Y2U3Yzcy
ZGViOGU3NzFlODYxMTZhNTQuLjEwNjY5NTg3NDQwYmZiMjVkMzdlN2JiYWU4ZjkxMWZlZTkwM2Yy
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKQEAgLTE4MCwxNCAr
MTgwLDEzIEBAIHN0cnVjdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
IHsKICAgICBTdHJpbmcgdWlQcm9jZXNzTmFtZTsKICAgICBTdHJpbmcgY2xpZW50SWRlbnRpZmll
cjsKICAgICBTdHJpbmcgY2xpZW50QnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCBjbGll
bnRTREtWZXJzaW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXI+IHByb2Nlc3NJZGVudGlmaWVyOwogICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRyYUlu
aXRpYWxpemF0aW9uRGF0YTsKICAgICBXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPU09iamVjdFB0cjx4cGNfb2JqZWN0
X3Q+IHByaW9yaXR5Qm9vc3RNZXNzYWdlOwotICAgIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFm
dGVyT3ZlcnJpZGU+IGNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOworICAgIFNES0FsaWdu
ZWRCZWhhdmlvcnMgY2xpZW50U0RLQWxpZ25lZEJlaGF2aW9yczsKICNlbmRpZgogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1t
CmluZGV4IDVjYjBiZGM0ZGY0Nzk0NGQ2NDRlYTA3NzcxMTEwY2JhYmFiYmRiNGYuLjdiNTZkNDYw
YzkxMjA4ZjQ2NGZlODJkMGE0Nzk1MzI4NzQ0M2M0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KQEAgLTc3LDggKzc3LDcg
QEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGEKICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlUGF0aF1dOwogCiAgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKHBhcmFtZXRlcnMuY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgc2V0QXBwbGljYXRp
b25TREtWZXJzaW9uKHBhcmFtZXRlcnMuY2xpZW50U0RLVmVyc2lvbik7Ci0gICAgc2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGUocGFyYW1ldGVycy5jbGllbnRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZSk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVudFNES0FsaWdu
ZWRCZWhhdmlvcnMpOwogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXIubW0KaW5kZXggZjJjNDViYWJlMzQ2NjUzMWYxZTE5ZDZmMTQ5MzIx
OGFmODg0N2ZjOS4uNTQ3YWY5ZTlkZDRiM2ExYWQ4NmI5NWE3NTE2MTNmNzU5ZmZhOGIyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyLm1tCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRo
cm93RXhjZXB0aW9uRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxsKCkKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0gICAgICAgIHNob3VsZFRocm93
RXhjZXB0aW9uID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKKyAgICAgICAgc2hvdWxkVGhy
b3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyk7CiAg
ICAgfSk7CiAgICAgcmV0dXJuIHNob3VsZFRocm93RXhjZXB0aW9uOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQppbmRl
eCBhYzMzZjUzYTdhMDRiNTBlZDdjNWMzMGE4MjQ1MTEyYWQyMzQ1ZTg3Li4zYTE2YTJjYzM5NDRj
NDIxMTQ1Mzk4YmNmMTRlMmI1NjZlN2E1MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQpAQCAtMTI1LDcgKzEyNSw3
IEBAIHZvaWQgZGV0ZXJtaW5lSVRQU3RhdGUoKQogICAgIGlmIChjdXJyZW50SVRQU3RhdGUgIT0g
SVRQU3RhdGU6OlVuaW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgYXBw
V2FzTGlua2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0
aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0KTsKKyAgICBib29sIGFwcFdhc0xpbmtlZE9uT3JBZnRl
ciA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNl
c3Npb25DbGVhbnVwQnlEZWZhdWx0KTsKIAogICAgIGl0cFF1ZXVlKCkgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5pdHBDaGVja1F1ZXVlIik7CiAgICAgaXRwUXVldWUoKS0+
ZGlzcGF0Y2goW2FwcFdhc0xpbmtlZE9uT3JBZnRlciwgYnVuZGxlSWRlbnRpZmllciA9IFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLmlzb2xhdGVkQ29weSgpXSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5t
bQppbmRleCBiMGUwMTU5MTgxMmVlNjM5MTE5OWViMGZmZTljMjMwYWZkOTgwZjdlLi4xNGU3Y2My
NWIyMDI2OGJmYWY5YTZkNmNjMDU0MDNjYTljNmM5MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KQEAgLTY0LDcgKzY0
LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBpbml0
aWFsaXphdGlvbiBjb2RlIGlzIHJ1biBvbmx5IG9uY2UgYW5kIG9uIHRoZSBtYWluIHRocmVhZCBz
aW5jZSB0aGluZ3MgbGlrZSBpbml0aWFsaXplTWFpblRocmVhZCgpCiAgICAgLy8gYXJlIG9ubHkg
c2FmZSB0byBjYWxsIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICBzdGQ6OmNhbGxfb25jZShmbGFn
LCBbXSB7Ci0gICAgICAgIGlmIChbTlNUaHJlYWQgaXNNYWluVGhyZWFkXSB8fCBsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhyZWFkQXNz
ZXJ0aW9uKSkKKyAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbikpCiAgICAgICAgICAgICBydW5Jbml0aWFsaXphdGlvbkNv
ZGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgV29ya1F1ZXVlOjptYWluKCkuZGlzcGF0
Y2hTeW5jKFtdIHsgcnVuSW5pdGlhbGl6YXRpb25Db2RlKCk7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAppbmRleCBiYWEw
MTI1NzA3NzdhZWQyMTIxNWYxM2JiNDNmYjViYTEzOGY2OTU5Li5hNTJhZGMwMTdjZTI3MDc1MTkx
ZjEzNzk5ZDJhYTVjOWM3NWU0OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNjIsOSArNjIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3RyaW5n
JiBjbGllbnRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50QnVuZGxlSWRl
bnRpZmllcihTdHJpbmcmIGNsaWVudEJ1bmRsZUlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgYm9v
bCBnZXRDbGllbnRTREtWZXJzaW9uKHVpbnQzMl90JiBjbGllbnRTREtWZXJzaW9uKTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFt
ZSk7Ci0gICAgdmlydHVhbCBib29sIGdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0
aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+Jik7CisgICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEpOwogCiBwcm90ZWN0ZWQ6CkBAIC0xMzUsMTAgKzEz
NCw3IEBAIHZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0
aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfCiAgICAgLy8gVGhlIGhvc3QgcHJvY2VzcyBt
YXkgbm90IGhhdmUgYSBidW5kbGUgaWRlbnRpZmllciAoZS5nLiBhIGNvbW1hbmQgbGluZSBhcHAp
LCBzbyBkb24ndCByZXF1aXJlIG9uZS4KICAgICBkZWxlZ2F0ZS5nZXRDbGllbnRCdW5kbGVJZGVu
dGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50QnVuZGxlSWRlbnRpZmllcik7CiAgICAgCi0gICAgZGVs
ZWdhdGUuZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUocGFyYW1ldGVycy5jbGllbnRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZSk7Ci0KLSAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVudFNES1ZlcnNp
b24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxV
UkUpOworICAgIGRlbGVnYXRlLmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMocGFyYW1ldGVy
cy5jbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKTsKIAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyOwogICAgIGlmICghZGVsZWdhdGUuZ2V0UHJvY2Vzc0lk
ZW50aWZpZXIocHJvY2Vzc0lkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRy
eVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IGNiNzI0MGQ4NWQyNWUx
NzMxYzNkNDZlYjM2YWU3Y2Y3Njg2NDhlNjMuLjYzNjhjZjk2ZWE5NjUyNzJjMWNjN2I3Nzk0ZmFl
MzI0ODAwNTg4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTgyLDIwICs4MiwxNSBAQCBib29sIFhQQ1NlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyKFN0cmluZyYg
Y2xpZW50QnVuZAogICAgIHJldHVybiAhY2xpZW50QnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCk7
CiB9CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1Zl
cnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pCitib29sIFhQQ1NlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlOjpnZXRDbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhh
dmlvcnMmIGJlaGF2aW9ycykKIHsKLSAgICBhdXRvIHZlcnNpb24gPSBwYXJzZUludGVnZXI8dWlu
dDMyX3Q+KHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJj
bGllbnQtc2RrLXZlcnNpb24iKSk7Ci0gICAgY2xpZW50U0RLVmVyc2lvbiA9IHZlcnNpb24udmFs
dWVfb3IoMCk7Ci0gICAgcmV0dXJuIHZlcnNpb24uaGFzX3ZhbHVlKCk7Ci19CisgICAgc2l6ZV90
IGxlbmd0aCA9IDA7CisgICAgYXV0byBiZWhhdmlvckRhdGEgPSB4cGNfZGljdGlvbmFyeV9nZXRf
ZGF0YShtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1zZGstYWxpZ25lZC1iZWhhdmlvcnMi
LCAmbGVuZ3RoKTsKKyAgICBpZiAoIWxlbmd0aCB8fCAhYmVoYXZpb3JEYXRhKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3RoID09IGJlaGF2aW9ycy5zdG9y
YWdlTGVuZ3RoSW5CeXRlcygpKTsKKyAgICBtZW1jcHkoYmVoYXZpb3JzLnN0b3JhZ2UoKSwgYmVo
YXZpb3JEYXRhLCBsZW5ndGgpOwogCi1ib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
OjpnZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGUpCi17Ci0gICAgYXV0byBsaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZVZhbHVlID0geHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKG1faW5pdGlh
bGl6ZXJNZXNzYWdlLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIpOwotICAg
IGlmIChsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKQotICAgICAgICBsaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZSA9IHhwY19ib29sX2dldF92YWx1ZShsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZh
bHVlKSA/IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcgOiBMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZTo6QmVmb3JlRXZlcnl0aGluZzsKLSAgICBlbHNlCi0gICAgICAgIGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlID0gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmNwcAppbmRleCA2YTlmMmVmMjdlNGU2YzBkYTU3ZDFkYmM0ZDI2ZDkyMmZmNzUxOTkx
Li5mODNkMDFhMjA0M2FlZTVkNTMxYjdmYmI1ZjMzMDFkYmIxNWU3YjI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAg
LTQ0LDEzICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBkZWZhdWx0UGFzc2l2
ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZh
dWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogYm9vbCBkZWZhdWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgpCiB7Ci0g
ICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzSU1EYigp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0SU1EYkNTU09NVmll
d1Njcm9sbGluZ1F1aXJrKTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vSU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKICAgICBy
ZXR1cm4gIXJlc3VsdDsKIH0KIApAQCAtNjcsMTMgKzY3LDEzIEBAIGJvb2wgZGVmYXVsdEFsdGVy
bmF0ZUZvcm1Db250cm9sRGVzaWduRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVl
bExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNU
b1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsK
LSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RUaGF0QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2lu
Zyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgZGVm
YXVsdEFwcGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0T2ZmbGlu
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBzdGF0aWMgYm9vbCBuZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBu
ZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOwogICAgIHJldHVybiAhbmV3U0RL
OwogI2Vsc2UKICAgICAvLyBGSVhNRTogT3RoZXIgcGxhdGZvcm1zIHNob3VsZCBjb25zaWRlciB0
dXJuaW5nIHRoaXMgb2ZmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggNWViYzViOGE3NDliZmVjYjRjYjUyN2M1ZDQyYzhjOTU4ZjY3M2Y4OC4uMmQyY2E3MDFj
OTA5MjYxM2Y5NmM3YWIxMDJmZTJhMmYyMjRkOGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBXS1BhZ2VSZWxvYWQo
V0tQYWdlUmVmIHBhZ2VSZWYpCiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwogICAgIE9wdGlvblNl
dDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9hZE9wdGlvbnM7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVk
T25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCiAgICAg
ICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJlZE9ubHkp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KaW5kZXggOTA0MzQ1NWE1ZjYxODZmM2ZmOGFmNzk4MDdlMTk0MjRlYjBk
ZDhmYy4uNjU4ZGNmMDcxYTg1MGFhZjQ0MjM0YzJlMGMyZTRiNDE2M2YyNzc5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTQ5OCw4ICs0OTgsNyBAQCArICh2b2lkKV9mb3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3JrCiAK
ICsgKHZvaWQpX3NldExpbmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZwogewotICAg
IHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbigwKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QmVmb3JlRXZlcnl0aGluZyk7CisgICAgZGlz
YWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMoKTsKIH0KIAogKyAodm9pZClfc2V0TGlua2VkT25P
ckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcKQEAgLTUwOSw4ICs1MDgsNyBAQCArICh2b2lkKV9z
ZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZwogCiArICh2b2lkKV9zZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nCiB7Ci0gICAgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Ci0gICAgc2V0TGlua2VkT25PckFm
dGVyT3ZlcnJpZGUoTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyk7Cisg
ICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6KEJPT0wpaXNFbmFibGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAx
ODNmNGZjMjgzYzM0Nzg1MTgxOWViNjc1Y2VjOGMyODY2MTc2ZDE4Li5hYjA3NGNiNGIzMzEwNGY1
Yjg5N2FlOWNjYWI0Mjk4MWU0ZmUyNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI0MiwxMyArMjQyLDEzIEBAIC0gKEJPT0wpX2lz
VmFsaWQKIAogc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5
YmFjaygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKICAg
ICByZXR1cm4gc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjazsKIH0KIAog
c3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmls
ZVVSTHMgPSAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzQ2FyZGlvZ3JhbSgpIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc05pa2UoKSkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMgPSAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzQ2FyZGlvZ3JhbSgpIHx8IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc05pa2UoKSkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9t
RmlsZVVSTHMpOwogICAgIHJldHVybiBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9t
RmlsZVVSTHM7CiB9CiAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxv
d1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogc3RhdGljIGJvb2wgc2hvdWxkUmVx
dWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8oKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRv
TG9hZFZpZGVvKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xv
YWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6OlJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbyk7CiAgICAgcmV0dXJuIHNob3VsZFJl
cXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yNjYsNyArMjY2LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9M
b2FkVmlkZW8oKQogCiBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVzdHJpY3RzQmFzZVVS
TFNjaGVtZXMpOwogICAgIHJldHVybiBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzOwogfQog
CkBAIC0zNDQsNyArMzQ0LDcgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9u
OihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogICAgICAgICBXS1Byb2Nl
c3NQb29sICpyZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sID0gW3JlbGF0ZWRXZWJWaWV3LT5fY29u
ZmlndXJhdGlvbiBwcm9jZXNzUG9vbF07CiAgICAgICAgIGlmIChwcm9jZXNzUG9vbCAmJiBwcm9j
ZXNzUG9vbCAhPSByZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sKQogICAgICAgICAgICAgW05TRXhj
ZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlJlbGF0ZWQg
d2ViIHZpZXcgJUAgaGFzIHByb2Nlc3MgcG9vbCAlQCBidXQgY29uZmlndXJhdGlvbiBzcGVjaWZp
ZXMgYSBkaWZmZXJlbnQgcHJvY2VzcyBwb29sICVAIiwgcmVsYXRlZFdlYlZpZXcsIHJlbGF0ZWRX
ZWJWaWV3UHJvY2Vzc1Bvb2wsIGNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2xdOwotICAgICAgICBp
ZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBb
X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gJiYgbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVu
dERhdGFTdG9yZXMpKQorICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0g
JiYgbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhj
ZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcykpCiAgICAg
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBoYXMgZGF0YSBzdG9yZSAlQCBidXQgY29uZmlndXJh
dGlvbiBzcGVjaWZpZXMgYSBkaWZmZXJlbnQgZGF0YSBzdG9yZSAlQCIsIHJlbGF0ZWRXZWJWaWV3
LCBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLCBbX2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV1dOwogCiAgICAgICAgIFtfY29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpyZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sXTsKQEAgLTM2OCw3ICsz
NjgsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgX3ZpZXdwb3J0TWV0YVRhZ1dpZHRoID0g
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKICAgICBfaW5pdGlhbFNjYWxl
RmFjdG9yID0gMTsKICAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IGRlZmF1bHRBbGxv
d3NWaWV3cG9ydFNocmlua1RvRml0OwotICAgIF9hbGxvd3NMaW5rUHJldmlldyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQp
OworICAgIF9hbGxvd3NMaW5rUHJldmlldyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CiAKICNp
ZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogICAgIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkID0g
Tk87CkBAIC01MTUsNyArNTE1LDcgQEAgLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjoo
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgogICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJG
cm9tRmlsZVVSTHMoc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKCkp
OwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTaG91bGREZWNpZGVQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyghIVtfY29uZmlndXJhdGlvbiBfc2hv
dWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXddKTsKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
cygpLT5zZXREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1p
c3Npb25BUEkpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uUGVybWlzc2lvbkFQSSkpOwogI2VuZGlmCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTeXN0ZW1QcmV2aWV3RW5h
YmxlZCghIVtfY29uZmlndXJhdGlvbiBfc3lzdGVtUHJldmlld0VuYWJsZWRdKTsKQEAgLTU3MCw3
ICs1NzAsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnByZWZlcmVuY2VzKCktPnNldFNhbXBsZWRQYWdlVG9wQ29sb3JNYXhEaWZmZXJlbmNlKFtfY29u
ZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2VdKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhl
aWdodChbX2NvbmZpZ3VyYXRpb24gX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHRdKTsKIAot
ICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lm
aWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNpdGVTcGVjaWZpY1F1aXJrc0FyZUVu
YWJsZWRCeURlZmF1bHQpKQogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMo
KS0+c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTg4MCw3ICs4ODAsNyBAQCAtIChXS05hdmlnYXRpb24gKilyZWxvYWQKIHsK
ICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9w
dGlvbj4gcmVsb2FkT3B0aW9uczsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9h
ZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0
aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICByZXR1cm4gd3JhcHBlcihfcGFnZS0+cmVsb2FkKHJl
bG9hZE9wdGlvbnMpKTsKQEAgLTEyNTAsNyArMTI1MCw3IEBAIC0gKHZvaWQpdGFrZVNuYXBzaG90
V2l0aENvbmZpZ3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25m
aWd1CiAgICAgICAgIH1dOwogICAgIH07CiAKLSAgICBpZiAoKHNuYXBzaG90Q29uZmlndXJhdGlv
biAmJiAhc25hcHNob3RDb25maWd1cmF0aW9uLmFmdGVyU2NyZWVuVXBkYXRlcykgfHwgIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRl
cykpIHsKKyAgICBpZiAoKHNuYXBzaG90Q29uZmlndXJhdGlvbiAmJiAhc25hcHNob3RDb25maWd1
cmF0aW9uLmFmdGVyU2NyZWVuVXBkYXRlcykgfHwgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewog
ICAgICAgICBjYWxsU25hcHNob3RSZWN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCmluZGV4IGQzMTU2MjNmMzQyYjBjZDA1MDJiMGU1ZjYxMmMzYWU3MWZm
NWQ1OWIuLjEyYjljNTA3MmVkNzMyOGQ0MGM0ZjNlY2M3YWE2MjQ5ZmNhNmRmODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIF9XS0RyYWdMaWZ0RGVs
YXkgdG9EcmFnTGlmdERlbGF5KE5TVUludGVnZXIgdmFsdWUpCiBzdGF0aWMgYm9vbCBkZWZhdWx0
U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogewogI2lm
IFVTRShRVUlDS19MT09LKQotICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1
aWNrTG9va1ByZXZpZXcpOworICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlY2lkZXNQb2xpY3lC
ZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CiAgICAgcmV0dXJuIHNob3VsZERlY2lkZTsK
ICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAzLDcgKzIwMyw3IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0CiAgICAgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4g
PSAhX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAgICAgX21lZGlhRGF0YUxvYWRzQXV0b21h
dGljYWxseSA9IF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOwogI2lmICFQTEFURk9STShXQVRD
SE9TKQotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWVkaWFU
eXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYgKGxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1lZGlhVHlwZXNSZXF1aXJp
bmdVc2VyQWN0aW9uRm9yUGxheWJhY2spKQogICAgICAgICBfbWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBdWRpbzsKICAgICBl
bHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDU2YTBlMGQ4Mzk5MjhkYWU4MTJmMDZjYjI4
MjhjMjIzNjViNjdjZTkuLmUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtMTQ5LDcgKzE0OSw3IEBAICsgKFdLV2Vic2l0ZURhdGFTdG9y
ZSAqKW5vblBlcnNpc3RlbnREYXRhU3RvcmUKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdLV2Vic2l0ZURhdGFT
dG9yZUluaXRSZXR1cm5pbmdOaWwpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsKSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TR2VuZXJpY0V4Y2VwdGlvbiBmb3Jt
YXQ6QCJDYWxsaW5nIFtXS1dlYnNpdGVEYXRhU3RvcmUgaW5pdF0gaXMgbm90IHN1cHBvcnRlZC4i
XTsKICAgICAKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggZGM4OTg4MWQ3NWQ4
MzVmNjQ3ZDQyYThkNGIxMDNmMTZmZTkwNjgzYy4uMTg5ZjlmY2I1ZGM5NDFjNGQxYzhlYTIxODhj
ZTFmMDg4OWU0MDRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW0KQEAgLTY0Niw3ICs2NDYsNyBAQCAtIChVSUVkZ2VJbnNldHMpX2NvbnRl
bnRJbnNldHNGcm9tU3lzdGVtTWluaW11bUxheW91dE1hcmdpbnMKIAogLSAoVUlFZGdlSW5zZXRz
KV9jb21wdXRlZE9ic2N1cmVkSW5zZXQKIHsKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uOjpGaXJzdFdoZXJlU2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJ
bnNldHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0
cykpIHsKICAgICAgICAgLy8gRm9yIGJpbmFyeSBjb21wYWJpbGl0eSB3aXRoIHRoaXJkIHBhcnR5
IGFwcHMsIHRyZWF0IHNjcm9sbCB2aWV3IGNvbnRlbnQgaW5zZXRzIGFzIG9ic2N1cmluZyBpbnNl
dHMgd2hlbiB0aGUgYXBwIGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIGFnYWluc3QgYSBXZWJLaXQg
dmVyc2lvbiB3aXRob3V0IHRoZSBmaXggaW4gcjIyOTY0MS4KICAgICAgICAgcmV0dXJuIFtzZWxm
IF9jb21wdXRlZENvbnRlbnRJbnNldF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IGQyOWNjNWNkMzk5MWU4YTU5YWNlOTgwYTExZGYw
MzFkMjI3NDYyMjAuLjUxYjliZGIwZjdmYjQyOWM2ZjUyYWRmYzJmMjE2ZWI3ZDI0YTRmMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBA
IC0xMTg2LDcgKzExODYsNyBAQCAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfd2ViX2RyYWdE
ZXN0aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZwogICAgIGlmIChbdWlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRyYWdEZXN0aW5h
dGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86KV0pCiAgICAgICAgIHJldHVybiBbdWlEZWxl
Z2F0ZSBfd2ViVmlldzpzZWxmIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0lu
Zm86ZHJhZ2dpbmdJbmZvXTsKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9O
YXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1cm4gV0tEcmFnRGVzdGlu
YXRpb25BY3Rpb25Bbnk7CiAKICAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25BY3Rpb25Bbnkg
JiB+V0tEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLm1tCmluZGV4IGQ5ODI2NjJiOWZiYjdmZTNiNmZhODU4ZjU1ZWQ1ZDI4MGRlNDE1MWYu
LjY1OTQwMjNlM2UzNWMwZjIwMjE2OTk4NWNkMzBhNDdiNTc3NzQwZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTI4Niw3ICsyODYsNyBAQCAtICh2b2lkKWluc3Bl
Y3RvcldLV2ViVmlld1JlbG9hZDooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3CiAgICAg
ICAgIHJldHVybjsKIAogICAgIE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9h
ZE9wdGlvbnM7Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhF
eHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikp
CiAgICAgICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJl
ZE9ubHkpOwogCiAgICAgX2luc3BlY3RlZFBhZ2UtPnJlbG9hZChyZWxvYWRPcHRpb25zKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2NvY29hL1Byb2Nlc3NM
YXVuY2hlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2Ev
UHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0KaW5kZXggNDllYTlmZjNlMjU3MjVhYTlmMDFlZGQ2ZTg3
ZjBmZTNmMzMwNWQ5ZC4uOTcyZGU2M2MxMzEzYzkwZTRhOGQxZTg1ODliZWU2YmIyMjMyM2E4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vz
c0xhdW5jaGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Y29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0KQEAgLTIxNiw3ICsyMTYsNiBAQCB2b2lkIFBy
b2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
c3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtaWRlbnRpZmllciIsICFjbGll
bnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/IGNsaWVudElkZW50aWZpZXIudXRmOCgpLmRhdGEoKSA6
ICpfTlNHZXRQcm9nbmFtZSgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3Rz
dHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtYnVuZGxlLWlkZW50aWZpZXIiLCBXZWJDb3JlOjph
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKLSAgICB4cGNfZGlj
dGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLXZl
cnNpb24iLCBTdHJpbmc6Om51bWJlcihhcHBsaWNhdGlvblNES1ZlcnNpb24oKSkudXRmOCgpLmRh
dGEoKSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdl
dCgpLCAicHJvY2Vzcy1pZGVudGlmaWVyIiwgU3RyaW5nOjpudW1iZXIobV9sYXVuY2hPcHRpb25z
LnByb2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInVpLXByb2Nlc3Mt
bmFtZSIsIFtbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXSBVVEY4U3Ry
aW5nXSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdl
dCgpLCAic2VydmljZS1uYW1lIiwgbmFtZSk7CkBAIC0yMjcsOCArMjI2LDggQEAgdm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
ZmQoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInN0ZGVyciIsIFNUREVSUl9GSUxFTk8pOwogICAg
IH0KICAgICAKLSAgICBpZiAoYXV0byBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wo
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1saW5rZWQtb24tb3ItYWZ0ZXItb3ZlcnJp
ZGUiLCAqbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSA9PSBMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBhdXRvIHNka0JlaGF2aW9ycyA9IHNka0FsaWdu
ZWRCZWhhdmlvcnMoKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShib290c3RyYXBNZXNz
YWdlLmdldCgpLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsIHNka0JlaGF2aW9ycy5z
dG9yYWdlKCksIHNka0JlaGF2aW9ycy5zdG9yYWdlTGVuZ3RoSW5CeXRlcygpKTsKIAogICAgIGF1
dG8gZXh0cmFJbml0aWFsaXphdGlvbkRhdGEgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAwYjYxZjlhNzFlNDhmYjU4MThlY2Vj
OTYwZWZlMTEzNzdkMjQ2OTA4Li5iY2UxOTQyNjI5NDNiM2IxMDU2MTg0ZDk1NDM2ZmI0ZjE1ZDZm
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpoYXNTY3JvbGxhYmxlT3Jab29tZWRNYWluRnJhbWUoKSBjb25zdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWluRnJhbWUpKQorICAgIGlm
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dI
aWRkZW5Pbk1haW5GcmFtZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViZmNjOGI0NTk2NDY3NThi
YWMzMmI3MzU1NDYwNWE3YmJiOTJkODAuLmVjYThjMThjYzUxYTQwNjQ4NDVjNjg2NjY0NTU5YWYz
MWZhMWI4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTM0OSw3ICsxMzQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlhbGl6ZVNhbmRi
b3hFeHRlbnNpb25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKICAgICB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbikpCisgICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Vu
Y29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKICAgICAgICAgd2lsbEFjcXVp
cmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24ocHJvY2Vzcyk7CiAjZW5kaWYKIApA
QCAtMjY2Nyw3ICsyNjY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VWaWV3QmxhbmtJZlVu
cGFpbnRlZFNpbmNlTGFzdExvYWRDb21taXQoKQogewogICAgIGlmICghbV9oYXNVcGRhdGVkUmVu
ZGVyaW5nQWZ0ZXJEaWRDb21taXRMb2FkKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAg
IHN0YXRpYyBib29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbjo6Rmlyc3RXaXRoQmxhbmtWaWV3T25KU1Byb21wdCk7CisgICAgICAgIHN0YXRpYyBib29s
IHNob3VsZE1ha2VWaWV3QmxhbmsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpCbGFua3NWaWV3T25KU1Byb21wdCk7CiAjZWxzZQogICAgICAgICBz
dGF0aWMgYm9vbCBzaG91bGRNYWtlVmlld0JsYW5rID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDc3YzRiZTc5NDNkMWIwMjQy
MmU3Njc2Mjc4YzIwZjhjMDk1M2IwNDkuLmRlNWQyMWQ1M2M2N2RlMGM1MDA5MDZmYTM0YzQ1OGQ0
ZGIyZTU2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTIzNyw3ICsyMzcsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGJvb2wgaXNT
YWZhcmkgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6aXNTYWZhcmkoKTsKICNlbmRpZgogICAg
ICAgICBpZiAoaXNTYWZhcmkpCi0gICAgICAgICAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICAgICAgICAg
IGVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMoKTsKICNlbmRpZgogICAgIH0pOwogCkBAIC0y
NzksNyArMjc5LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHVwZGF0ZUJhY2tGb3J3YXJk
Q2FjaGVDYXBhY2l0eSgpOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNMdXRyb24oKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aFNoYXJlZE5ldHdvcmtQcm9jZXNzKSkgeworICAgIGlmIChXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNMdXRyb24oKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6U2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CiAgICAgICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAgICAgIGlmIChXZWJzaXRlRGF0YVN0b3JlOjpk
ZWZhdWx0RGF0YVN0b3JlRXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgV2Vic2l0ZURhdGFTdG9y
ZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtMTE1
NCw3ICsxMTU0LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKIAogICAgIGJvb2wgZW5hYmxl
UHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBwYWdlLT5wcmVmZXJlbmNlcygpLnBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uRW5hYmxlZCgpOwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0ZpcmVmb3goKSAm
JiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9z
c1NpdGVOYXZpZ2F0aW9uKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmly
ZWZveCgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbikpCiAgICAgICAgIGVuYWJsZVBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0gZmFsc2U7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTcwNDUwYTk1YmE2
ZThhNDllZTVmYzgxZTExYjU1MDkxYmI5NGI2Mi4uNDM4MjE1NTMxNDRkNmYzMjZiMDk0Y2EyNGNk
M2Y1NTFjN2UzMTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCkBAIC0xMzIsOSArMTMyLDkgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhhc1JlYWNo
ZWRQcm9jZXNzQ291bnRMaW1pdCgpCiBzdGF0aWMgYm9vbCBpc01haW5UaHJlYWRPckNoZWNrRGlz
YWJsZWQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuIExJS0VMWShS
dW5Mb29wOjppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4g
TElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBh
Z2VQcm94eSk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIExJS0VMWShSdW5Mb29w
Ojppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4gTElLRUxZ
KFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94
eSk7CiAjZWxzZQogICAgIHJldHVybiBSdW5Mb29wOjppc01haW4oKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAzYjQ2N2Y0NWI5
ODAzYjYwM2QyYTVlZDZhMDg3NTViN2ZiNTQxOGRkLi44YjY3MGRhZTQ5YzMyMmY1YmZiMDI4NzZj
ZTQyZDQzY2M0YzE3NWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQpAQCAtMjAwLDcgKzIwMCw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAg
ICAgW3NlbGYgYWRkU3VidmlldzpfZml4ZWRDbGlwcGluZ1ZpZXcuZ2V0KCldOwogICAgIFtfZml4
ZWRDbGlwcGluZ1ZpZXcgYWRkU3Vidmlldzpfcm9vdENvbnRlbnRWaWV3LmdldCgpXTsKIAotICAg
IGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aExhenlHZXN0dXJlUmVj
b2duaXplckluc3RhbGxhdGlvbikpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRp
b24pKQogICAgICAgICBbc2VsZiBzZXRVcEludGVyYWN0aW9uXTsKICAgICBbc2VsZiBzZXRVc2Vy
SW50ZXJhY3Rpb25FbmFibGVkOllFU107CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sJilwcgogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZDopIG5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmlj
YXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfc2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6KSBuYW1lOlVJU2NyZWVuQ2Fw
dHVyZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OltVSVNjcmVlbiBtYWluU2NyZWVuXV07
CiAKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXZlcm5vdGUoKSAmJiAhbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92
ZXJyaWRlS2V5Q29tbWFuZHMpKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNF
dmVybm90ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpKQogICAgICAg
ICBjbGFzc19hZGRNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSwgcmVp
bnRlcnByZXRfY2FzdDxJTVA+KCZrZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3Rl
KSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChzZWxmLmNs
YXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpKSkpOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCAzZjExZmQxMjMyZTJiYzkwZjVlMGRlNjEyYWFhZTM1NTMyNGFjNWQ0Li5j
NjQ0MDFlOTQ5ZDg1NzNkZDEyMGUyMGQ3ZmUyODlmOGY4Mjc0OGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTgxMjcsNyArODEyNyw3IEBAIC0gKEJPT0wpX3Nob3VsZFVzZUNvbnRleHRNZW51cwogICAg
ICAgICByZXR1cm4gTk87CiAjZW5kaWYKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCi0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24pOworICAgIHJldHVybiBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIYXNVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24pOwogI2VuZGlmCiAgICAgcmV0dXJuIE5POwogfQpAQCAtOTg4Myw3ICs5ODgz
LDcgQEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25Jc0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhj
b25zdCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQog
Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RWZXJzaW9uV2l0aGlP
U0FwcHNPbk1hY09TKSkgeworICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNpT1NBcHBzT25NYWNPUykpIHsKICAgICAgICAg
aWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0ZJRkFDb21wYW5pb24oKSAvLyA8cmRhcjov
L3Byb2JsZW0vNjcwOTM0ODc+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNOb2dnaW4oKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ4MzAzMzU+CiAgICAgICAgICAgICB8
fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNPS0N1cGlkKCkgLy8gPHJkYXI6Ly9wcm9ibGVt
LzY1Njk4NDk2PgpAQCAtOTg5NSw3ICs5ODk1LDcgQEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25J
c0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhjb25zdCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkgeworICAgIGlmICghbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2
ZW50cykpIHsKICAgICAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1BvY2tldENp
dHkoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjIyNzMwNzc+CiAgICAgICAgICAgICB8fCBXZWJDb3Jl
OjpJT1NBcHBsaWNhdGlvbjo6aXNFc3NlbnRpYWxTa2VsZXRvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82MjY5NDUxOT4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0VT
UE5GYW50YXN5U3BvcnRzKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY0NjcxNTQzPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KaW5kZXggNzgxZDM2ZWQ4YTFlZjYy
YWJhNWQ1MDFjMDZlNmVlNmU4NWE1ZTgzNy4uNzE0NGIzMjM1M2JkNmVhN2U4MWNiYzI5NjA0NjY4
YjM0NDZjMDM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCkBAIC00MjIsNyArNDIyLDcgQEAgLSAoVUlFZGdlSW5zZXRzKV9zeXN0ZW1Db250ZW50SW5z
ZXQKICAgICAvLyB0byBpbmNsdWRlIGtleWJvYXJkIGluc2V0cyBpbiB0aGUgc3lzdGVtQ29udGVu
dEluc2V0LiBXZSBhbHdheXMgd2FudAogICAgIC8vIGtleWJvYXJkIGluc2V0cyBhcHBsaWVkLCBl
dmVuIHdoZW4gd2ViIGNvbnRlbnQgaGFzIGNob3NlbiB0byBkaXNhYmxlIGF1dG9tYXRpYwogICAg
IC8vIHNhZmUgYXJlYSBpbnNldCBhZGp1c3RtZW50LgotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5z
ZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlv
ciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1c3RtZW50TmV2ZXIpCisgICAgaWYgKGxp
bmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xs
Vmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNv
bnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlvciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRB
ZGp1c3RtZW50TmV2ZXIpCiAgICAgICAgIHN5c3RlbUNvbnRlbnRJbnNldC5ib3R0b20gKz0gX2tl
eWJvYXJkQm90dG9tSW5zZXRBZGp1c3RtZW50OwogCiAgICAgcmV0dXJuIHN5c3RlbUNvbnRlbnRJ
bnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIubW0KaW5kZXggNGRhNzJmNDU0NGUxMDAyMmZhYjdkOWYzZTA3OTYxNGU3OGM2
YzQ3OS4uMDFjODA3ZjYzOGJlY2Y0ODBmZWIxNTQ1ZmMyZWQwMDA2NDMzZmNkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIu
bW0KQEAgLTgyLDcgKzgyLDcgQEAgLSAodm9pZClzdGFydAogICAgIGlmICgrK19zdGFydENvdW50
ID4gMSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJv
cGVydHkpKQogICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gYWRkT2JzZXJ2
ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIiBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6bmlsXTsKIH0KIApAQCAtOTIsNyAr
OTIsNyBAQCAtICh2b2lkKXN0b3AKICAgICBpZiAoIV9zdGFydENvdW50IHx8IC0tX3N0YXJ0Q291
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RUaGF0T2JzZXJ2ZXNDbGFzc1Byb3BlcnR5KSkKKyAgICBpZiAobGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXNDbGFzc1Byb3Bl
cnR5KSkKICAgICAgICAgW1tVSVNjcmliYmxlSW50ZXJhY3Rpb24gY2xhc3NdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2lsSW5wdXRFeHBlY3RlZCJdOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAwZTMy
OGIxM2YxNTlmNmIxMWQ5Yjc4MjYzOGUwY2ZhOTFiMzkxODkyLi5mZTEzNjY2MGUxMTcxZWE0NGIw
MTJjMWY2NjIyMjZiNjI3ZWE2YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEzOTcsNyArMTM5Nyw3IEBAIHN0YXRpYyBib29sIGRl
c2t0b3BDbGFzc0Jyb3dzaW5nUmVjb21tZW5kZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1CiAgICAgICAgIGF1dG8gc2NyZWVuQ2xhc3MgPSBNR0dldFNJbnQzMkFuc3dlcihr
TUdRTWFpblNjcmVlbkNsYXNzLCBNR1NjcmVlbkNsYXNzUGFkMik7CiAgICAgICAgIHNob3VsZFJl
Y29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gc2NyZWVuQ2xhc3MgIT0gTUdTY3JlZW5DbGFz
c1BhZDMgJiYgc2NyZWVuQ2xhc3MgIT0gTUdTY3JlZW5DbGFzc1BhZDQgJiYgZGVza3RvcENsYXNz
QnJvd3NpbmdTdXBwb3J0ZWQoKTsKICNlbmRpZgotICAgICAgICBpZiAoaWdub3JlU2FmZWd1YXJk
cyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQp
KSB7CisgICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxp
dHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgewogICAgICAg
ICAgICAgLy8gT3B0IG91dCBhcHBzIHRoYXQgaGF2ZW4ndCB5ZXQgYnVpbHQgYWdhaW5zdCB0aGUg
aU9TIDEzIFNESyB0byBsaW1pdCBhbnkgaW5jb21wYXRpYmlsaXRpZXMgYXMgYSByZXN1bHQgb2Yg
ZW5hYmxpbmcgZGVza3RvcC1jbGFzcyBicm93c2luZyBieSBkZWZhdWx0IGluCiAgICAgICAgICAg
ICAvLyBXS1dlYlZpZXcgb24gYXBwcm9wcmlhdGVseS1zaXplZCBpUGFkIG1vZGVscy4KICAgICAg
ICAgICAgIHNob3VsZFJlY29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1
bHRVSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRl
cy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQppbmRleCBlMzEyOTQwYTYxZWY4MmJiYWNlNjFhNjcz
MzY2NzAyNjkxYWYzMTU4Li44YmMyZmZjYjNlMTI4MzE0ZmQ3NDE5OTJmOTJiY2YyZDZlMjgyZWE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRVSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1
bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KQEAgLTIxNiw3ICsyMTYsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgcHJpbnRGcmFtZVZpZXc6KFdlYkZyYW1l
VmlldyAqKWZyYW1lVmlldwogI2lmIFBMQVRGT1JNKE1BQykKIC0gKE5TVUludGVnZXIpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5n
SW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRC
eURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6RHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKICAgICAg
ICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXZWJE
cmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkLm1tCmluZGV4IGUyNDdh
OGUyZDU2ZDBlNjc2MDlkOTg4YWYxMjc5YzhlMjM3NTdlYmIuLmY2Y2NmZWRmMzdhN2NjYTlkNzFj
MDRhZTZmYmU2MzYyOWNmNGUzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L01pc2MvV2ViRG93bmxvYWQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQpAQCAtNDcsNyArNDcsNyBAQAogc3RhdGljIGJvb2wgc2hvdWxkQ2FsbE9u
TmV0d29ya1RocmVhZCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyBib29sIGlz
T2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXIgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6aXNFcHNv
blNvZnR3YXJlVXBkYXRlcigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQpOworICAgIHN0YXRpYyBi
b29sIGlzT2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXIgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6
aXNFcHNvblNvZnR3YXJlVXBkYXRlcigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb3dubG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRo
cmVhZCk7CiAgICAgcmV0dXJuIGlzT2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXI7CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViSWNvbkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0KaW5kZXggYTI4MzU1NGEzYjQxZDdkMTA0OWE1MGU5ZWMwMTU3NjA4OTU1NWRh
Yy4uNDYyNTE4NWJiNWIzZmJmMWIxZWRjYzQxNjQ5MzU1NjUyMWQ3MzA5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTEwOCw3ICsx
MDgsNyBAQCArIChXZWJJY29uRGF0YWJhc2UgKilzaGFyZWRJY29uRGF0YWJhc2UKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPFdlYkljb25EYXRhYmFzZT4+IGRhdGFiYXNlOwog
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
LCBeIHsKLSAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhX
ZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKKyAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFzZVdhcm5pbmcpKQog
ICAgICAgICAgICAgTlNMb2coQCIrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2Vd
IGlzIG5vdCBBUEkgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gV2ViSWNvbkRhdGFiYXNlIG5vIGxv
bmdlciBoYW5kbGVzIGljb24gbG9hZGluZyBhbmQgaXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0
dXJlIHJlbGVhc2UuIik7CiAKICAgICAgICAgZGF0YWJhc2UuZ2V0KCkgPSBhZG9wdE5TKFtbV2Vi
SWNvbkRhdGFiYXNlIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmlu
ZGV4IGRkMWI3OTU3NjExMDVhYmI0MGE1NDVjZjdmMjg3MTk4NTZiZjg0NWEuLjc1NGViNjY3M2Rl
ZTk5ZTRhMWJmOTMyNjBiNTU5ZDljY2IyMDg3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
Lm1tCkBAIC01NCwxMyArNTQsMTMgQEAgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFja0FmdGVyRnVsbHNjcmVlbigpCiAKIGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
V2l0aFBpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91
bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxh
eWJhY2spOwogICAgIHJldHVybiBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrOwogfQogCiBib29sIGRlZmF1bHRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1dpbmRvd09wZW5XaXRob3V0VXNl
ckdlc3R1cmUgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNUaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0
VGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOworICAgIHN0YXRp
YyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSA9IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCkgJiYgIWxp
bmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVGhlU2Vj
cmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOwogICAgIHJldHVybiBzaG91
bGRBbGxvd1dpbmRvd09wZW5XaXRob3V0VXNlckdlc3R1cmU7CiB9CiAKQEAgLTcxLDIwICs3MSwy
MCBAQCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZSgpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9u
RG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVy
c09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVmYXVsdFJlcXVp
cmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVx
dWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVUb0xv
YWRWaWRlbyk7CiAgICAgcmV0dXJuIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
OwogfQogCiBib29sIGRlZmF1bHRXZWJTUUxFbmFibGVkKCkKIHsKICAgICAvLyBGb3IgYmFja3dh
cmQgY29tcGF0aWJpbGl0eSwga2VlcCBXZWJTUUwgd29ya2luZyB1bnRpbCBhcHBzIGFyZSByZWJ1
aWx0IHdpdGggdGhlIGlPUyAxNCBTREsuCi0gICAgc3RhdGljIGJvb2wgd2ViU1FMRW5hYmxlZCA9
ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV2ViU1FMRGlzYWJsZWRCeURl
ZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgc3RhdGljIGJvb2wgd2ViU1FMRW5hYmxlZCA9ICFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKICAgICByZXR1cm4gd2ViU1FMRW5hYmxl
ZDsKIH0KIApAQCAtMTc5LDcgKzE3OSw3IEBAIGJvb2wgZGVmYXVsdEF0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOwor
ICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJM
U2NoZW1lcyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAK
QEAgLTIwOCw3ICsyMDgsNyBAQCBib29sIGRlZmF1bHRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29u
dGVudCgpCiAKIGJvb2wgZGVmYXVsdFNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgPSBsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0Q29udmVydHNJbnZhbGlkVVJMc1RvQmxh
bmspOworICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgPSBs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpDb252ZXJ0
c0ludmFsaWRVUkxzVG9CbGFuayk7CiAgICAgcmV0dXJuIHNob3VsZENvbnZlcnRJbnZhbGlkVVJM
c1RvQmxhbms7CiB9CiAKQEAgLTIxNiwxMyArMjE2LDEzIEBAIGJvb2wgZGVmYXVsdFNob3VsZENv
bnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKQogCiBib29sIGRlZmF1bHRQYXNzaXZlV2hlZWxMaXN0
ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9QYXNz
aXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBi
b29sIGRlZmF1bHRXaGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dEFsbG93c1doZWVsRXZlbnRHZXN0dXJlc1RvQmVjb21lTm9uQmxvY2tpbmcpOworICAgIHN0YXRp
YyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkFsbG93c1doZWVsRXZlbnRHZXN0dXJlc1RvQmVjb21lTm9uQmxvY2tpbmcpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBmMTRmYTM5OTRmNGFmYWJiY2U1YjAxYjk5NDU3NTJkYTk5YTgxMWY5
Li4wY2MxNzg1MTBiMTYwNGVhODBmMjUyYjZlNGUwMDg5ZjRlMmRkNGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzkxLDcgKzEzOTEsNyBAQCAt
KHZvaWQpX2luamVjdE91dGxvb2tRdWlya3NTY3JpcHQKICNpZiBQTEFURk9STShJT1MpCiBzdGF0
aWMgYm9vbCBuZWVkc0xhQmFucXVlUG9zdGFsZVF1aXJrcygpCiB7Ci0gICAgc3RhdGljIGJvb2wg
bmVlZHNRdWlya3MgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNMYUJhbnF1ZVBvc3RhbGUo
KSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dExhQmFucXVlUG9z
dGFsZVF1aXJrcyk7CisgICAgc3RhdGljIGJvb2wgbmVlZHNRdWlya3MgPSBXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNMYUJhbnF1ZVBvc3RhbGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwog
ICAgIHJldHVybiBuZWVkc1F1aXJrczsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQml0bWFwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0JpdG1hcC5jcHAKaW5kZXggMmEzZWU4OGU5ZDY2ZTU1NGQ1ZTZjZTg5OWY0ODU1ZTI0Mzc3OGY3
OS4uZjg1ZjIyNzkzOWNiZTQxYWZjOWFmZDI4NWYzOTEzNjdlMWU2YzNkYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQml0bWFwLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9CaXRtYXAuY3BwCkBAIC00MjAsNiArNDIwLDIyIEBAIHZvaWQg
dGVzdEJpdG1hcENvdW50KCkKICAgICBFWFBFQ1RfRVEoc21hbGxCaXRtYXBPbmVzLmNvdW50KCks
IHNtYWxsU2l6ZSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFdvcmRUeXBlPgordm9pZCB0ZXN0
Qml0bWFwQ291bnRBZnRlclNldEFsbCgpCit7CisgICAgQml0bWFwPDksIFdvcmRUeXBlPiBzbWFs
bEJpdG1hcDsKKyAgICBzbWFsbEJpdG1hcC5zZXRBbGwoKTsKKyAgICBFWFBFQ1RfRVEoc21hbGxC
aXRtYXAuY291bnQoKSwgOXVsbCk7CisKKyAgICBCaXRtYXA8MzIsIFdvcmRUeXBlPiBjb21wbGV0
ZUJpdG1hcDsKKyAgICBjb21wbGV0ZUJpdG1hcC5zZXRBbGwoKTsKKyAgICBFWFBFQ1RfRVEoY29t
cGxldGVCaXRtYXAuY291bnQoKSwgMzJ1bGwpOworCisgICAgQml0bWFwPDEwMDgsIFdvcmRUeXBl
PiBsYXJnZUJpdG1hcDsKKyAgICBsYXJnZUJpdG1hcC5zZXRBbGwoKTsKKyAgICBFWFBFQ1RfRVEo
bGFyZ2VCaXRtYXAuY291bnQoKSwgMTAwOHVsbCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFdv
cmRUeXBlPgogdm9pZCB0ZXN0Qml0bWFwSXNFbXB0eSgpCiB7CkBAIC0xMzkwLDYgKzE0MDYsNyBA
QCBURVNUKFdURl9CaXRtYXAsIENsZWFyQWxsX3VpbnQzMl90KSB7IHRlc3RCaXRtYXBDbGVhckFs
bDx1aW50MzJfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBJbnZlcnRfdWludDMyX3QpIHsgdGVz
dEJpdG1hcEludmVydDx1aW50MzJfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBGaW5kUnVuT2Za
ZXJvc191aW50MzJfdCkgeyB0ZXN0Qml0bWFwRmluZFJ1bk9mWmVyb3M8dWludDMyX3Q+KCk7IH0K
IFRFU1QoV1RGX0JpdG1hcCwgQ291bnRfdWludDMyX3QpIHsgdGVzdEJpdG1hcENvdW50PHVpbnQz
Ml90PigpOyB9CitURVNUKFdURl9CaXRtYXAsIENvdW50QWZ0ZXJTZXRBbGxfdWludDMyX3QpIHsg
dGVzdEJpdG1hcENvdW50QWZ0ZXJTZXRBbGw8dWludDMyX3Q+KCk7IH0KIFRFU1QoV1RGX0JpdG1h
cCwgSXNFbXB0eV91aW50MzJfdCkgeyB0ZXN0Qml0bWFwSXNFbXB0eTx1aW50MzJfdD4oKTsgfQog
VEVTVChXVEZfQml0bWFwLCBJc0Z1bGxfdWludDMyX3QpIHsgdGVzdEJpdG1hcElzRnVsbDx1aW50
MzJfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBNZXJnZV91aW50MzJfdCkgeyB0ZXN0Qml0bWFw
TWVyZ2U8dWludDMyX3Q+KCk7IH0KQEAgLTE0MjUsNiArMTQ0Miw3IEBAIFRFU1QoV1RGX0JpdG1h
cCwgQ2xlYXJBbGxfdWludDY0X3QpIHsgdGVzdEJpdG1hcENsZWFyQWxsPHVpbnQ2NF90PigpOyB9
CiBURVNUKFdURl9CaXRtYXAsIEludmVydF91aW50NjRfdCkgeyB0ZXN0Qml0bWFwSW52ZXJ0PHVp
bnQ2NF90PigpOyB9CiBURVNUKFdURl9CaXRtYXAsIEZpbmRSdW5PZlplcm9zX3VpbnQ2NF90KSB7
IHRlc3RCaXRtYXBGaW5kUnVuT2ZaZXJvczx1aW50NjRfdD4oKTsgfQogVEVTVChXVEZfQml0bWFw
LCBDb3VudF91aW50NjRfdCkgeyB0ZXN0Qml0bWFwQ291bnQ8dWludDY0X3Q+KCk7IH0KK1RFU1Qo
V1RGX0JpdG1hcCwgQ291bnRBZnRlclNldEFsbF91aW50NjRfdCkgeyB0ZXN0Qml0bWFwQ291bnRB
ZnRlclNldEFsbDx1aW50NjRfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBJc0VtcHR5X3VpbnQ2
NF90KSB7IHRlc3RCaXRtYXBJc0VtcHR5PHVpbnQ2NF90PigpOyB9CiBURVNUKFdURl9CaXRtYXAs
IElzRnVsbF91aW50NjRfdCkgeyB0ZXN0Qml0bWFwSXNGdWxsPHVpbnQ2NF90PigpOyB9CiBURVNU
KFdURl9CaXRtYXAsIE1lcmdlX3VpbnQ2NF90KSB7IHRlc3RCaXRtYXBNZXJnZTx1aW50NjRfdD4o
KTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457313</attachid>
            <date>2022-04-11 23:48:34 -0700</date>
            <delta_ts>2022-04-12 17:39:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239054-20220411234833.patch</filename>
            <type>text/plain</type>
            <size>103147</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Zjc3NzE5YTYyNGFkYmYyZjEwMWJjOWNiZTVkZTY4NTZmZDM4YWI4Li4yZDcwYmM2MWY3NWZmMzUw
NjA0Nzk3MDRlMWYzNjk4NWZiZDg1OTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wNC0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1h
ZnRlciBjaGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQVBJL0pTVHlwZWRBcnJheS5jcHA6CisgICAgICAgIChpc0xpbmtl
ZEJlZm9yZVR5cGVkQXJyYXlMZW5ndGhRdWlyayk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1h
cC5tbToKKyAgICAgICAgKHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycyk6CisgICAgICAg
ICogQVBJL3Rlc3RzL3Rlc3RhcGkuY3BwOgorICAgICAgICAoVGVzdEFQSTo6cHJvbWlzZURyYWlu
RG9lc05vdEVhdEV4Y2VwdGlvbnMpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLm1tOgor
ICAgICAgICAodGVzdE1pY3JvdGFza1dpdGhGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0xvY2suY3BwOgorICAgICAgICAoSlNDOjpKU0xvY2s6OndpbGxSZWxlYXNlTG9jayk6CisgICAg
ICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjppc1Bva2Vy
QnJvcyk6CisgICAgICAgIEFkb3B0IHRoZSBuZXcgbmFtaW5nLgorCiAyMDIyLTA0LTExICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVkdWNlIHVz
ZSBvZiB1bm5lY2Vzc2FyeSBjcnlwdG9ncmFwaGljYWxseVJhbmRvbSBudW1iZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJl
N2RhYzc0YTM3YTAxMWZhMzFkYWZlZmY5NDA4MWQ1ZmQwNWM3NjAuLjJiMzcxNTlhOTQ1M2JiODY5
OWVkZWFmYTcyMmVmYmNkYzE1MDUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjItMDQtMTEg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQg
InZlcnNpb24gc2V0Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2tzIGluc3RlYWQgb2Yg
cGxhdGZvcm0tc3BlY2lmaWMgb25lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzQzNjcxNT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2l0Y2gg
dG8gYGR5bGRfcHJvZ3JhbV9zZGtfYXRfbGVhc3RgLCB3aGljaCBjb3JyZWN0bHkgaGFuZGxlcyBT
REsKKyAgICAgICAgY2hlY2tzIGZvciBiaW5hcmllcyBidWlsdCBmb3Igb25lIFNESyBydW5uaW5n
IG9uIGFub3RoZXIgcGxhdGZvcm0KKyAgICAgICAgKGUuZy4gaU9TIGFwcHMgcnVubmluZyBvbiBt
YWNPUykuCisKKyAgICAgICAgQmVjYXVzZSBgZHlsZF9wcm9ncmFtX3Nka19hdF9sZWFzdGAgaXMg
YmFzZWQgb2ZmIG1vcmUgdGhhbiBhIHNpbXBsZQorICAgICAgICBpbnRlZ2VyIGNvbXBhcmlzb24g
bGlrZSBvdXIgb2xkIFNESyBjaGVjaywgd2UgbW92ZSBpdCBpbnRvIHRoZQorICAgICAgICBhcHBs
aWNhdGlvbiBwcm9jZXNzLCBhbmQganVzdCB0cmFuc21pdCB0aGUgY29tcHV0ZWQgYmVoYXZpb3Jz
IHRvCisgICAgICAgIHN1YnByb2Nlc3Nlcy4KKworICAgICAgICBSZW1vdmUgZnVuY3Rpb25zIHRo
YXQgZXhwb3NlL3RyYW5zbWl0IHBsYXRmb3JtLXNwZWNpZmljIFNESyB2ZXJzaW9ucywKKyAgICAg
ICAgc28gdGhhdCB1c2FnZSBpc24ndCBhY2NpZGVudGFsbHkgcmVpbnRyb2R1Y2VkLgorCisgICAg
ICAgIFJlLWZyYW1lIHRoZSBuYW1pbmcgb2Ygb3VyIGxpbmtlZC1vbi1vci1hZnRlciBjaGVja3Mg
YXMgYmVpbmcgYWJvdXQKKyAgICAgICAgc3BlY2lmaWMgYmVoYXZpb3JzIGluc3RlYWQgb2YgU0RL
IHZlcnNpb25zLgorCisgICAgICAgICogd3RmL0JpdG1hcC5oOgorICAgICAgICAoV1RGOjpXb3Jk
VHlwZT46OnNldEFsbCk6CisgICAgICAgIEFkZCBgc2V0QWxsYCwgd2hpY2ggc2V0cyBhbGwgdGhl
IGJpdHMgaW4gdGhlIEJpdG1hcCwgbGlrZSBGYXN0Qml0VmVjdG9yIGhhcy4KKyAgICAgICAgRXhw
b3NlIHRoZSBsZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMgdG8gbWFrZSB0cmFuc21pdHRpbmcg
dGhlIEJpdG1hcCBzaW1wbGUuCisKKyAgICAgICAgKiB3dGYvY29jb2EvTGFuZ3VhZ2VDb2NvYS5t
bToKKyAgICAgICAgKFdURjo6Y2FuTWluaW1pemVMYW5ndWFnZXMpOgorICAgICAgICBBZG9wdCB0
aGUgbmV3IG5hbWluZy4KKworICAgICAgICAqIHd0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaDoKKyAg
ICAgICAgQmVjYXVzZSBvZiB0aGUgbmF0dXJlIG9mIGR5bGRfYnVpbGRfdmVyc2lvbl90IHZhbHVl
cywgd2UgY2FuJ3QgZm9yd2FyZAorICAgICAgICBkZWNsYXJlIHRoZW0uIFRodXMsIG1haW50YWlu
IGEgZmFsbGJhY2sgdG8gdGhlIGxlZ2FjeSBwbGF0Zm9ybS1zcGVjaWZpYworICAgICAgICBTREsg
Y2hlY2tzIGZvciB1c2Ugd2hlbiBidWlsZGluZyBhZ2FpbnN0IHRoZSBpbnRlcm5hbCBTREssIG9y
IHdoZW4KKyAgICAgICAgYmFjay1kZXBsb3lpbmcgdG8gb2xkZXIgU0RLcyB0aGF0IGRvbid0IHll
dCBoYXZlIHZhbHVlcyBmb3IgbmV3ZXIgdmVyc2lvbiBzZXRzLgorCisgICAgICAgICogd3RmL2Nv
Y29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcDoKKyAgICAgICAgKGRpc2FibGVB
ZGRpdGlvbmFsU0RLQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OmNvbXB1dGVTREtB
bGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9yc1ZhbHVl
KToKKyAgICAgICAgKFdURjo6c2RrQWxpZ25lZEJlaGF2aW9ycyk6CisgICAgICAgIChXVEY6OnNl
dFNES0FsaWduZWRCZWhhdmlvcnMpOgorICAgICAgICAoV1RGOjplbmFibGVBbGxTREtBbGlnbmVk
QmVoYXZpb3JzKToKKyAgICAgICAgKFdURjo6ZGlzYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMp
OgorICAgICAgICAoV1RGOjpsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IpOgorICAgICAg
ICAoV1RGOjphcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAg
IChXVEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6
OmFwcGxpY2F0aW9uU0RLVmVyc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9u
T3JBZnRlck92ZXJyaWRlVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpzZXRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZSk6IERlbGV0ZWQuCisgICAgICAgIChXVEY6OmxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6bGlua2VkT25PckFmdGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKiB3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aDoKKwogMjAyMi0wNC0xMSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgog
CiAgICAgICAgIEZpeCBQbGF5U3RhdGlvbiBidWlsZCBhZnRlciByMjkyNjk2CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOTliNDllNzc0NmM2YjFkYWZlNTdkM2MxMWMwYzAxNTc0NmE1NThiZS4uYjk2OGU5ZTQ5YTkz
NDNlOTI1NmNiNTAxY2U3OTE1ODI2YmE4YzQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBA
CisyMDIyLTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFmdGVyIGNoZWNr
cyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphbGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6c2V0V2luZG93KToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVxdWlyZXNGdWxsc2Ny
ZWVuRm9yVmlkZW9QbGF5YmFjayBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6bmVlZHNXZUNoYXRTY3JvbGxpbmdR
dWlyayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnNob3VsZE9taXRIVE1MRG9j
dW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFRyZWF0QXNVbmlxdWVPcmlnaW4pOgor
ICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFN1
cHByZXNzVGhyZWFkU2FmZXR5Q2hlY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzRG90UHJlZml4
ZWRGb3JiaWRkZW5Gb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0RhdGFVUkxEZWNv
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFVUkxEZWNvZGVyOjpzaG91bGRSZW1vdmVG
cmFnbWVudElkZW50aWZpZXIpOgorICAgICAgICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0TGlua2VkT25PckFmdGVy
RXZlcnl0aGluZ0ZvclRlc3RpbmcpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwor
CiAyMDIyLTA0LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ1NTIENvbnRhaW5lciBRdWVyaWVzXSBVcGRhdGUgY29udGFpbmVyIHNob3J0aGFuZCBvcmRl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA5NjYzNzVlMWZiMjM2NzhmMTBiMzQ0YTY1ZWVkYjk0NDRjOGE3Yzc4Li5j
YjFhMmRiZDNlMjI5MjNjNzUxMmZmMmQwZDg1YjkzYTRlNjcyOTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDg5IEBACisyMDIyLTA0LTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkb3B0ICJ2ZXJzaW9uIHNldCItYmFzZWQgbGlua2VkLW9uLW9yLWFm
dGVyIGNoZWNrcyBpbnN0ZWFkIG9mIHBsYXRmb3JtLXNwZWNpZmljIG9uZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTA1NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODM0MzY3MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oOgorICAgICAgICAqIFNo
YXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkF1
eGlsaWFyeVByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogU2hhcmVkL0Vu
dHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5o
OgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXIpOgorICAgICAgICAqIFNo
YXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5
UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
OjpnZXRDbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2Vy
dmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1ZlcnNpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToKKyAgICAgICAgSW5zdGVhZCBvZiB0cmFuc21pdHRp
bmcgdGhlIFNESyB2ZXJzaW9uIGFuZCBvdmVycmlkZSBzdGF0ZSBpbiB0aGUgYm9vdHN0cmFwCisg
ICAgICAgIG1lc3NhZ2UsIGp1c3Qgc2VuZCB0aGUgY29tcHV0ZWQgc2V0IG9mIGJlaGF2aW9ycy4K
KworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQ
UmVkaXJlY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OmNvbmZpZ3VyYXRpb25Gb3JTZXNzaW9uSUQp
OgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyLm1t
OgorICAgICAgICAoV2ViS2l0OjpzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckR1cGxpY2F0ZUNvbXBs
ZXRpb25IYW5kbGVyQ2FsbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0OjpkZXRlcm1pbmVJVFBTdGF0ZSk6CisgICAg
ICAgICogU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OkluaXRpYWxpemVXZWJLaXQyKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFBhc3NpdmVUb3Vj
aExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRQ
YXNzaXZlV2hlZWxMaXN0ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKToKKyAgICAgICAg
KFdlYktpdDo6ZGVmYXVsdE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VSZWxvYWQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAg
ICAgKCtbV0tQcm9jZXNzUG9vbCBfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0
aW5nXSk6CisgICAgICAgICgrW1dLUHJvY2Vzc1Bvb2wgX3NldExpbmtlZE9uT3JBZnRlckV2ZXJ5
dGhpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2spOgorICAgICAg
ICAoc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKToKKyAgICAgICAg
KHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKToKKyAgICAgICAgKHNob3VsZFJl
c3RyaWN0QmFzZVVSTFNjaGVtZXMpOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VDb25m
aWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVsb2FkXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyB0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24ubW06CisgICAgICAgIChkZWZhdWx0U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1
aWNrTG9va1ByZXZpZXcpOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToK
KyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIGluaXRdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfY29tcHV0
ZWRPYnNjdXJlZEluc2V0XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3
TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9kcmFnRGVzdGluYXRpb25BY3Rpb25G
b3JEcmFnZ2luZ0luZm86XSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlciBpbnNwZWN0b3JXS1dlYlZpZXdSZWxvYWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6aGFzU2Nyb2xs
YWJsZU9yWm9vbWVkTWFpbkZyYW1lIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxp
emVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptYWtlVmlld0JsYW5rSWZVbnBhaW50ZWRTaW5jZUxhc3RMb2FkQ29tbWl0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDpjb25maWd1
cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaG91bGRVc2VDb250ZXh0TWVudXNd
KToKKyAgICAgICAgKGFwcGxpY2F0aW9uSXNLbm93blRvSWdub3JlTW91c2VFdmVudHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3Lm1tOgorICAgICAgICAoLVtXS1Njcm9s
bFZpZXcgX3N5c3RlbUNvbnRlbnRJbnNldF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5tbToKKyAgICAgICAgKC1bV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ciBzdGFydF0pOgorICAgICAgICAoLVtXS1N0eWx1c0RldmljZU9ic2VydmVyIHN0b3BdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6ZGVza3RvcENsYXNzQnJvd3NpbmdSZWNvbW1lbmRlZCk6CisgICAgICAgIEFkb3B0IHRoZSBu
ZXcgbmFtaW5nLgorCiAyMDIyLTA0LTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFdlYiBjb250ZW50IHByb2Nlc3MgY3Jhc2hl
cyB3aGVuIHRyaWdnZXJpbmcgTGl2ZSBUZXh0IGluIHJlY292ZXJ5T1MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCA5Njc5NzFmYWIwMDM3YjNhNzk4MzI5ZDZjY2ZjYjdhMzZmOTQxNGQ1
Li5hNjcwZmNkOWY5MDExZjhmZDgzZTU5NWIwNGY4ZDhmNDk2ODcyZjlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDQtMTEgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgInZlcnNpb24gc2V0
Ii1iYXNlZCBsaW5rZWQtb24tb3ItYWZ0ZXIgY2hlY2tzIGluc3RlYWQgb2YgcGxhdGZvcm0tc3Bl
Y2lmaWMgb25lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM5MDU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzQzNjcxNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdFVJRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkRlZmF1bHRVSURlbGVnYXRl
IHdlYlZpZXc6ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5nSW5mbzpdKToKKyAg
ICAgICAgKiBNaXNjL1dlYkRvd25sb2FkLm1tOgorICAgICAgICAoc2hvdWxkQ2FsbE9uTmV0d29y
a1RocmVhZCk6CisgICAgICAgICogTWlzYy9XZWJJY29uRGF0YWJhc2UubW06CisgICAgICAgICgr
W1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2VdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVs
dEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKToKKyAgICAgICAgKFdlYktpdDo6
ZGVmYXVsdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOgorICAgICAgICAo
V2ViS2l0OjpkZWZhdWx0UGFzc2l2ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6
CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8p
OgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0V2ViU1FMRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OmRlZmF1bHRTaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKToKKyAgICAgICAgKFdlYktp
dDo6ZGVmYXVsdFNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmspOgorICAgICAgICAoV2Vi
S2l0OjpkZWZhdWx0UGFzc2l2ZVdoZWVsTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OmRlZmF1bHRXaGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2lu
Zyk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAobmVlZHNMYUJhbnF1
ZVBvc3RhbGVRdWlya3MpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWluZy4KKwogMjAyMi0w
NC0wOCAgRWxsaW90dCBXaWxsaWFtcyAgPGVtd0BhcHBsZS5jb20+CiAKICAgICAgICAgW1hjb2Rl
XSBBdm9pZCB0YXJnZXRpbmcgMzItYml0IGlPUyBhbmQgTWFjIGFyY2hpdGVjdHVyZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNUeXBlZEFycmF5LmNwcAppbmRleCA0OWMwYWJmNmY3YWYy
NzM3ODZhMmMyNGQ2Y2QxZjdhZjYxMjhhNGUzLi41YmJhYTVhNjdhZGNmNzgxZWViOGQ5Njc4ODk1
OTgzZTE2MTgzODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVHlw
ZWRBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1R5cGVkQXJyYXku
Y3BwCkBAIC0zNjgsNyArMzY4LDcgQEAgdm9pZCogSlNPYmplY3RHZXRBcnJheUJ1ZmZlckJ5dGVz
UHRyKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdFJlZiwgSlMKICNpZiBQTEFU
Rk9STShJT1MpCiBpbmxpbmUgc3RhdGljIGJvb2wgaXNMaW5rZWRCZWZvcmVUeXBlZEFycmF5TGVu
Z3RoUXVpcmsoKQogewotICAgIHJldHVybiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0V2l0aG91dFR5cGVkQXJyYXlBUElRdWlyayk7CisgICAgcmV0dXJuICFsaW5rZWRPbk9yQWZ0
ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1R5cGVkQXJyYXlBUElRdWly
ayk7CiB9CiAjZWxzZQogaW5saW5lIHN0YXRpYyBib29sIGlzTGlua2VkQmVmb3JlVHlwZWRBcnJh
eUxlbmd0aFF1aXJrKCkgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1dyYXBwZXJNYXAubW0KaW5kZXggN2MzMzE1ZjgyMzM2ZWUyMzI4YjZhYWU0ZjdkNzBkZjA2
Yjc5MzNkMS4uODMyMTUwMmU3ZGY4MmYyMGRmMjk1NjMxMWIzMDExYjU1MDUwZmViMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KQEAgLTcwNSw3ICs3MDUsNyBA
QCBib29sIHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9ycygpCiAgICAgICAgIGlmICh2ZXJz
aW9uT2ZMaW5rVGltZUphdmFTY3JpcHRDb3JlICE9IC0xKQogICAgICAgICAgICAgcmV0dXJuIHZl
cnNpb25PZkxpbmtUaW1lSmF2YVNjcmlwdENvcmUgPj0gZmlyc3RKYXZhU2NyaXB0Q29yZVZlcnNp
b25XaXRoSW5pdENvbnN0cnVjdG9yU3VwcG9ydDsKIAotICAgICAgICByZXR1cm4gbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3Rv
cnMpOworICAgICAgICByZXR1cm4gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKICAgICB9KCk7CiAgICAg
cmV0dXJuIHN1cHBvcnRzSW5pdE1ldGhvZENvbnN0cnVjdG9yczsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jcHAKaW5kZXggNTE2ZTMyMGJlNDljODA2
ZmE4MjMyMjBlNTZiN2VmMWJiMWNhMTdkYS4uMjBkZDc4ZDA2MGU2ZTY3N2Y4NjA5OWE2ZDlhZjg1
NjFhZmEyZDcyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGku
Y3BwCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBUZXN0QVBJOjpwcm9taXNlRWFybHlIYW5kbGVk
UmVqZWN0aW9ucygpCiB2b2lkIFRlc3RBUEk6OnByb21pc2VEcmFpbkRvZXNOb3RFYXRFeGNlcHRp
b25zKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBib29sIHVzZUxlZ2FjeURyYWluID0g
IWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5UaGVNaWNy
b3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgYm9vbCB1c2VMZWdhY3lEcmFpbiA9ICFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90
RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgaWYgKHVzZUxlZ2Fj
eURyYWluKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaS5tbQppbmRleCAyZTMxY2U4MjY2ODk0NjQyYzUyOWVlMDZjNmI1NTU3
ZWZiNjhjMzE5Li4xN2QxMTEwMjgxMGQxMzQ3ZDJkNWYxYzU5MGVjOTM0OWZiNTJlYTg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCkBAIC0yNzQzLDcgKzI3
NDMsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0TWljcm90YXNrV2l0aEZ1bmN0aW9uKCkKIHsKICAgICBA
YXV0b3JlbGVhc2Vwb29sIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgYm9vbCB1c2VM
ZWdhY3lEcmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RG9lc05v
dERyYWluVGhlTWljcm90YXNrUXVldWVXaGVuQ2FsbGluZ09iakMpOworICAgICAgICBib29sIHVz
ZUxlZ2FjeURyYWluID0gIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkRvZXNOb3REcmFpblRoZU1pY3JvdGFza1F1ZXVlV2hlbkNhbGxpbmdPYmpDKTsK
ICAgICAgICAgaWYgKHVzZUxlZ2FjeURyYWluKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAppbmRleCBhMjQ0MTg1MDhk
MWUyMDIxYjEwYTY2NDE4MjM5ZmQ2NmY3ZTI1MTc3Li43MGU5Zjc5YTkwYTZmYTZiZTY0MDBjOGMx
NzhmMTQ1NjI3MGI3NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0xvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5j
cHAKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIEpTTG9jazo6d2lsbFJlbGVhc2VMb2NrKCkKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CiAg
ICAgICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKLSAgICAgICAgICAgIHVzZUxlZ2FjeURy
YWluID0gIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREb2VzTm90RHJhaW5U
aGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgICAgICAgICB1c2VMZWdhY3lE
cmFpbiA9ICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpEb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CiAgICAgICAg
IH0pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuY3BwCmluZGV4IDU5NWNiNDJhOWM4NzM5YTMxYjIzMWU2MTVjZTExZWY3NDAy
ZGUwNDAuLjkyMDFlYThjMDQ2MDJiOWE5MGQ1ODYzZjNlMDA0YTg0YTJmYTc3ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAt
MzE3LDcgKzMxNyw3IEBAIGlubGluZSBzdGF0aWMgYm9vbCBpc1Bva2VyQnJvcygpCiAgICAgYXV0
byBidW5kbGVJRCA9IENGQnVuZGxlR2V0SWRlbnRpZmllcihDRkJ1bmRsZUdldE1haW5CdW5kbGUo
KSk7CiAgICAgcmV0dXJuIGJ1bmRsZUlECiAgICAgICAgICYmIENGRXF1YWwoYnVuZGxlSUQsIENG
U1RSKCJjb20ua3BnYW1lLlBva2VyQnJvcyIpKQotICAgICAgICAmJiAhbGlua2VkT25PckFmdGVy
KFNES1ZlcnNpb246OkZpcnN0V2l0aG91dFBva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CisgICAg
ICAgICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpOb1Bva2VyQnJvc0J1aWx0SW5UYWdRdWlyayk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvQml0bWFwLmggYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaAppbmRleCBi
OGY2NjFhNjZlZTkzZTU5MDcxYTU2NjE2Y2Q0NDNmYmQ5YTIyNzBhLi5hZGIyZTRlMWE2OWVkZjU4
NzI5M2Y5YmI4M2EyZDM3ZDI5YWM5MThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9CaXRt
YXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9CaXRtYXAuaApAQCAtNTksNiArNTksNyBAQCBwdWJs
aWM6CiAgICAgY29uc3RleHByIHNpemVfdCBuZXh0UG9zc2libHlVbnNldChzaXplX3QpIGNvbnN0
OwogICAgIGNvbnN0ZXhwciB2b2lkIGNsZWFyKHNpemVfdCk7CiAgICAgdm9pZCBjbGVhckFsbCgp
OworICAgIHZvaWQgc2V0QWxsKCk7CiAgICAgY29uc3RleHByIHZvaWQgaW52ZXJ0KCk7CiAgICAg
aW50NjRfdCBmaW5kUnVuT2ZaZXJvcyhzaXplX3QgcnVuTGVuZ3RoKSBjb25zdDsKICAgICBzaXpl
X3QgY291bnQoc2l6ZV90IHN0YXJ0ID0gMCkgY29uc3Q7CkBAIC0xNDEsNyArMTQyLDExIEBAIHB1
YmxpYzoKICAgICBXb3JkVHlwZSogc3RvcmFnZSgpIHsgcmV0dXJuIGJpdHMuZGF0YSgpOyB9CiAg
ICAgY29uc3QgV29yZFR5cGUqIHN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBiaXRzLmRhdGEoKTsg
fQogCisgICAgY29uc3RleHByIHNpemVfdCBzdG9yYWdlTGVuZ3RoSW5CeXRlcygpIHsgcmV0dXJu
IHNpemVvZihiaXRzKTsgfQorCiBwcml2YXRlOgorICAgIHZvaWQgY2xlYW5zZUxhc3RXb3JkKCk7
CisKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIHdvcmRTaXplID0gc2l6ZW9mKFdvcmRU
eXBlKSAqIDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCB3b3JkcyA9IChiaXRtYXBT
aXplICsgd29yZFNpemUgLSAxKSAvIHdvcmRTaXplOwogCkBAIC0yNDEsMTAgKzI0Niw4IEBAIGlu
bGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmNsZWFyQWxsKCkKIH0KIAog
dGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1lIFdvcmRUeXBlPgotaW5saW5lIGNv
bnN0ZXhwciB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OmludmVydCgpCitpbmxp
bmUgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+OjpjbGVhbnNlTGFzdFdvcmQoKQog
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29yZHM7ICsraSkKLSAgICAgICAgYml0c1tp
XSA9IH5iaXRzW2ldOwogICAgIGlmIGNvbnN0ZXhwciAoISEoYml0bWFwU2l6ZSAlIHdvcmRTaXpl
KSkgewogICAgICAgICBjb25zdGV4cHIgc2l6ZV90IHJlbWFpbmluZ0JpdHMgPSBiaXRtYXBTaXpl
ICUgd29yZFNpemU7CiAgICAgICAgIGNvbnN0ZXhwciBXb3JkVHlwZSBtYXNrID0gKHN0YXRpY19j
YXN0PFdvcmRUeXBlPigxKSA8PCByZW1haW5pbmdCaXRzKSAtIDE7CkBAIC0yNTIsNiArMjU1LDIx
IEBAIGlubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojpp
bnZlcnQoKQogICAgIH0KIH0KIAordGVtcGxhdGU8c2l6ZV90IGJpdG1hcFNpemUsIHR5cGVuYW1l
IFdvcmRUeXBlPgoraW5saW5lIHZvaWQgQml0bWFwPGJpdG1hcFNpemUsIFdvcmRUeXBlPjo6c2V0
QWxsKCkKK3sKKyAgICBtZW1zZXQoYml0cy5kYXRhKCksIDB4RkYsIHNpemVvZihiaXRzKSk7Cisg
ICAgY2xlYW5zZUxhc3RXb3JkKCk7Cit9CisKK3RlbXBsYXRlPHNpemVfdCBiaXRtYXBTaXplLCB0
eXBlbmFtZSBXb3JkVHlwZT4KK2lubGluZSBjb25zdGV4cHIgdm9pZCBCaXRtYXA8Yml0bWFwU2l6
ZSwgV29yZFR5cGU+OjppbnZlcnQoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29y
ZHM7ICsraSkKKyAgICAgICAgYml0c1tpXSA9IH5iaXRzW2ldOworICAgIGNsZWFuc2VMYXN0V29y
ZCgpOworfQorCiB0ZW1wbGF0ZTxzaXplX3QgYml0bWFwU2l6ZSwgdHlwZW5hbWUgV29yZFR5cGU+
CiBpbmxpbmUgY29uc3RleHByIHNpemVfdCBCaXRtYXA8Yml0bWFwU2l6ZSwgV29yZFR5cGU+Ojpu
ZXh0UG9zc2libHlVbnNldChzaXplX3Qgc3RhcnQpIGNvbnN0CiB7CkBAIC00NjIsMTEgKzQ4MCw3
IEBAIGlubGluZSB2b2lkIEJpdG1hcDxiaXRtYXBTaXplLCBXb3JkVHlwZT46OnNldEVhY2hOdGhC
aXQoc2l6ZV90IG4sIHNpemVfdCBzdGFydCwKICAgICAgICAgaW5kZXggKz0gbjsKICAgICB9CiAK
LSAgICBpZiBjb25zdGV4cHIgKCEhKGJpdG1hcFNpemUgJSB3b3JkU2l6ZSkpIHsKLSAgICAgICAg
Y29uc3RleHByIHNpemVfdCByZW1haW5pbmdCaXRzID0gYml0bWFwU2l6ZSAlIHdvcmRTaXplOwot
ICAgICAgICBjb25zdGV4cHIgV29yZFR5cGUgbWFzayA9IChzdGF0aWNfY2FzdDxXb3JkVHlwZT4o
MSkgPDwgcmVtYWluaW5nQml0cykgLSAxOwotICAgICAgICBiaXRzW3dvcmRzIC0gMV0gJj0gbWFz
azsKLSAgICB9CisgICAgY2xlYW5zZUxhc3RXb3JkKCk7CiB9CiAKIHRlbXBsYXRlPHNpemVfdCBi
aXRtYXBTaXplLCB0eXBlbmFtZSBXb3JkVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2NvY29hL0xhbmd1YWdlQ29jb2EubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9MYW5ndWFnZUNv
Y29hLm1tCmluZGV4IDMwMjFmZWMwNzE3ZWVmYTQyNmE1ZTdlYmU4YmJjNzY4Y2YzMzM3ZGYuLmJk
YzRiZWQ0Yzc0Yjc5ZTZkMjNmOWZjZTgyNmUxODRhOTVlZThiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL0xhbmd1YWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dURi93dGYvY29j
b2EvTGFuZ3VhZ2VDb2NvYS5tbQpAQCAtNTYsNyArNTYsNyBAQCBzaXplX3QgaW5kZXhPZkJlc3RN
YXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGNvbnN0IFZlY3Rv
cjxTdAogYm9vbCBjYW5NaW5pbWl6ZUxhbmd1YWdlcygpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgcmVzdWx0ID0gW10oKSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFn
ZXM6KV07CisgICAgICAgIHJldHVybiBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpNaW5pbWl6ZXNMYW5ndWFnZXMpICYmIFtOU0xvY2FsZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKG1pbmltaXplZExhbmd1YWdlc0Zyb21MYW5ndWFnZXM6KV07
CiAgICAgfSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHAKaW5kZXggYzcxNDkz
YjQ0YTcyMGI4ZjNkZGQ2NzRjMmFmMTQ4YzQ5MTIzOWFmMC4uMjhjOTcwY2JjZjJlZGNhYTI4MDc0
MGViMmUxMjYwN2M3Y2JlNjRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29h
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmNwcApAQCAtMjcsNTAgKzI3LDE5NiBAQAog
I2luY2x1ZGUgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogCiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4v
ZHlsZFNQSS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWlu
dDMyX3Q+JiBhcHBsaWNhdGlvblNES1ZlcnNpb25PdmVycmlkZSgpCitzdGF0aWMgYm9vbCBsaW5r
ZWRCZWZvcmUoZHlsZF9idWlsZF92ZXJzaW9uX3QgdmVyc2lvbiwgdWludDMyX3QgZmFsbGJhY2tJ
T1NWZXJzaW9uLCB1aW50MzJfdCBmYWxsYmFja01hY09TVmVyc2lvbikKIHsKLSAgICBzdGF0aWMg
c3RkOjpvcHRpb25hbDx1aW50MzJfdD4gdmVyc2lvbjsKLSAgICByZXR1cm4gdmVyc2lvbjsKKyNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorICAgIC8vIGR5bGRfYnVpbGRfdmVyc2lvbl90IHZh
bHVlcyBjYW5ub3QgYmUgZm9yd2FyZCBkZWNsYXJlZCwgc28gd2UgZmFsbCBiYWNrIHRvCisgICAg
Ly8gdHJhZGl0aW9uYWwgU0RLIHZlcnNpb24gY2hlY2tzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBh
biBTREsgdGhhdAorICAgIC8vIGRvZXMgbm90IGhhdmUgZHlsZF9wcml2LmgsIG9yIGRvZXMgbm90
IGRlZmluZSBhIGdpdmVuIHZlcnNpb24gc2V0LgorICAgIGlmICh2ZXJzaW9uLnBsYXRmb3JtIHx8
IHZlcnNpb24udmVyc2lvbikKKyAgICAgICAgcmV0dXJuICFkeWxkX3Byb2dyYW1fc2RrX2F0X2xl
YXN0KHZlcnNpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmVyc2lvbik7CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgVU5VU0VEX1BBUkFNKGZhbGxiYWNrTWFj
T1NWZXJzaW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwg
ZmFsbGJhY2tJT1NWZXJzaW9uOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZmFsbGJhY2tJT1NW
ZXJzaW9uKTsKKyAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpIDwgZmFs
bGJhY2tNYWNPU1ZlcnNpb247CisjZW5kaWYKIH0KIAotdm9pZCBzZXRBcHBsaWNhdGlvblNES1Zl
cnNpb24odWludDMyX3QgdmVyc2lvbikKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBf
X2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29j
b2FBZGRpdGlvbnMuY3BwPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3NDb2NvYUFkZGl0aW9ucy5jcHA+CisjZWxzZQorc3RhdGljIHZvaWQgZGlzYWJs
ZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhhdmlvcnMmKQogewot
ICAgIGFwcGxpY2F0aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkgPSB2ZXJzaW9uOwogfQorI2VuZGlm
CiAKLXVpbnQzMl90IGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpCitzdGF0aWMgU0RLQWxpZ25lZEJl
aGF2aW9ycyBjb21wdXRlU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGFwcGxpY2F0
aW9uU0RLVmVyc2lvbk92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqYXBwbGljYXRpb25TREtW
ZXJzaW9uT3ZlcnJpZGUoKTsKLSAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lv
bigpOworICAgIFNES0FsaWduZWRCZWhhdmlvcnMgYmVoYXZpb3JzOworICAgIGJlaGF2aW9ycy5z
ZXRBbGwoKTsKKworICAgIGF1dG8gZGlzYWJsZUJlaGF2aW9yID0gWyZdIChTREtBbGlnbmVkQmVo
YXZpb3IgYmVoYXZpb3IpIHsKKyAgICAgICAgYmVoYXZpb3JzLmNsZWFyKHN0YXRpY19jYXN0PHNp
emVfdD4oYmVoYXZpb3IpKTsKKyAgICB9OworCisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2Zh
bGxfMjAxNV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl85XzAsIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTEpKQorICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CisKKyAgICBpZiAobGlua2VkQmVmb3Jl
KGR5bGRfZmFsbF8yMDE2X29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzEwXzAsIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTIpKSB7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGln
bmVkQmVoYXZpb3I6Ok1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2spOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXF1aXJlc1VzZXJH
ZXN0dXJlVG9Mb2FkVmlkZW8pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuayk7Cisg
ICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVGhlU2VjcmV0U29j
aWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVbnByZWZpeGVkUGxheXNJbmxpbmVBdHRyaWJ1dGUpOwor
ICAgIH0KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKGxpbmtlZEJlZm9yZShk
eWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8wLCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbHNlCisgICAgaWYgKGxpbmtl
ZEJlZm9yZShkeWxkX2ZhbGxfMjAxNF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xMF8w
LCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEwKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNJbml0Q29uc3RydWN0b3JzKTsKKyNlbmRpZgorCisg
ICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxN19vc192ZXJzaW9ucywgRFlMRF9JT1Nf
VkVSU0lPTl8xMV8wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzKSkgeworICAgICAgICBkaXNh
YmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29t
cGxldGlvbkhhbmRsZXJDYWxscyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1
bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXZWJJY29u
RGF0YWJhc2VXYXJuaW5nKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3By
aW5nXzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTFfMywgRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xM180KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpEaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsKKyAgICAg
ICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVU
b3VjaExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUo
ZHlsZF9mYWxsXzIwMThfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTJfMCwgRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMF8xNCkpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6U2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJbnNldHMp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpVSVNjcm9sbFZp
ZXdEb2VzTm90QXBwbHlLZXlib2FyZEluc2V0c1VuY29uZGl0aW9uYWxseSk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0
aW9uSW5XZWJQYWdlUHJveHkpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWlyayk7CisgICAgICAgIGRpc2Fi
bGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlRpbWVyVGhyZWFkU2FmZXR5Q2hlY2tzKTsK
KyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lv
bnMsIERZTERfSU9TX1ZFUlNJT05fMTJfMiwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNF80KSkg
eworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMYXp5R2VzdHVy
ZVJlY29nbml6ZXJJbnN0YWxsYXRpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbik7CisgICAgfQor
CisgICAgaWYgKGxpbmtlZEJlZm9yZShkeWxkX2ZhbGxfMjAxOV9vc192ZXJzaW9ucywgRFlMRF9J
T1NfVkVSU0lPTl8xM18wLCBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1KSkgeworICAgICAgICBk
aXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1VuY29uZGl0aW9uYWxVbml2ZXJz
YWxTYW5kYm94RXh0ZW5zaW9uKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6U25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uUGVybWlzc2lvbkFQSSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVo
YXZpb3I6OkRlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CisgICAg
ICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkV4Y2VwdGlvbnNGb3JSZWxh
dGVkV2ViVmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMpOworICAgICAgICBkaXNhYmxlQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQp
OworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIYXNVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24pOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpOworICAgICAg
ICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c092ZXJmbG93SGlk
ZGVuT25NYWluRnJhbWUpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpOb0lNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayk7CisgICAgICAgIGRpc2FibGVCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWlu
VGhyZWFkKTsKKyAgICB9CisKKyAgICBpZiAobGlua2VkQmVmb3JlKGR5bGRfbGF0ZV9mYWxsXzIw
MTlfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNfMiwgRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNV8xKSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
U2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCk7CisKKyAgICBpZiAobGlua2Vk
QmVmb3JlKGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTNf
NCwgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNV80KSkgeworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNlbmRzTmF0aXZlTW91c2VFdmVu
dHMpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpNaW5pbWl6
ZXNMYW5ndWFnZXMpOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHlsZF9mYWxsXzIw
MjBfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfMCwgRFlMRF9NQUNPU1hfVkVSU0lP
Tl8xMF8xNikpIHsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6
U2Vzc2lvbkNsZWFudXBCeURlZmF1bHQpOworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24pOworICAg
ICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3Rv
cmVJbml0UmV0dXJuaW5nTmlsKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6V2ViU1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgICAg
IGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vTGFCYW5xdWVQb3N0YWxlUXVp
cmtzKTsKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9Qb2tl
ckJyb3NCdWlsdEluVGFnUXVpcmspOworICAgIH0KKworICAgIGlmIChsaW5rZWRCZWZvcmUoZHls
ZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNF8yLCBEWUxE
X01BQ09TWF9WRVJTSU9OXzEwXzE2KSkKKyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWdu
ZWRCZWhhdmlvcjo6U3VwcG9ydHNpT1NBcHBzT25NYWNPUyk7CisKKyAgICBpZiAobGlua2VkQmVm
b3JlKGR5bGRfc3ByaW5nXzIwMjFfb3NfdmVyc2lvbnMsIERZTERfSU9TX1ZFUlNJT05fMTRfNSwg
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRSZW1vdmFsKTsKKyAgICAgICAgZGlzYWJs
ZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVy
dHlOYW1lcyk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok9i
c2VydmVzQ2xhc3NQcm9wZXJ0eSk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6Ok5vV2VDaGF0U2Nyb2xsaW5nUXVpcmspOworICAgICAgICBkaXNhYmxlQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTaGFyZWROZXR3b3JrUHJvY2Vzcyk7CisgICAgICAgIGRp
c2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkJsYW5rc1ZpZXdPbkpTUHJvbXB0KTsK
KyAgICAgICAgZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9DbGllbnRDZXJ0
aWZpY2F0ZUxvb2t1cCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6OkRlZmF1bHRzVG9QYXNzaXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1
cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAgfQorCisgICAgaWYgKGxpbmtlZEJlZm9yZShk
eWxkX2ZhbGxfMjAyMV9vc192ZXJzaW9ucywgRFlMRF9JT1NfVkVSU0lPTl8xNV8wLCBEWUxEX01B
Q09TWF9WRVJTSU9OXzEyXzAwKSkgeworICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yOjpOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzKTsKKyAgICAgICAg
ZGlzYWJsZUJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RE9NV2luZG93UmV1c2VSZXN0cmlj
dGlvbik7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkFwcGxp
Y2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVmYXVsdCk7CisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cpOwor
ICAgICAgICBkaXNhYmxlQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb2VzTm90RHJhaW5U
aGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyk7CisgICAgfQorCisgICAgaWYgKGxpbmtl
ZEJlZm9yZShkeWxkX3NwcmluZ18yMDIyX29zX3ZlcnNpb25zLCBEWUxEX0lPU19WRVJTSU9OXzE1
XzQsIERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMykpCisgICAgICAgIGRpc2FibGVCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6OkF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5SZWRpcmVj
dHMpOworCisgICAgZGlzYWJsZUFkZGl0aW9uYWxTREtBbGlnbmVkQmVoYXZpb3JzKGJlaGF2aW9y
cyk7CisKKyAgICByZXR1cm4gYmVoYXZpb3JzOwogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxM
aW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4mIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFsdWUoKQor
c3RhdGljIHN0ZDo6b3B0aW9uYWw8U0RLQWxpZ25lZEJlaGF2aW9ycz4mIHNka0FsaWduZWRCZWhh
dmlvcnNWYWx1ZSgpCiB7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVy
T3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRlcjsKLSAgICByZXR1cm4gbGlua2VkT25PckFmdGVyOwor
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFNES0FsaWduZWRCZWhhdmlv
cnM+PiBiZWhhdmlvcnM7CisgICAgcmV0dXJuIGJlaGF2aW9ycy5nZXQoKTsKIH0KIAotdm9pZCBz
ZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92
ZXJyaWRlPiBsaW5rZWRPbk9yQWZ0ZXIpCitjb25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtB
bGlnbmVkQmVoYXZpb3JzKCkKIHsKLSAgICBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKCkg
PSBsaW5rZWRPbk9yQWZ0ZXI7CisgICAgYXV0byYgYmVoYXZpb3JzID0gc2RrQWxpZ25lZEJlaGF2
aW9yc1ZhbHVlKCk7CisKKyAgICBpZiAoIWJlaGF2aW9ycykKKyAgICAgICAgYmVoYXZpb3JzID0g
Y29tcHV0ZVNES0FsaWduZWRCZWhhdmlvcnMoKTsKKworICAgIHJldHVybiAqYmVoYXZpb3JzOwog
fQogCi1zdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRlck92ZXJyaWRlPiBsaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZSgpCit2b2lkIHNldFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2
aW9ycyBiZWhhdmlvcnMpCiB7Ci0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlVmFs
dWUoKTsKKyAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCBhc3NlcnQgdGhhdCBgbGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yYCBoYWQgbm90CisgICAgLy8gYmVlbiBjYWxsZWQgYXQg
dGhpcyBwb2ludCAoYmVjYXVzZSBpdHMgcmVwbHkgY291bGQgaGF2ZSBiZWVuIGluYWNjdXJhdGUp
LAorICAgIC8vIGJ1dCBXZWJQcmVmZXJlbmNlcyB1c2UgaW4gU2FmYXJpIChhdCBsZWFzdCkgY3Vy
cmVudGx5IHByZXZlbnRzIHRoaXMgaGFyZGVuaW5nLgorCisgICAgc2RrQWxpZ25lZEJlaGF2aW9y
c1ZhbHVlKCkgPSBiZWhhdmlvcnM7Cit9CisKK3ZvaWQgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2
aW9ycygpCit7CisgICAgU0RLQWxpZ25lZEJlaGF2aW9ycyBiZWhhdmlvcnM7CisgICAgYmVoYXZp
b3JzLnNldEFsbCgpOworICAgIHNldFNES0FsaWduZWRCZWhhdmlvcnMoYmVoYXZpb3JzKTsKIH0K
IAotYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbiBzZGtWZXJzaW9uKQordm9pZCBkaXNh
YmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpCiB7Ci0gICAgaWYgKGF1dG8gb3ZlcnJpZGVWYWx1
ZSA9IGxpbmtlZE9uT3JBZnRlck92ZXJyaWRlKCkpCi0gICAgICAgIHJldHVybiAqb3ZlcnJpZGVW
YWx1ZSA9PSBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nOworICAgIHNl
dFNES0FsaWduZWRCZWhhdmlvcnMoeyB9KTsKK30KIAotICAgIGF1dG8gc2RrVmVyc2lvbkFzSW50
ZWdlciA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihzZGtWZXJzaW9uKTsKLSAgICByZXR1cm4gc2Rr
VmVyc2lvbkFzSW50ZWdlciAmJiBhcHBsaWNhdGlvblNES1ZlcnNpb24oKSA+PSBzZGtWZXJzaW9u
QXNJbnRlZ2VyOworYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25l
ZEJlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIHJldHVybiBzZGtBbGlnbmVkQmVoYXZpb3JzKCku
Z2V0KHN0YXRpY19jYXN0PHNpemVfdD4oYmVoYXZpb3IpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaCBiL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKaW5kZXgg
MDU1ODI2ZDMzOTg1ZmI4NGYxNTE2YzViMjgxNjgwNmY5NWM3NGExMC4uZWFhYTkzOWZhNDQwNjRh
ZDhhMGMzYWY5NWU1ODcwN2IxMzhlZmYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29j
b2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oCkBAIC0yNiwxMjUgKzI2LDkyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9CaXRt
YXAuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCi0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3
aW4vZHlsZFNQSS5oPgotCiBuYW1lc3BhY2UgV1RGIHsKIAotZW51bSBjbGFzcyBTREtWZXJzaW9u
IDogdWludDMyX3QgewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgRmlyc3RXaXRoUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgPSBEWUxEX0lPU19WRVJTSU9OXzlfMCwKLSAgICBG
aXJzdFdpdGhNZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gRFlMRF9J
T1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VGhhdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRW
aWRlbyA9IERZTERfSU9TX1ZFUlNJT05fMTBfMCwKLSAgICBGaXJzdFdpdGhMaW5rUHJldmlld0Vu
YWJsZWRCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RUaGF0Q29u
dmVydHNJbnZhbGlkVVJMc1RvQmxhbmsgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmly
c3RXaXRob3V0VGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmsgPSBE
WUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmlyc3RXaXRoVW5wcmVmaXhlZFBsYXlzSW5saW5l
QXR0cmlidXRlID0gRFlMRF9JT1NfVkVSU0lPTl8xMF8wLAotICAgIEZpcnN0VmVyc2lvblRoYXRT
dXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMgPSBEWUxEX0lPU19WRVJTSU9OXzEwXzAsCi0gICAgRmly
c3RXaXRoRXhjZXB0aW9uc0ZvckR1cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMgPSBEWUxE
X0lPU19WRVJTSU9OXzExXzAsCi0gICAgRmlyc3RXaXRoRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlv
ciA9IERZTERfSU9TX1ZFUlNJT05fMTFfMCwKLSAgICBGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5n
QW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8xMV8zLAotICAgIEZp
cnN0VGhhdERlZmF1bHRzVG9QYXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50ID0gRFlMRF9J
T1NfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2hlcmVTY3JvbGxWaWV3Q29udGVudEluc2V0c0Fy
ZU5vdE9ic2N1cmluZ0luc2V0cyA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJzdFdo
ZXJlVUlTY3JvbGxWaWV3RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHkg
PSBEWUxEX0lPU19WRVJTSU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTWFpblRocmVhZFJlbGVhc2VB
c3NlcnRpb25JbldlYlBhZ2VQcm94eSA9IERZTERfSU9TX1ZFUlNJT05fMTJfMCwKLSAgICBGaXJz
dFdpdGhvdXRNb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmsgPSBEWUxEX0lPU19WRVJTSU9O
XzEyXzAsCi0gICAgRmlyc3RXaXRoVGltZXJUaHJlYWRTYWZldHlDaGVja3MgPSBEWUxEX0lPU19W
RVJTSU9OXzEyXzAsCi0gICAgRmlyc3RXaXRoTGF6eUdlc3R1cmVSZWNvZ25pemVySW5zdGFsbGF0
aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0aFByb2Nlc3NTd2FwT25D
cm9zc1NpdGVOYXZpZ2F0aW9uID0gRFlMRF9JT1NfVkVSU0lPTl8xMl8yLAotICAgIEZpcnN0V2l0
aG91dFVuY29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAotICAgIEZpcnN0V2l0aFNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzID0gRFlM
RF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZpcnN0V2l0aERldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uUGVybWlzc2lvbkFQSSA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFRoYXRE
ZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcgPSBEWUxEX0lPU19WRVJT
SU9OXzEzXzAsCi0gICAgRmlyc3RXaXRoRXhjZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5n
RGlmZmVyZW50RGF0YVN0b3JlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfMCwKLSAgICBGaXJzdFdp
dGhNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAs
Ci0gICAgRmlyc3RUaGF0SGFzVUlDb250ZXh0TWVudUludGVyYWN0aW9uID0gRFlMRF9JT1NfVkVS
U0lPTl8xM18wLAotICAgIEZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5
Q29tbWFuZHMgPSBEWUxEX0lPU19WRVJTSU9OXzEzXzAsCi0gICAgRmlyc3RUaGF0U3VwcG9ydHNP
dmVyZmxvd0hpZGRlbk9uTWFpbkZyYW1lID0gRFlMRF9JT1NfVkVSU0lPTl8xM18wLAotICAgIEZp
cnN0V2l0aG91dElNRGJDU1NPTVZpZXdTY3JvbGxpbmdRdWlyayA9IERZTERfSU9TX1ZFUlNJT05f
MTNfMCwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVs
dCA9IERZTERfSU9TX1ZFUlNJT05fMTNfMiwKLSAgICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJM
U2NoZW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFRoYXRTZW5kc05hdGl2
ZU1vdXNlRXZlbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xM180LAotICAgIEZpcnN0VGhhdE1pbmlt
aXplc0xhbmd1YWdlcyA9IERZTERfSU9TX1ZFUlNJT05fMTNfNCwKLSAgICBGaXJzdFdpdGhTZXNz
aW9uQ2xlYW51cEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdp
dGhJbml0aWFsaXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24gPSBEWUxEX0lPU19WRVJTSU9O
XzE0XzAsCi0gICAgRmlyc3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9
IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBGaXJzdFdpdGhXZWJTUUxEaXNhYmxlZEJ5RGVm
YXVsdEluTGVnYWN5V2ViS2l0ID0gRFlMRF9JT1NfVkVSU0lPTl8xNF8wLAotICAgIEZpcnN0V2l0
aG91dExhQmFucXVlUG9zdGFsZVF1aXJrcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfMCwKLSAgICBG
aXJzdFdpdGhvdXRQb2tlckJyb3NCdWlsdEluVGFnUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0
XzAsCi0gICAgRmlyc3RWZXJzaW9uV2l0aGlPU0FwcHNPbk1hY09TID0gRFlMRF9JT1NfVkVSU0lP
Tl8xNF8yLAotICAgIEZpcnN0V2l0aERhdGFVUkxGcmFnbWVudFJlbW92YWwgPSBEWUxEX0lPU19W
RVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFRoYXRPYnNlcnZlc0NsYXNz
UHJvcGVydHkgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRob3V0V2VDaGF0
U2Nyb2xsaW5nUXVpcmsgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRoU2hh
cmVkTmV0d29ya1Byb2Nlc3MgPSBEWUxEX0lPU19WRVJTSU9OXzE0XzUsCi0gICAgRmlyc3RXaXRo
QmxhbmtWaWV3T25KU1Byb21wdCA9IERZTERfSU9TX1ZFUlNJT05fMTRfNSwKLSAgICBGaXJzdFdp
dGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9JT1NfVkVSU0lPTl8x
NV8wLAotICAgIEZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gID0gRFlMRF9JT1Nf
VkVSU0lPTl8xNV8wLAotICAgIEZpcnN0V2l0aEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxlZEJ5RGVm
YXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5k
ZXhlZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJz
dFRoYXREb2VzTm90RHJhaW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERf
SU9TX1ZFUlNJT05fMTVfMCwKLSAgICBGaXJzdFdpdGhBdXRob3JpemF0aW9uSGVhZGVyT25TYW1l
T3JpZ2luUmVkaXJlY3RzID0gRFlMRF9JT1NfVkVSU0lPTl8xNV80LAotICAgIEZpcnN0V2l0aG91
dFR5cGVkQXJyYXlBUElRdWlyayA9IERZTERfSU9TX1ZFUlNJT05fMTZfMCwKLSAgICBGaXJzdEZv
cmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0gRFlMRF9JT1NfVkVSU0lPTl8xNl8wLAotI2VsaWYg
UExBVEZPUk0oTUFDKQotICAgIEZpcnN0VmVyc2lvblRoYXRTdXBwb3J0c0luaXRDb25zdHJ1Y3Rv
cnMgPSAweEEwQTAwLCAvLyBPUyBYIDEwLjEwCi0gICAgRmlyc3RUaGF0Q29udmVydHNJbnZhbGlk
VVJMc1RvQmxhbmsgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEyLAotICAgIEZpcnN0V2l0aEV4
Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hf
VkVSU0lPTl8xMF8xMywKLSAgICBGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRCeURl
ZmF1bHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0V2l0aEV4cGlyZWRP
bmx5UmVsb2FkQmVoYXZpb3IgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAotICAgIEZpcnN0
V2l0aFdlYkljb25EYXRhYmFzZVdhcm5pbmcgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzLAot
ICAgIEZpcnN0V2l0aE1haW5UaHJlYWRSZWxlYXNlQXNzZXJ0aW9uSW5XZWJQYWdlUHJveHkgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE0LAotICAgIEZpcnN0V2l0aFRpbWVyVGhyZWFkU2FmZXR5
Q2hlY2tzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCwKLSAgICBGaXJzdFdpdGhvdXRVbmNv
bmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTUsCi0gICAgRmlyc3RXaXRoU25hcHNob3RBZnRlclNjcmVlblVwZGF0ZXMgPSBEWUxEX01B
Q09TWF9WRVJTSU9OXzEwXzE1LAotICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2Vi
Vmlld3NVc2luZ0RpZmZlcmVudERhdGFTdG9yZXMgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
LAotICAgIEZpcnN0V2l0aERvd25sb2FkRGVsZWdhdGVzQ2FsbGVkT25UaGVNYWluVGhyZWFkID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNSwKLSAgICBGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVp
cmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTVfMSwKLSAg
ICBGaXJzdFRoYXRSZXN0cmljdHNCYXNlVVJMU2NoZW1lcyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTVfNCwKLSAgICBGaXJzdFRoYXRNaW5pbWl6ZXNMYW5ndWFnZXMgPSBEWUxEX01BQ09TWF9W
RVJTSU9OXzEwXzE1XzQsCi0gICAgRmlyc3RXaXRoU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQgPSBE
WUxEX01BQ09TWF9WRVJTSU9OXzEwXzE2LAotICAgIEZpcnN0V2l0aEluaXRpYWxpemVXZWJLaXQy
TWFpblRocmVhZEFzc2VydGlvbiA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTYsCi0gICAgRmly
c3RXaXRoV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJldHVybmluZ05pbCA9IERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTYsCi0gICAgRmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCA9IERZTERf
TUFDT1NYX1ZFUlNJT05fMTFfMywKLSAgICBGaXJzdFdpdGhIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAotICAgIEZpcnN0V2l0aEJs
YW5rVmlld09uSlNQcm9tcHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RX
aXRob3V0Q2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMs
Ci0gICAgRmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQg
PSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCi0gICAgRmlyc3RUaGF0QWxsb3dzV2hlZWxFdmVu
dEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFfMywK
LSAgICBGaXJzdFdpdGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxzID0gRFlMRF9N
QUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhET01XaW5kb3dSZXVzZVJlc3RyaWN0
aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFRoYXREb2VzTm90RHJh
aW5UaGVNaWNyb3Rhc2tRdWV1ZVdoZW5DYWxsaW5nT2JqQyA9IERZTERfTUFDT1NYX1ZFUlNJT05f
MTJfMDAsCi0gICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKLSAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhl
ZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDAsCi0gICAgRmly
c3RXaXRoQXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cyA9IERZTERfTUFD
T1NYX1ZFUlNJT05fMTJfMywKLSAgICBGaXJzdEZvcmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzID0g
RFlMRF9NQUNPU1hfVkVSU0lPTl8xM18wLAotI2VuZGlmCitlbnVtIGNsYXNzIFNES0FsaWduZWRC
ZWhhdmlvciB7CisgICAgQWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2lu
ZywKKyAgICBBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQsCisgICAgQXV0aG9yaXph
dGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cywKKyAgICBCbGFua3NWaWV3T25KU1Byb21w
dCwKKyAgICBDb252ZXJ0c0ludmFsaWRVUkxzVG9CbGFuaywKKyAgICBEYXRhVVJMRnJhZ21lbnRS
ZW1vdmFsLAorICAgIERlY2lkZXNQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldywK
KyAgICBEZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEZWZh
dWx0c1RvUGFzc2l2ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCwKKyAgICBEaXNhbGxvd3NTZXR0
aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzLAorICAgIERvZXNOb3REcmFpblRoZU1pY3JvdGFz
a1F1ZXVlV2hlbkNhbGxpbmdPYmpDLAorICAgIERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24sCisg
ICAgRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQsCisgICAgRHJvcFRvTmF2
aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0LAorICAgIEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21w
bGV0aW9uSGFuZGxlckNhbGxzLAorICAgIEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2lu
Z0RpZmZlcmVudERhdGFTdG9yZXMsCisgICAgRXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvciwKKyAg
ICBGb3JiaWRzRG90UHJlZml4ZWRGb250cywKKyAgICBIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24sCisgICAgSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcywKKyAgICBJbml0aWFs
aXplV2ViS2l0Mk1haW5UaHJlYWRBc3NlcnRpb24sCisgICAgTGF6eUdlc3R1cmVSZWNvZ25pemVy
SW5zdGFsbGF0aW9uLAorICAgIExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5LAorICAgIE1lZGlhVHlwZXNSZXF1
aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2ssCisgICAgTWluaW1pemVzTGFuZ3VhZ2VzLAorICAg
IE1vZGVybkNvbXBhYmlsaXR5TW9kZUJ5RGVmYXVsdCwKKyAgICBOb0NsaWVudENlcnRpZmljYXRl
TG9va3VwLAorICAgIE5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3csCisgICAgTm9J
TURiQ1NTT01WaWV3U2Nyb2xsaW5nUXVpcmssCisgICAgTm9MYUJhbnF1ZVBvc3RhbGVRdWlya3Ms
CisgICAgTm9Nb3ZpU3RhclBsdXNDT1JTUHJlZmxpZ2h0UXVpcmssCisgICAgTm9Qb2tlckJyb3NC
dWlsdEluVGFnUXVpcmssCisgICAgTm9UaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeVdpbmRv
d09wZW5RdWlyaywKKyAgICBOb1R5cGVkQXJyYXlBUElRdWlyaywKKyAgICBOb1VuY29uZGl0aW9u
YWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uLAorICAgIE5vV2VDaGF0U2Nyb2xsaW5nUXVpcmss
CisgICAgTnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcywKKyAgICBPYnNlcnZlc0Ns
YXNzUHJvcGVydHksCisgICAgUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2ssCisgICAgUHJv
Y2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24sCisgICAgUmVxdWlyZXNVc2VyR2VzdHVyZVRv
TG9hZFZpZGVvLAorICAgIFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzLAorICAgIFNjcm9sbFZpZXdD
b250ZW50SW5zZXRzQXJlTm90T2JzY3VyaW5nSW5zZXRzLAorICAgIFNlbmRzTmF0aXZlTW91c2VF
dmVudHMsCisgICAgU2Vzc2lvbkNsZWFudXBCeURlZmF1bHQsCisgICAgU2hhcmVkTmV0d29ya1By
b2Nlc3MsCisgICAgU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5RGVmYXVsdCwKKyAgICBT
bmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRlcywKKyAgICBTdXBwb3J0c0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uUGVybWlzc2lvbkFQSSwKKyAgICBTdXBwb3J0c0luaXRDb25zdHJ1Y3RvcnMsCisg
ICAgU3VwcG9ydHNpT1NBcHBzT25NYWNPUywKKyAgICBTdXBwb3J0c092ZXJmbG93SGlkZGVuT25N
YWluRnJhbWUsCisgICAgVGltZXJUaHJlYWRTYWZldHlDaGVja3MsCisgICAgVUlTY3JvbGxWaWV3
RG9lc05vdEFwcGx5S2V5Ym9hcmRJbnNldHNVbmNvbmRpdGlvbmFsbHksCisgICAgVW5wcmVmaXhl
ZFBsYXlzSW5saW5lQXR0cmlidXRlLAorICAgIFdlYkljb25EYXRhYmFzZVdhcm5pbmcsCisgICAg
V2ViU1FMRGlzYWJsZWRCeURlZmF1bHRJbkxlZ2FjeVdlYktpdCwKKyAgICBXS0NvbnRlbnRWaWV3
RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMsCisgICAgV0tXZWJzaXRlRGF0YVN0b3JlSW5pdFJl
dHVybmluZ05pbCwKKworICAgIE51bWJlck9mQmVoYXZpb3JzCiB9OwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbik7Cit1c2luZyBTREtBbGlnbmVk
QmVoYXZpb3JzID0gQml0bWFwPHN0YXRpY19jYXN0PHNpemVfdD4oU0RLQWxpZ25lZEJlaGF2aW9y
OjpOdW1iZXJPZkJlaGF2aW9ycyksIHVpbnQzMl90PjsKIAotV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHVpbnQzMl90KTsKK1dURl9FWFBPUlRfUFJJVkFU
RSBjb25zdCBTREtBbGlnbmVkQmVoYXZpb3JzJiBzZGtBbGlnbmVkQmVoYXZpb3JzKCk7CitXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhh
dmlvcnMpOwogCi0vLyBEbyBub3QgdXNlIGFwcGxpY2F0aW9uU0RLVmVyc2lvbigpIGRpcmVjdGx5
OyBhZGQgYSB2ZXJzaW9uIHRvIHRoZSBlbnVtIGFib3ZlLAotLy8gYW5kIHVzZSBsaW5rZWRPbk9y
QWZ0ZXIoKSBhdCBjYWxsIHNpdGVzLgotV1RGX0VYUE9SVF9QUklWQVRFIHVpbnQzMl90IGFwcGxp
Y2F0aW9uU0RLVmVyc2lvbigpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5hYmxlQWxsU0RL
QWxpZ25lZEJlaGF2aW9ycygpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZGlzYWJsZUFsbFNE
S0FsaWduZWRCZWhhdmlvcnMoKTsKIAotZW51bSBjbGFzcyBMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZSA6IHVpbnQ4X3QgewotICAgIEJlZm9yZUV2ZXJ5dGhpbmcsCi0gICAgQWZ0ZXJFdmVyeXRoaW5n
Ci19OwotV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUo
c3RkOjpvcHRpb25hbDxMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZT4pOwotV1RGX0VYUE9SVF9QUklW
QVRFIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+IGxpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlKCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBsaW5rZWRPbk9yQWZ0ZXJTREtX
aXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yKTsKIAogfQogCi11c2luZyBXVEY6OnNldEFw
cGxpY2F0aW9uU0RLVmVyc2lvbjsKLXVzaW5nIFdURjo6YXBwbGljYXRpb25TREtWZXJzaW9uOwot
dXNpbmcgV1RGOjpMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTsKLXVzaW5nIFdURjo6c2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGU7Ci11c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlck92ZXJyaWRlOwot
dXNpbmcgV1RGOjpsaW5rZWRPbk9yQWZ0ZXI7Ci11c2luZyBXVEY6OlNES1ZlcnNpb247Ci11c2lu
ZyBXVEY6OnNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbjsKK3VzaW5nIFdURjo6ZGlzYWJsZUFsbFNE
S0FsaWduZWRCZWhhdmlvcnM7Cit1c2luZyBXVEY6OmVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlv
cnM7Cit1c2luZyBXVEY6OmxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcjsKK3VzaW5nIFdU
Rjo6U0RLQWxpZ25lZEJlaGF2aW9yOwordXNpbmcgV1RGOjpzZGtBbGlnbmVkQmVoYXZpb3JzOwor
dXNpbmcgV1RGOjpTREtBbGlnbmVkQmVoYXZpb3JzOwordXNpbmcgV1RGOjpzZXRTREtBbGlnbmVk
QmVoYXZpb3JzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvc3BpL2Rhcndpbi9keWxkU1BJ
LmggYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaAppbmRleCAzNDY4OThjMjg1
NmQyZjdiZTc4MDcxZTY4MmMxMmUxN2IzNTVjY2RlLi5iY2JmNDBjYjAxZmViMjgxMWVlNzYzNDEy
ZDYwMjBlNTdlZTc4N2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5
bGRTUEkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL2R5bGRTUEkuaApAQCAtMTIz
LDYgKzEyMywxMyBAQAogCiAjZWxzZQogCit0eXBlZGVmIHVpbnQzMl90IGR5bGRfcGxhdGZvcm1f
dDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGR5bGRfcGxhdGZvcm1fdCBwbGF0Zm9ybTsKKyAg
ICB1aW50MzJfdCB2ZXJzaW9uOworfSBkeWxkX2J1aWxkX3ZlcnNpb25fdDsKKwogI2RlZmluZSBE
WUxEX0lPU19WRVJTSU9OXzNfMCAweDAwMDMwMDAwCiAjZGVmaW5lIERZTERfSU9TX1ZFUlNJT05f
NF8yIDB4MDAwNDAyMDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl81XzAgMHgwMDA1MDAwMApA
QCAtMTQ0LDEwICsxNTEsMTMgQEAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl8xNV80IDB4MDAw
ZjA0MDAKICNkZWZpbmUgRFlMRF9JT1NfVkVSU0lPTl8xNl8wIDB4MDAxMDAwMDAKIAorI2RlZmlu
ZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEwIDB4MDAwQTBBMDAKICNkZWZpbmUgRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xMSAweDAwMEEwQjAwCiAjZGVmaW5lIERZTERfTUFDT1NYX1ZFUlNJT05f
MTBfMTIgMHgwMDBBMEMwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzEzIDB4MDAw
QTBEMDAKKyNkZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xM180IDB4MDAwQTBEMDQKICNk
ZWZpbmUgRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xNCAweDAwMEEwRTAwCisjZGVmaW5lIERZTERf
TUFDT1NYX1ZFUlNJT05fMTBfMTRfNCAweDAwMEEwRTA0CiAjZGVmaW5lIERZTERfTUFDT1NYX1ZF
UlNJT05fMTBfMTUgMHgwMDBBMEYwMAogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1
XzEgMHgwMDBBMEYwMQogI2RlZmluZSBEWUxEX01BQ09TWF9WRVJTSU9OXzEwXzE1XzQgMHgwMDBB
MEYwNApAQCAtMTYxLDYgKzE3MSw3NSBAQAogCiBXVEZfRVhURVJOX0NfQkVHSU4KIAorLy8gQmVj
YXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gZm9yd2FyZC1kZWNsYXJlIGR5bGRfYnVpbGRfdmVy
c2lvbl90IHZhbHVlcywKKy8vIHdlIGZvcndhcmQtZGVjbGFyZSBwbGFjZWhvbGRlcnMgZm9yIGFu
eSBtaXNzaW5nIGRlZmluaXRpb25zLCBhbmQgdXNlIHRoZWlyIGVtcHR5CisvLyB2YWx1ZSB0byBp
bmRpY2F0ZSB0aGF0IHdlIG5lZWQgdG8gZmFsbCBiYWNrIHRvIGFudGlxdWUgc2luZ2xlLXBsYXRm
b3JtIFNESyBjaGVja3MuCisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMTRfb3NfdmVyc2lvbnMKKyNk
ZWZpbmUgZHlsZF9mYWxsXzIwMTRfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE1X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE1X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxfMjAxNl9v
c192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAxNl9vc192ZXJzaW9ucyAoeyAoZHlsZF9i
dWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9mYWxs
XzIwMTZfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxsXzIwMTZfb3NfdmVyc2lvbnMgKHsg
KGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5
bGRfZmFsbF8yMDE3X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE3X29zX3ZlcnNp
b25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lm
bmRlZiBkeWxkX3NwcmluZ18yMDE4X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfc3ByaW5nXzIw
MThfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNl
bmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE4X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRf
ZmFsbF8yMDE4X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07
IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX3NwcmluZ18yMDE5X29zX3ZlcnNpb25zCisjZGVm
aW5lIGR5bGRfc3ByaW5nXzIwMTlfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90
KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVmIGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNp
b25zCisjZGVmaW5lIGR5bGRfZmFsbF8yMDE5X29zX3ZlcnNpb25zICh7IChkeWxkX2J1aWxkX3Zl
cnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2xhdGVfZmFsbF8y
MDE5X29zX3ZlcnNpb25zCisjZGVmaW5lIGR5bGRfbGF0ZV9mYWxsXzIwMTlfb3NfdmVyc2lvbnMg
KHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkKKyNlbmRpZgorCisjaWZuZGVm
IGR5bGRfc3ByaW5nXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9zcHJpbmdfMjAyMF9v
c192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlm
CisKKyNpZm5kZWYgZHlsZF9mYWxsXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZpbmUgZHlsZF9mYWxs
XzIwMjBfb3NfdmVyc2lvbnMgKHsgKGR5bGRfYnVpbGRfdmVyc2lvbl90KSB7IDAsIDAgfTsgfSkK
KyNlbmRpZgorCisjaWZuZGVmIGR5bGRfbGF0ZV9mYWxsXzIwMjBfb3NfdmVyc2lvbnMKKyNkZWZp
bmUgZHlsZF9sYXRlX2ZhbGxfMjAyMF9vc192ZXJzaW9ucyAoeyAoZHlsZF9idWlsZF92ZXJzaW9u
X3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHlsZF9zcHJpbmdfMjAyMV9vc192
ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIxX29zX3ZlcnNpb25zICh7IChkeWxkX2J1
aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKworI2lmbmRlZiBkeWxkX2ZhbGxf
MjAyMV9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX2ZhbGxfMjAyMV9vc192ZXJzaW9ucyAoeyAo
ZHlsZF9idWlsZF92ZXJzaW9uX3QpIHsgMCwgMCB9OyB9KQorI2VuZGlmCisKKyNpZm5kZWYgZHls
ZF9zcHJpbmdfMjAyMl9vc192ZXJzaW9ucworI2RlZmluZSBkeWxkX3NwcmluZ18yMDIyX29zX3Zl
cnNpb25zICh7IChkeWxkX2J1aWxkX3ZlcnNpb25fdCkgeyAwLCAwIH07IH0pCisjZW5kaWYKKwog
dWludDMyX3QgZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworYm9vbCBkeWxkX3Byb2dy
YW1fc2RrX2F0X2xlYXN0KGR5bGRfYnVpbGRfdmVyc2lvbl90KTsKIAogV1RGX0VYVEVSTl9DX0VO
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CmluZGV4IDhjZTc4OTU5ZWVkMzAzYzJiZDFhYjc2MjViOGIxOTVjYTMxZGI2MDYuLjVmYTYxMmY1
ZjgwZGVjZjYyYmNhN2NiN2JjMmJmNzlmYWM4NGQ1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBib29sIGFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVy
dGllcygpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gR2l2ZW4gdGhhdCBXaW5kb3dQcm94
eSBpcyB0aGUgZGVmYXVsdCB8dGhpc3wgdmFsdWUgZm9yIHNsb3BweSBtb2RlIGZ1bmN0aW9ucywg
aXQncyBoYXJkIHRvIHByb3ZlCiAgICAgLy8gdGhhdCBvbGRlciBpT1MgYW5kIG1hY09TIGFwcHMg
ZG9uJ3QgYWNjaWRlbnRhbGx5IGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9yLCBzbyB3ZSBrZWVwIGl0
IGZvciB0aGVtLgotICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAhbGlua2VkT25PckFm
dGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJvcGVydGllc09uV2lu
ZG93KTsKKyAgICBzdGF0aWMgYm9vbCByZXF1aXJlc1F1aXJrID0gIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vRXhwYW5kb0luZGV4ZWRQcm9wZXJ0
aWVzT25XaW5kb3cpOwogICAgIHJldHVybiByZXF1aXJlc1F1aXJrOwogI2Vsc2UKICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRv
d1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3Bw
CmluZGV4IDI3MjFiNzc2YWU2N2FiNjZmZDM1YmVjYzQxZjE3YzE0N2YyYTM1ZTAuLmNhNzkzOGU3
OTQ1MDhjN2MzYWFmOWM2N2IzNDczYzViMzRkNjE3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBKU1dp
bmRvd1Byb3h5OjpzZXRXaW5kb3coQWJzdHJhY3RET01XaW5kb3cmIGRvbVdpbmRvdykKICAgICAg
ICAgd2luZG93ID0gSlNET01XaW5kb3c6OmNyZWF0ZSh2bSwgJndpbmRvd1N0cnVjdHVyZSwgbG9j
YWxXaW5kb3csIHRoaXMpOwogICAgICAgICBib29sIGxpbmtlZFdpdGhOZXdTREsgPSB0cnVlOwog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICBsaW5rZWRXaXRoTmV3U0RLID0gbGlua2VkT25P
ckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24pOwor
ICAgICAgICBsaW5rZWRXaXRoTmV3U0RLID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6RE9NV2luZG93UmV1c2VSZXN0cmljdGlvbik7CiAjZW5kaWYK
ICAgICAgICAgaWYgKCFsb2NhbFdpbmRvdy5kb2N1bWVudCgpLT5oYXZlSW5pdGlhbGl6ZWRTZWN1
cml0eU9yaWdpbigpICYmIGxpbmtlZFdpdGhOZXdTREspCiAgICAgICAgICAgICBsb2NhbFdpbmRv
dy5zZXRBc1dyYXBwZWRXaXRob3V0SW5pdGlhbGl6ZWRTZWN1cml0eU9yaWdpbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggMmQ4MWYxNDVhYjA1
ZTliNmMwYzU4MWNjOThjZDhiNDdkZTk5MjVmZS4uMTcwYjFmZTg0MmU1M2EyNjA5MjU4YjY2Njk1
Y2U2YzcyNmQ5YjgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Np
b24uY3BwCkBAIC04NTcsNyArODU3LDcgQEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZXF1
aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgY29uc3QKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIGlmIChDb2NvYUFwcGxpY2F0aW9uOjppc0lCb29rcygpKQogICAgICAgICBy
ZXR1cm4gIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxO
YW1lczo6d2Via2l0X3BsYXlzaW5saW5lQXR0cikgJiYgIW1fZWxlbWVudC5oYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6cGxheXNpbmxpbmVBdHRyKTsKLSAgICBp
ZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhVbnByZWZpeGVkUGxheXNJ
bmxpbmVBdHRyaWJ1dGUpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6VW5wcmVmaXhlZFBsYXlzSW5saW5lQXR0cmlidXRlKSkKICAg
ICAgICAgcmV0dXJuICFtX2VsZW1lbnQuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihIVE1MTmFtZXM6OndlYmtpdF9wbGF5c2lubGluZUF0dHIpOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXgg
YzM2MDlhMjIzYWEzZWNiZDNkMWExNjYyN2ZlZjIxOTMxMjIyZDBjYy4uZGM4Njk5NjYwOWVhYzQ3
Nzg3ZDhlYjU0NWIyOThlOWIxODdlNzk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lk
IERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChS
ZXNvdXJjZVJlcXVlc3QmJiByZQogICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29s
IG5lZWRzUHJlZmxpZ2h0UXVpcmsgPSBJT1NBcHBsaWNhdGlvbjo6aXNNb3ZpU3RhclBsdXMoKSAm
JiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dE1vdmlTdGFyUGx1c0NP
UlNQcmVmbGlnaHRRdWlyaykgJiYgKG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxp
Z2h0UG9saWN5OjpDb25zaWRlciB8fCBtX29wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID09IFByZWZs
aWdodFBvbGljeTo6Rm9yY2UpOworICAgIGJvb2wgbmVlZHNQcmVmbGlnaHRRdWlyayA9IElPU0Fw
cGxpY2F0aW9uOjppc01vdmlTdGFyUGx1cygpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb01vdmlTdGFyUGx1c0NPUlNQcmVmbGlnaHRRdWly
aykgJiYgKG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0gUHJlZmxpZ2h0UG9saWN5OjpDb25z
aWRlciB8fCBtX29wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID09IFByZWZsaWdodFBvbGljeTo6Rm9y
Y2UpOwogI2Vsc2UKICAgICBib29sIG5lZWRzUHJlZmxpZ2h0UXVpcmsgPSBmYWxzZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IGRkYmE4MzVlZjg5MjAzYWFlYWRhMWQzMDNiMjM2
OTQ1OGQ0NzI4MTIuLjg1NWY4YTc5MzhkZWM0NTg5YmRkMjg0YjU0NDI0ZWIzM2Y4Y2I4YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTcwNyw3ICs3MDcsNyBAQCBib29sIFF1aXJrczo6bmVl
ZHNGdWxsc2NyZWVuRGlzcGxheU5vbmVRdWlyaygpIGNvbnN0CiBib29sIFF1aXJrczo6bmVlZHNX
ZUNoYXRTY3JvbGxpbmdRdWlyaygpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHJl
dHVybiBuZWVkc1F1aXJrcygpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRob3V0V2VDaGF0U2Nyb2xsaW5nUXVpcmspICYmIElPU0FwcGxpY2F0aW9uOjppc1dlY2hhdCgp
OworICAgIHJldHVybiBuZWVkc1F1aXJrcygpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1dlQ2hhdFNjcm9sbGluZ1F1aXJrKSAmJiBJT1NB
cHBsaWNhdGlvbjo6aXNXZWNoYXQoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CkBAIC03MTYsNyArNzE2LDcgQEAgYm9vbCBRdWlya3M6Om5lZWRzV2VDaGF0U2Nyb2xsaW5nUXVp
cmsoKSBjb25zdAogYm9vbCBRdWlya3M6OnNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzdGF0aWMgYm9vbCBz
aG91bGRPbWl0SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyA9ICFsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoSFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlO
YW1lcyk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkT21pdEhUTUxEb2N1bWVudFN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMgPSAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6SFRNTERvY3VtZW50U3VwcG9ydGVkUHJvcGVydHlOYW1lcyk7CiAgICAgcmV0dXJu
IHNob3VsZE9taXRIVE1MRG9jdW1lbnRTdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzOwogI2Vsc2UKICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4
IDY0OTQyMjdhZDU0YjI2NDRiMjBmMjVmY2MzMzFhMTk5YzE0ZDRiODEuLjY4ZTU5ZTJhNzIzMWVm
ZjJiY2JhY2I1YmFmODI5YjgyMmYxNTExODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1Vu
aXF1ZU9yaWdpbihjb25zdCBVUkwmIHVybCkKICAgICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3
Zy5vcmcvI29yaWdpbiB3aXRoIHNvbWUgYWRkaXRpb25zCiAgICAgaWYgKHVybC5oYXNTcGVjaWFs
U2NoZW1lKCkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAgICAgfHwgIWxpbmtlZE9uT3JBZnRl
cihTREtWZXJzaW9uOjpGaXJzdFdpdGhOdWxsT3JpZ2luRm9yTm9uU3BlY2lhbFNjaGVtZWRVUkxz
KQorICAgICAgICB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRC
ZWhhdmlvcjo6TnVsbE9yaWdpbkZvck5vblNwZWNpYWxTY2hlbWVkVVJMcykKICAgICAgICAgfHwg
dXJsLnByb3RvY29sSXMoImFwcGxld2ViZGF0YSIpCiAgICAgICAgIHx8IHVybC5wcm90b2NvbElz
KCJ4LWFwcGxlLXFsLWlkIikKICAgICAgICAgfHwgdXJsLnByb3RvY29sSXMoIngtYXBwbGUtcWwt
aWQyIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAppbmRleCAxODkwNTNmOTI4NWY5ODg2ZmE1
OWI4ODdhNzJhMGQ1ZWM5MTA0ODkzLi43ZjlkZjg3ZjlhOGNiN2E1YWM0MmM3YzkzZmRjMjMwMWI1
MThiM2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCkBAIC0yNTAsOSArMjUwLDkgQEAg
cHJpdmF0ZToKIHN0YXRpYyBib29sIHNob3VsZFN1cHByZXNzVGhyZWFkU2FmZXR5Q2hlY2soKQog
ewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuIFdlYlRocmVhZElzRW5hYmxl
ZCgpIHx8ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoVGltZXJUaHJlYWRT
YWZldHlDaGVja3MpOworICAgIHJldHVybiBXZWJUaHJlYWRJc0VuYWJsZWQoKSB8fCAhbGlua2Vk
T25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6VGltZXJUaHJlYWRT
YWZldHlDaGVja3MpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIHJldHVybiAhaXNJbldlYlBy
b2Nlc3MoKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFRpbWVyVGhy
ZWFkU2FmZXR5Q2hlY2tzKTsKKyAgICByZXR1cm4gIWlzSW5XZWJQcm9jZXNzKCkgJiYgIWxpbmtl
ZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlRpbWVyVGhyZWFk
U2FmZXR5Q2hlY2tzKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHAKaW5kZXggZGVhZTMyMjNjYjMxNTNmZjMxZmViZjYzNmQxOTA1MmMyNjU0
MjM0Mi4uZDkzMTJhOWEzYzhiODJhNzYxZWFkM2E1OTA2ZjFkZTAwMjdhODMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmNwcApAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgc3RydWN0IEZvbnRMb29rdXAg
ewogCiBzdGF0aWMgYm9vbCBpc0RvdFByZWZpeGVkRm9yYmlkZGVuRm9udChjb25zdCBBdG9tU3Ry
aW5nJiBmYW1pbHkpCiB7Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dEZvcmJpZGRpbmdEb3RQcmVmaXhlZEZvbnRzKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Rm9yYmlkc0RvdFByZWZpeGVkRm9udHMp
KQogICAgICAgICByZXR1cm4gZmFtaWx5LnN0YXJ0c1dpdGgoJy4nKTsKICAgICByZXR1cm4gZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5LCAiLmFwcGxlc3lzdGVtdWlmb250c2Vy
aWYiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1pbHksICIu
c2YgbnMgbW9ubyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0RhdGFVUkxEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0
YVVSTERlY29kZXIuY3BwCmluZGV4IGFmNTNkNjQxOGRjNTE2NTJmMmExMDc5ODU3ZWUzNzhmY2Ez
ODQwZWQuLmNjYjcxOGMwNjAxYTQ1NjU3NmQ0YTYzNzVlNGI2MWU2ZjhlMzczODcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRGF0YVVSTERlY29kZXIuY3BwCkBA
IC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBEYXRhVVJMRGVjb2RlciB7CiBzdGF0aWMgYm9vbCBz
aG91bGRSZW1vdmVGcmFnbWVudElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RXaXRoRGF0YVVSTEZyYWdtZW50UmVtb3ZhbCkpCisgICAgaWYgKCFsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEYXRhVVJMRnJhZ21lbnRS
ZW1vdmFsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSExTIHVzZXMgIyBpbiB0
aGUgbWlkZGxlIG9mIHRoZSBtYW5pZmVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggMWJkNjI3MjIzYmQ3MDJiMTkwZDc0YzAw
NmM4MTUyZjExMGUyZGMxYi4uMGMwZGI4ZmVhOGE3ZjRhNjE1ZDFjOTY0NTdhZWRhYjU0ZjhkNDYw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBv
cnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcApAQCAtMTUwLDggKzE1MCw3IEBAIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCBhbGxvd0FueVNTTENlcnRpZmljYXRlKQogdm9pZCBzZXRMaW5rZWRPbk9yQWZ0ZXJFdmVy
eXRoaW5nRm9yVGVzdGluZygpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgc2V0QXBwbGlj
YXRpb25TREtWZXJzaW9uKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Ci0g
ICAgc2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUoTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFm
dGVyRXZlcnl0aGluZyk7CisgICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGUxZmFiOGU5ZDhhZTIxZWIwZDdmOTg5
ZTJhZDVlMzNiZTYzNmI0MzMuLmQyOWFiN2M2ZmI0M2IxNzUxZTNmZTc1MTY1NjkzMDFlMzY2ZmRl
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNDk4LDcgKzQ5OCw3IEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmCiAgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQT3JpZ2luKCk7CiAKICAgICB9
IGVsc2UgewotICAgICAgICBpZiAoYXV0byBhdXRob3JpemF0aW9uID0gbV9maXJzdFJlcXVlc3Qu
aHR0cEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKTsg
IWF1dGhvcml6YXRpb24uaXNOdWxsKCkgJiYgbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZp
cnN0V2l0aEF1dGhvcml6YXRpb25IZWFkZXJPblNhbWVPcmlnaW5SZWRpcmVjdHMpKQorICAgICAg
ICBpZiAoYXV0byBhdXRob3JpemF0aW9uID0gbV9maXJzdFJlcXVlc3QuaHR0cEhlYWRlckZpZWxk
KFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKTsgIWF1dGhvcml6YXRpb24u
aXNOdWxsKCkgJiYgbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhh
dmlvcjo6QXV0aG9yaXphdGlvbkhlYWRlck9uU2FtZU9yaWdpblJlZGlyZWN0cykpCiAgICAgICAg
ICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChXZWJDb3JlOjpIVFRQSGVhZGVyTmFtZTo6
QXV0aG9yaXphdGlvbiwgYXV0aG9yaXphdGlvbik7CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9S
QUdFX1dJVEhfTkVUV09SS19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDdiMDQyYTM2
NTNjNTllYTE5NWZkZmY0MTI0NWMxNmU2YTM2MDE1YWYuLmVmZDJiMTM5YTU4ODgxNjRhZTM4NTg4
NTkxMDkyODc0MjMwOGY2MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTEwOTIsNyArMTA5Miw3
IEBAIHN0YXRpYyBOU1VSTFNlc3Npb25Db25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uRm9yU2Vz
c2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBbTlNV
UkxTZXNzaW9uQ29uZmlndXJhdGlvbiBkZWZhdWx0U2Vzc2lvbkNvbmZpZ3VyYXRpb25dOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGJvb2wgcHJldmVudENGTmV0d29ya0NsaWVudENlcnRpZmlj
YXRlTG9va3VwID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dENsaWVu
dENlcnRpZmljYXRlTG9va3VwKSB8fCBzZXNzaW9uLmlzRXBoZW1lcmFsKCk7CisgICAgYm9vbCBw
cmV2ZW50Q0ZOZXR3b3JrQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBsaW5rZWRPbk9yQWZ0ZXJT
REtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb0NsaWVudENlcnRpZmljYXRlTG9v
a3VwKSB8fCBzZXNzaW9uLmlzRXBoZW1lcmFsKCk7CiAjZWxzZQogICAgIGJvb2wgcHJldmVudENG
TmV0d29ya0NsaWVudENlcnRpZmljYXRlTG9va3VwID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQXV4aWxpYXJ5UHJvY2Vzcy5oCmluZGV4IDkyYjc4Mjk4NTkzYzMyYzk1Y2U3Yzcy
ZGViOGU3NzFlODYxMTZhNTQuLjEwNjY5NTg3NDQwYmZiMjVkMzdlN2JiYWU4ZjkxMWZlZTkwM2Yy
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLmgKQEAgLTE4MCwxNCAr
MTgwLDEzIEBAIHN0cnVjdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
IHsKICAgICBTdHJpbmcgdWlQcm9jZXNzTmFtZTsKICAgICBTdHJpbmcgY2xpZW50SWRlbnRpZmll
cjsKICAgICBTdHJpbmcgY2xpZW50QnVuZGxlSWRlbnRpZmllcjsKLSAgICB1aW50MzJfdCBjbGll
bnRTREtWZXJzaW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXI+IHByb2Nlc3NJZGVudGlmaWVyOwogICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRyYUlu
aXRpYWxpemF0aW9uRGF0YTsKICAgICBXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9j
ZXNzVHlwZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPU09iamVjdFB0cjx4cGNfb2JqZWN0
X3Q+IHByaW9yaXR5Qm9vc3RNZXNzYWdlOwotICAgIHN0ZDo6b3B0aW9uYWw8TGlua2VkT25PckFm
dGVyT3ZlcnJpZGU+IGNsaWVudExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOworICAgIFNES0FsaWdu
ZWRCZWhhdmlvcnMgY2xpZW50U0RLQWxpZ25lZEJlaGF2aW9yczsKICNlbmRpZgogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc0NvY29hLm1t
CmluZGV4IDVjYjBiZGM0ZGY0Nzk0NGQ2NDRlYTA3NzcxMTEwY2JhYmFiYmRiNGYuLjdiNTZkNDYw
YzkxMjA4ZjQ2NGZlODJkMGE0Nzk1MzI4NzQ0M2M0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL0F1eGlsaWFyeVByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9BdXhpbGlhcnlQcm9jZXNzQ29jb2EubW0KQEAgLTc3LDggKzc3LDcg
QEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoY29uc3QgQXV4aWxp
YXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGEKICAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGNoYW5nZUN1cnJlbnREaXJlY3RvcnlQYXRoOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlUGF0aF1dOwogCiAgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKHBhcmFtZXRlcnMuY2xpZW50QnVuZGxlSWRlbnRpZmllcik7Ci0gICAgc2V0QXBwbGljYXRp
b25TREtWZXJzaW9uKHBhcmFtZXRlcnMuY2xpZW50U0RLVmVyc2lvbik7Ci0gICAgc2V0TGlua2Vk
T25PckFmdGVyT3ZlcnJpZGUocGFyYW1ldGVycy5jbGllbnRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZSk7CisgICAgc2V0U0RLQWxpZ25lZEJlaGF2aW9ycyhwYXJhbWV0ZXJzLmNsaWVudFNES0FsaWdu
ZWRCZWhhdmlvcnMpOwogfQogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3M6OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRs
ZXJDYWxsQ2hlY2tlci5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvbXBsZXRpb25I
YW5kbGVyQ2FsbENoZWNrZXIubW0KaW5kZXggZjJjNDViYWJlMzQ2NjUzMWYxZTE5ZDZmMTQ5MzIx
OGFmODg0N2ZjOS4uNTQ3YWY5ZTlkZDRiM2ExYWQ4NmI5NWE3NTE2MTNmNzU5ZmZhOGIyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQ29tcGxldGlvbkhhbmRsZXJDYWxs
Q2hlY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFu
ZGxlckNhbGxDaGVja2VyLm1tCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRo
cm93RXhjZXB0aW9uRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxsKCkKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRUaHJvd0V4Y2VwdGlvbjsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcg
b25jZTsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7Ci0gICAgICAgIHNob3VsZFRocm93
RXhjZXB0aW9uID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aEV4Y2VwdGlv
bnNGb3JEdXBsaWNhdGVDb21wbGV0aW9uSGFuZGxlckNhbGxzKTsKKyAgICAgICAgc2hvdWxkVGhy
b3dFeGNlcHRpb24gPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29tcGxldGlvbkhhbmRsZXJDYWxscyk7CiAg
ICAgfSk7CiAgICAgcmV0dXJuIHNob3VsZFRocm93RXhjZXB0aW9uOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQppbmRl
eCBhYzMzZjUzYTdhMDRiNTBlZDdjNWMzMGE4MjQ1MTEyYWQyMzQ1ZTg3Li4zYTE2YTJjYzM5NDRj
NDIxMTQ1Mzk4YmNmMTRlMmI1NjZlN2E1MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQpAQCAtMTI1LDcgKzEyNSw3
IEBAIHZvaWQgZGV0ZXJtaW5lSVRQU3RhdGUoKQogICAgIGlmIChjdXJyZW50SVRQU3RhdGUgIT0g
SVRQU3RhdGU6OlVuaW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgYXBw
V2FzTGlua2VkT25PckFmdGVyID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0
aFNlc3Npb25DbGVhbnVwQnlEZWZhdWx0KTsKKyAgICBib29sIGFwcFdhc0xpbmtlZE9uT3JBZnRl
ciA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNl
c3Npb25DbGVhbnVwQnlEZWZhdWx0KTsKIAogICAgIGl0cFF1ZXVlKCkgPSBXb3JrUXVldWU6OmNy
ZWF0ZSgiY29tLmFwcGxlLldlYktpdC5pdHBDaGVja1F1ZXVlIik7CiAgICAgaXRwUXVldWUoKS0+
ZGlzcGF0Y2goW2FwcFdhc0xpbmtlZE9uT3JBZnRlciwgYnVuZGxlSWRlbnRpZmllciA9IFdlYkNv
cmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLmlzb2xhdGVkQ29weSgpXSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViS2l0MkluaXRpYWxpemVDb2NvYS5t
bQppbmRleCBiMGUwMTU5MTgxMmVlNjM5MTE5OWViMGZmZTljMjMwYWZkOTgwZjdlLi4xNGU3Y2My
NWIyMDI2OGJmYWY5YTZkNmNjMDU0MDNjYTljNmM5MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1dlYktpdDJJbml0aWFsaXplQ29jb2EubW0KQEAgLTY0LDcgKzY0
LDcgQEAgdm9pZCBJbml0aWFsaXplV2ViS2l0MigpCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBpbml0
aWFsaXphdGlvbiBjb2RlIGlzIHJ1biBvbmx5IG9uY2UgYW5kIG9uIHRoZSBtYWluIHRocmVhZCBz
aW5jZSB0aGluZ3MgbGlrZSBpbml0aWFsaXplTWFpblRocmVhZCgpCiAgICAgLy8gYXJlIG9ubHkg
c2FmZSB0byBjYWxsIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICBzdGQ6OmNhbGxfb25jZShmbGFn
LCBbXSB7Ci0gICAgICAgIGlmIChbTlNUaHJlYWQgaXNNYWluVGhyZWFkXSB8fCBsaW5rZWRPbk9y
QWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoSW5pdGlhbGl6ZVdlYktpdDJNYWluVGhyZWFkQXNz
ZXJ0aW9uKSkKKyAgICAgICAgaWYgKFtOU1RocmVhZCBpc01haW5UaHJlYWRdIHx8IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkluaXRpYWxpemVXZWJL
aXQyTWFpblRocmVhZEFzc2VydGlvbikpCiAgICAgICAgICAgICBydW5Jbml0aWFsaXphdGlvbkNv
ZGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgV29ya1F1ZXVlOjptYWluKCkuZGlzcGF0
Y2hTeW5jKFtdIHsgcnVuSW5pdGlhbGl6YXRpb25Db2RlKCk7IH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAppbmRleCBiYWEw
MTI1NzA3NzdhZWQyMTIxNWYxM2JiNDNmYjViYTEzOGY2OTU5Li5hNTJhZGMwMTdjZTI3MDc1MTkx
ZjEzNzk5ZDJhYTVjOWM3NWU0OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNjIsOSArNjIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGdldFByb2Nlc3NJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBib29sIGdldENsaWVudElkZW50aWZpZXIoU3RyaW5n
JiBjbGllbnRJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50QnVuZGxlSWRl
bnRpZmllcihTdHJpbmcmIGNsaWVudEJ1bmRsZUlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgYm9v
bCBnZXRDbGllbnRTREtWZXJzaW9uKHVpbnQzMl90JiBjbGllbnRTREtWZXJzaW9uKTsKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0Q2xpZW50UHJvY2Vzc05hbWUoU3RyaW5nJiBjbGllbnRQcm9jZXNzTmFt
ZSk7Ci0gICAgdmlydHVhbCBib29sIGdldExpbmtlZE9uT3JBZnRlck92ZXJyaWRlKHN0ZDo6b3B0
aW9uYWw8TGlua2VkT25PckFmdGVyT3ZlcnJpZGU+Jik7CisgICAgdmlydHVhbCBib29sIGdldENs
aWVudFNES0FsaWduZWRCZWhhdmlvcnMoU0RLQWxpZ25lZEJlaGF2aW9ycyYpOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YShIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEpOwogCiBwcm90ZWN0ZWQ6CkBAIC0xMzUsMTAgKzEz
NCw3IEBAIHZvaWQgWFBDU2VydmljZUluaXRpYWxpemVyKE9TT2JqZWN0UHRyPHhwY19jb25uZWN0
aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfCiAgICAgLy8gVGhlIGhvc3QgcHJvY2VzcyBt
YXkgbm90IGhhdmUgYSBidW5kbGUgaWRlbnRpZmllciAoZS5nLiBhIGNvbW1hbmQgbGluZSBhcHAp
LCBzbyBkb24ndCByZXF1aXJlIG9uZS4KICAgICBkZWxlZ2F0ZS5nZXRDbGllbnRCdW5kbGVJZGVu
dGlmaWVyKHBhcmFtZXRlcnMuY2xpZW50QnVuZGxlSWRlbnRpZmllcik7CiAgICAgCi0gICAgZGVs
ZWdhdGUuZ2V0TGlua2VkT25PckFmdGVyT3ZlcnJpZGUocGFyYW1ldGVycy5jbGllbnRMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZSk7Ci0KLSAgICBpZiAoIWRlbGVnYXRlLmdldENsaWVudFNES1ZlcnNp
b24ocGFyYW1ldGVycy5jbGllbnRTREtWZXJzaW9uKSkKLSAgICAgICAgZXhpdChFWElUX0ZBSUxV
UkUpOworICAgIGRlbGVnYXRlLmdldENsaWVudFNES0FsaWduZWRCZWhhdmlvcnMocGFyYW1ldGVy
cy5jbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKTsKIAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyOwogICAgIGlmICghZGVsZWdhdGUuZ2V0UHJvY2Vzc0lk
ZW50aWZpZXIocHJvY2Vzc0lkZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRy
eVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2Nv
YS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IGNiNzI0MGQ4NWQyNWUx
NzMxYzNkNDZlYjM2YWU3Y2Y3Njg2NDhlNjMuLjYzNjhjZjk2ZWE5NjUyNzJjMWNjN2I3Nzk0ZmFl
MzI0ODAwNTg4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2Uv
WFBDU2VydmljZUVudHJ5UG9pbnQubW0KQEAgLTgyLDIwICs4MiwxNSBAQCBib29sIFhQQ1NlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlOjpnZXRDbGllbnRCdW5kbGVJZGVudGlmaWVyKFN0cmluZyYg
Y2xpZW50QnVuZAogICAgIHJldHVybiAhY2xpZW50QnVuZGxlSWRlbnRpZmllci5pc0VtcHR5KCk7
CiB9CiAKLWJvb2wgWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU6OmdldENsaWVudFNES1Zl
cnNpb24odWludDMyX3QmIGNsaWVudFNES1ZlcnNpb24pCitib29sIFhQQ1NlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlOjpnZXRDbGllbnRTREtBbGlnbmVkQmVoYXZpb3JzKFNES0FsaWduZWRCZWhh
dmlvcnMmIGJlaGF2aW9ycykKIHsKLSAgICBhdXRvIHZlcnNpb24gPSBwYXJzZUludGVnZXI8dWlu
dDMyX3Q+KHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcobV9pbml0aWFsaXplck1lc3NhZ2UsICJj
bGllbnQtc2RrLXZlcnNpb24iKSk7Ci0gICAgY2xpZW50U0RLVmVyc2lvbiA9IHZlcnNpb24udmFs
dWVfb3IoMCk7Ci0gICAgcmV0dXJuIHZlcnNpb24uaGFzX3ZhbHVlKCk7Ci19CisgICAgc2l6ZV90
IGxlbmd0aCA9IDA7CisgICAgYXV0byBiZWhhdmlvckRhdGEgPSB4cGNfZGljdGlvbmFyeV9nZXRf
ZGF0YShtX2luaXRpYWxpemVyTWVzc2FnZSwgImNsaWVudC1zZGstYWxpZ25lZC1iZWhhdmlvcnMi
LCAmbGVuZ3RoKTsKKyAgICBpZiAoIWxlbmd0aCB8fCAhYmVoYXZpb3JEYXRhKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3RoID09IGJlaGF2aW9ycy5zdG9y
YWdlTGVuZ3RoSW5CeXRlcygpKTsKKyAgICBtZW1jcHkoYmVoYXZpb3JzLnN0b3JhZ2UoKSwgYmVo
YXZpb3JEYXRhLCBsZW5ndGgpOwogCi1ib29sIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRl
OjpnZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZShzdGQ6Om9wdGlvbmFsPExpbmtlZE9uT3JBZnRl
ck92ZXJyaWRlPiYgbGlua2VkT25PckFmdGVyT3ZlcnJpZGUpCi17Ci0gICAgYXV0byBsaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZVZhbHVlID0geHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKG1faW5pdGlh
bGl6ZXJNZXNzYWdlLCAiY2xpZW50LWxpbmtlZC1vbi1vci1hZnRlci1vdmVycmlkZSIpOwotICAg
IGlmIChsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlKQotICAgICAgICBsaW5rZWRPbk9yQWZ0
ZXJPdmVycmlkZSA9IHhwY19ib29sX2dldF92YWx1ZShsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZh
bHVlKSA/IExpbmtlZE9uT3JBZnRlck92ZXJyaWRlOjpBZnRlckV2ZXJ5dGhpbmcgOiBMaW5rZWRP
bk9yQWZ0ZXJPdmVycmlkZTo6QmVmb3JlRXZlcnl0aGluZzsKLSAgICBlbHNlCi0gICAgICAgIGxp
bmtlZE9uT3JBZnRlck92ZXJyaWRlID0gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmNwcAppbmRleCA2YTlmMmVmMjdlNGU2YzBkYTU3ZDFkYmM0ZDI2ZDkyMmZmNzUxOTkx
Li5mODNkMDFhMjA0M2FlZTVkNTMxYjdmYmI1ZjMzMDFkYmIxNWU3YjI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKQEAg
LTQ0LDEzICs0NCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogYm9vbCBkZWZhdWx0UGFzc2l2
ZVRvdWNoTGlzdGVuZXJzQXNEZWZhdWx0T25Eb2N1bWVudCgpCiB7Ci0gICAgc3RhdGljIGJvb2wg
cmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdERlZmF1bHRzVG9Q
YXNzaXZlVG91Y2hMaXN0ZW5lcnNPbkRvY3VtZW50KTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQg
PSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEZWZh
dWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogYm9vbCBkZWZhdWx0Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZCgpCiB7Ci0g
ICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzSU1EYigp
ICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0SU1EYkNTU09NVmll
d1Njcm9sbGluZ1F1aXJrKTsKKyAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNJTURiKCkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihT
REtBbGlnbmVkQmVoYXZpb3I6Ok5vSU1EYkNTU09NVmlld1Njcm9sbGluZ1F1aXJrKTsKICAgICBy
ZXR1cm4gIXJlc3VsdDsKIH0KIApAQCAtNjcsMTMgKzY3LDEzIEBAIGJvb2wgZGVmYXVsdEFsdGVy
bmF0ZUZvcm1Db250cm9sRGVzaWduRW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVXaGVl
bExpc3RlbmVyc0FzRGVmYXVsdE9uRG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2
ZVdoZWVsTGlzdGVuZXJzT25Eb2N1bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlu
a2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNU
b1Bhc3NpdmVXaGVlbExpc3RlbmVyc09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIGJvb2wgZGVmYXVsdFdoZWVsRXZlbnRHZXN0dXJlc0JlY29tZU5vbkJsb2NraW5nKCkKIHsK
LSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmly
c3RUaGF0QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2luZyk7CisgICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6QWxsb3dzV2hlZWxFdmVudEdlc3R1cmVzVG9CZWNvbWVOb25CbG9ja2lu
Zyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTExLDcgKzExMSw3IEBAIGJvb2wgZGVm
YXVsdEFwcGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJsZWQoKQogYm9vbCBkZWZhdWx0T2ZmbGlu
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBzdGF0aWMgYm9vbCBuZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0KTsKKyAgICBzdGF0aWMgYm9vbCBu
ZXdTREsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9y
OjpBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQpOwogICAgIHJldHVybiAhbmV3U0RL
OwogI2Vsc2UKICAgICAvLyBGSVhNRTogT3RoZXIgcGxhdGZvcm1zIHNob3VsZCBjb25zaWRlciB0
dXJuaW5nIHRoaXMgb2ZmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggNWViYzViOGE3NDliZmVjYjRjYjUyN2M1ZDQyYzhjOTU4ZjY3M2Y4OC4uMmQyY2E3MDFj
OTA5MjYxM2Y5NmM3YWIxMDJmZTJhMmYyMjRkOGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBXS1BhZ2VSZWxvYWQo
V0tQYWdlUmVmIHBhZ2VSZWYpCiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwogICAgIE9wdGlvblNl
dDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9hZE9wdGlvbnM7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhFeHBpcmVk
T25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikpCiAgICAg
ICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJlZE9ubHkp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KaW5kZXggOTA0MzQ1NWE1ZjYxODZmM2ZmOGFmNzk4MDdlMTk0MjRlYjBk
ZDhmYy4uNjU4ZGNmMDcxYTg1MGFhZjQ0MjM0YzJlMGMyZTRiNDE2M2YyNzc5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTQ5OCw4ICs0OTgsNyBAQCArICh2b2lkKV9mb3JjZUdhbWVDb250cm9sbGVyRnJhbWV3b3JrCiAK
ICsgKHZvaWQpX3NldExpbmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZwogewotICAg
IHNldEFwcGxpY2F0aW9uU0RLVmVyc2lvbigwKTsKLSAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QmVmb3JlRXZlcnl0aGluZyk7CisgICAgZGlz
YWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMoKTsKIH0KIAogKyAodm9pZClfc2V0TGlua2VkT25P
ckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcKQEAgLTUwOSw4ICs1MDgsNyBAQCArICh2b2lkKV9z
ZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZwogCiArICh2b2lkKV9zZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nCiB7Ci0gICAgc2V0QXBwbGljYXRpb25TREtWZXJzaW9uKHN0
ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Ci0gICAgc2V0TGlua2VkT25PckFm
dGVyT3ZlcnJpZGUoTGlua2VkT25PckFmdGVyT3ZlcnJpZGU6OkFmdGVyRXZlcnl0aGluZyk7Cisg
ICAgZW5hYmxlQWxsU0RLQWxpZ25lZEJlaGF2aW9ycygpOwogfQogCiArICh2b2lkKV9zZXRDYXB0
aXZlUG9ydGFsTW9kZUVuYWJsZWRHbG9iYWxseUZvclRlc3Rpbmc6KEJPT0wpaXNFbmFibGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAx
ODNmNGZjMjgzYzM0Nzg1MTgxOWViNjc1Y2VjOGMyODY2MTc2ZDE4Li5hYjA3NGNiNGIzMzEwNGY1
Yjg5N2FlOWNjYWI0Mjk4MWU0ZmUyNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI0MiwxMyArMjQyLDEzIEBAIC0gKEJPT0wpX2lz
VmFsaWQKIAogc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5
YmFjaygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjayA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhQaWN0dXJl
SW5QaWN0dXJlTWVkaWFQbGF5YmFjayk7CisgICAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OlBpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKICAg
ICByZXR1cm4gc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjazsKIH0KIAog
c3RhdGljIGJvb2wgc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmls
ZVVSTHMgPSAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzQ2FyZGlvZ3JhbSgpIHx8IFdlYkNv
cmU6OklPU0FwcGxpY2F0aW9uOjppc05pa2UoKSkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXREaXNhbGxvd3NTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVS
THMgPSAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzQ2FyZGlvZ3JhbSgpIHx8IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc05pa2UoKSkgJiYgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRpc2FsbG93c1NldHRpbmdBbnlYSFJIZWFkZXJGcm9t
RmlsZVVSTHMpOwogICAgIHJldHVybiBzaG91bGRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJGcm9t
RmlsZVVSTHM7CiB9CiAKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxv
d1NldHRpbmdBbnlYSFJIZWFkZXJGcm9tRmlsZVVSTHMoKQogc3RhdGljIGJvb2wgc2hvdWxkUmVx
dWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8oKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRv
TG9hZFZpZGVvKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xv
YWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZp
b3I6OlJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbyk7CiAgICAgcmV0dXJuIHNob3VsZFJl
cXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVvOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBA
IC0yNjYsNyArMjY2LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVxdWlyZVVzZXJHZXN0dXJlVG9M
b2FkVmlkZW8oKQogCiBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzKCkK
IHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2Vk
T25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhhdFJlc3RyaWN0c0Jhc2VVUkxTY2hlbWVzKTsK
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzID0gbGlua2VkT25P
ckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UmVzdHJpY3RzQmFzZVVS
TFNjaGVtZXMpOwogICAgIHJldHVybiBzaG91bGRSZXN0cmljdEJhc2VVUkxTY2hlbWVzOwogfQog
CkBAIC0zNDQsNyArMzQ0LDcgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9u
OihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogICAgICAgICBXS1Byb2Nl
c3NQb29sICpyZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sID0gW3JlbGF0ZWRXZWJWaWV3LT5fY29u
ZmlndXJhdGlvbiBwcm9jZXNzUG9vbF07CiAgICAgICAgIGlmIChwcm9jZXNzUG9vbCAmJiBwcm9j
ZXNzUG9vbCAhPSByZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sKQogICAgICAgICAgICAgW05TRXhj
ZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlJlbGF0ZWQg
d2ViIHZpZXcgJUAgaGFzIHByb2Nlc3MgcG9vbCAlQCBidXQgY29uZmlndXJhdGlvbiBzcGVjaWZp
ZXMgYSBkaWZmZXJlbnQgcHJvY2VzcyBwb29sICVAIiwgcmVsYXRlZFdlYlZpZXcsIHJlbGF0ZWRX
ZWJWaWV3UHJvY2Vzc1Bvb2wsIGNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2xdOwotICAgICAgICBp
ZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBb
X2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gJiYgbGlua2VkT25PckFmdGVyKFNES1Zl
cnNpb246OkZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JSZWxhdGVkV2ViVmlld3NVc2luZ0RpZmZlcmVu
dERhdGFTdG9yZXMpKQorICAgICAgICBpZiAoW3JlbGF0ZWRXZWJWaWV3LT5fY29uZmlndXJhdGlv
biB3ZWJzaXRlRGF0YVN0b3JlXSAhPSBbX2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0g
JiYgbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhj
ZXB0aW9uc0ZvclJlbGF0ZWRXZWJWaWV3c1VzaW5nRGlmZmVyZW50RGF0YVN0b3JlcykpCiAgICAg
ICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9y
bWF0OkAiUmVsYXRlZCB3ZWIgdmlldyAlQCBoYXMgZGF0YSBzdG9yZSAlQCBidXQgY29uZmlndXJh
dGlvbiBzcGVjaWZpZXMgYSBkaWZmZXJlbnQgZGF0YSBzdG9yZSAlQCIsIHJlbGF0ZWRXZWJWaWV3
LCBbcmVsYXRlZFdlYlZpZXctPl9jb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdLCBbX2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV1dOwogCiAgICAgICAgIFtfY29uZmlndXJhdGlv
biBzZXRQcm9jZXNzUG9vbDpyZWxhdGVkV2ViVmlld1Byb2Nlc3NQb29sXTsKQEAgLTM2OCw3ICsz
NjgsNyBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgX3ZpZXdwb3J0TWV0YVRhZ1dpZHRoID0g
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKICAgICBfaW5pdGlhbFNjYWxl
RmFjdG9yID0gMTsKICAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IGRlZmF1bHRBbGxv
d3NWaWV3cG9ydFNocmlua1RvRml0OwotICAgIF9hbGxvd3NMaW5rUHJldmlldyA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQp
OworICAgIF9hbGxvd3NMaW5rUHJldmlldyA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlv
cihTREtBbGlnbmVkQmVoYXZpb3I6OkxpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCk7CiAKICNp
ZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogICAgIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkID0g
Tk87CkBAIC01MTUsNyArNTE1LDcgQEAgLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjoo
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgogICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRBbGxvd1NldHRpbmdBbnlYSFJIZWFkZXJG
cm9tRmlsZVVSTHMoc2hvdWxkQWxsb3dTZXR0aW5nQW55WEhSSGVhZGVyRnJvbUZpbGVVUkxzKCkp
OwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTaG91bGREZWNpZGVQ
b2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyghIVtfY29uZmlndXJhdGlvbiBfc2hv
dWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXddKTsKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNl
cygpLT5zZXREZXZpY2VPcmllbnRhdGlvblBlcm1pc3Npb25BUElFbmFibGVkKGxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1p
c3Npb25BUEkpKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0RGV2
aWNlT3JpZW50YXRpb25QZXJtaXNzaW9uQVBJRW5hYmxlZChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRo
QmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpTdXBwb3J0c0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uUGVybWlzc2lvbkFQSSkpOwogI2VuZGlmCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRTeXN0ZW1QcmV2aWV3RW5h
YmxlZCghIVtfY29uZmlndXJhdGlvbiBfc3lzdGVtUHJldmlld0VuYWJsZWRdKTsKQEAgLTU3MCw3
ICs1NzAsNyBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnByZWZlcmVuY2VzKCktPnNldFNhbXBsZWRQYWdlVG9wQ29sb3JNYXhEaWZmZXJlbmNlKFtfY29u
ZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2VdKTsKICAgICBwYWdl
Q29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhl
aWdodChbX2NvbmZpZ3VyYXRpb24gX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHRdKTsKIAot
ICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2hlcmVTaXRlU3BlY2lm
aWNRdWlya3NBcmVFbmFibGVkQnlEZWZhdWx0KSkKKyAgICBpZiAoIWxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNpdGVTcGVjaWZpY1F1aXJrc0FyZUVu
YWJsZWRCeURlZmF1bHQpKQogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMo
KS0+c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoZmFsc2UpOwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTg4MCw3ICs4ODAsNyBAQCAtIChXS05hdmlnYXRpb24gKilyZWxvYWQKIHsK
ICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlJlbG9hZE9w
dGlvbj4gcmVsb2FkT3B0aW9uczsKLSAgICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aEV4cGlyZWRPbmx5UmVsb2FkQmVoYXZpb3IpKQorICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpFeHBpcmVkT25seVJlbG9h
ZEJlaGF2aW9yKSkKICAgICAgICAgcmVsb2FkT3B0aW9ucy5hZGQoV2ViQ29yZTo6UmVsb2FkT3B0
aW9uOjpFeHBpcmVkT25seSk7CiAKICAgICByZXR1cm4gd3JhcHBlcihfcGFnZS0+cmVsb2FkKHJl
bG9hZE9wdGlvbnMpKTsKQEAgLTEyNTAsNyArMTI1MCw3IEBAIC0gKHZvaWQpdGFrZVNuYXBzaG90
V2l0aENvbmZpZ3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25m
aWd1CiAgICAgICAgIH1dOwogICAgIH07CiAKLSAgICBpZiAoKHNuYXBzaG90Q29uZmlndXJhdGlv
biAmJiAhc25hcHNob3RDb25maWd1cmF0aW9uLmFmdGVyU2NyZWVuVXBkYXRlcykgfHwgIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhTbmFwc2hvdEFmdGVyU2NyZWVuVXBkYXRl
cykpIHsKKyAgICBpZiAoKHNuYXBzaG90Q29uZmlndXJhdGlvbiAmJiAhc25hcHNob3RDb25maWd1
cmF0aW9uLmFmdGVyU2NyZWVuVXBkYXRlcykgfHwgIWxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhh
dmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlNuYXBzaG90QWZ0ZXJTY3JlZW5VcGRhdGVzKSkgewog
ICAgICAgICBjYWxsU25hcHNob3RSZWN0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmln
dXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCmluZGV4IGQzMTU2MjNmMzQyYjBjZDA1MDJiMGU1ZjYxMmMzYWU3MWZm
NWQ1OWIuLjEyYjljNTA3MmVkNzMyOGQ0MGM0ZjNlY2M3YWE2MjQ5ZmNhNmRmODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIF9XS0RyYWdMaWZ0RGVs
YXkgdG9EcmFnTGlmdERlbGF5KE5TVUludGVnZXIgdmFsdWUpCiBzdGF0aWMgYm9vbCBkZWZhdWx0
U2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKQogewogI2lm
IFVTRShRVUlDS19MT09LKQotICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9u
T3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFRoYXREZWNpZGVzUG9saWN5QmVmb3JlTG9hZGluZ1F1
aWNrTG9va1ByZXZpZXcpOworICAgIHN0YXRpYyBib29sIHNob3VsZERlY2lkZSA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlY2lkZXNQb2xpY3lC
ZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldyk7CiAgICAgcmV0dXJuIHNob3VsZERlY2lkZTsK
ICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAzLDcgKzIwMyw3IEBAIC0gKGluc3RhbmNl
dHlwZSlpbml0CiAgICAgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4g
PSAhX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s7CiAgICAgX21lZGlhRGF0YUxvYWRzQXV0b21h
dGljYWxseSA9IF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrOwogI2lmICFQTEFURk9STShXQVRD
SE9TKQotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoTWVkaWFU
eXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjaykpCisgICAgaWYgKGxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok1lZGlhVHlwZXNSZXF1aXJp
bmdVc2VyQWN0aW9uRm9yUGxheWJhY2spKQogICAgICAgICBfbWVkaWFUeXBlc1JlcXVpcmluZ1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBdWRpbzsKICAgICBl
bHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDU2YTBlMGQ4Mzk5MjhkYWU4MTJmMDZjYjI4
MjhjMjIzNjViNjdjZTkuLmUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtMTQ5LDcgKzE0OSw3IEBAICsgKFdLV2Vic2l0ZURhdGFTdG9y
ZSAqKW5vblBlcnNpc3RlbnREYXRhU3RvcmUKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKLSAg
ICBpZiAobGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFdLV2Vic2l0ZURhdGFT
dG9yZUluaXRSZXR1cm5pbmdOaWwpKQorICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXS1dlYnNpdGVEYXRhU3RvcmVJbml0UmV0dXJuaW5n
TmlsKSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TR2VuZXJpY0V4Y2VwdGlvbiBmb3Jt
YXQ6QCJDYWxsaW5nIFtXS1dlYnNpdGVEYXRhU3RvcmUgaW5pdF0gaXMgbm90IHN1cHBvcnRlZC4i
XTsKICAgICAKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggZGM4OTg4MWQ3NWQ4
MzVmNjQ3ZDQyYThkNGIxMDNmMTZmZTkwNjgzYy4uMTg5ZjlmY2I1ZGM5NDFjNGQxYzhlYTIxODhj
ZTFmMDg4OWU0MDRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW0KQEAgLTY0Niw3ICs2NDYsNyBAQCAtIChVSUVkZ2VJbnNldHMpX2NvbnRl
bnRJbnNldHNGcm9tU3lzdGVtTWluaW11bUxheW91dE1hcmdpbnMKIAogLSAoVUlFZGdlSW5zZXRz
KV9jb21wdXRlZE9ic2N1cmVkSW5zZXQKIHsKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtW
ZXJzaW9uOjpGaXJzdFdoZXJlU2Nyb2xsVmlld0NvbnRlbnRJbnNldHNBcmVOb3RPYnNjdXJpbmdJ
bnNldHMpKSB7CisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxp
Z25lZEJlaGF2aW9yOjpTY3JvbGxWaWV3Q29udGVudEluc2V0c0FyZU5vdE9ic2N1cmluZ0luc2V0
cykpIHsKICAgICAgICAgLy8gRm9yIGJpbmFyeSBjb21wYWJpbGl0eSB3aXRoIHRoaXJkIHBhcnR5
IGFwcHMsIHRyZWF0IHNjcm9sbCB2aWV3IGNvbnRlbnQgaW5zZXRzIGFzIG9ic2N1cmluZyBpbnNl
dHMgd2hlbiB0aGUgYXBwIGlzIGNvbXBpbGVkCiAgICAgICAgIC8vIGFnYWluc3QgYSBXZWJLaXQg
dmVyc2lvbiB3aXRob3V0IHRoZSBmaXggaW4gcjIyOTY0MS4KICAgICAgICAgcmV0dXJuIFtzZWxm
IF9jb21wdXRlZENvbnRlbnRJbnNldF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IGQyOWNjNWNkMzk5MWU4YTU5YWNlOTgwYTExZGYw
MzFkMjI3NDYyMjAuLjUxYjliZGIwZjdmYjQyOWM2ZjUyYWRmYzJmMjE2ZWI3ZDI0YTRmMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBA
IC0xMTg2LDcgKzExODYsNyBAQCAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfd2ViX2RyYWdE
ZXN0aW5hdGlvbkFjdGlvbkZvckRyYWdnaW5nSW5mbzooaWQgPE5TRHJhZwogICAgIGlmIChbdWlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRyYWdEZXN0aW5h
dGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86KV0pCiAgICAgICAgIHJldHVybiBbdWlEZWxl
Z2F0ZSBfd2ViVmlldzpzZWxmIGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0lu
Zm86ZHJhZ2dpbmdJbmZvXTsKIAotICAgIGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aERyb3BUb05hdmlnYXRlRGlzYWxsb3dlZEJ5RGVmYXVsdCkpCisgICAgaWYgKCFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEcm9wVG9O
YXZpZ2F0ZURpc2FsbG93ZWRCeURlZmF1bHQpKQogICAgICAgICByZXR1cm4gV0tEcmFnRGVzdGlu
YXRpb25BY3Rpb25Bbnk7CiAKICAgICByZXR1cm4gV0tEcmFnRGVzdGluYXRpb25BY3Rpb25Bbnkg
JiB+V0tEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLm1tCmluZGV4IGQ5ODI2NjJiOWZiYjdmZTNiNmZhODU4ZjU1ZWQ1ZDI4MGRlNDE1MWYu
LjY1OTQwMjNlM2UzNWMwZjIwMjE2OTk4NWNkMzBhNDdiNTc3NzQwZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTI4Niw3ICsyODYsNyBAQCAtICh2b2lkKWluc3Bl
Y3RvcldLV2ViVmlld1JlbG9hZDooV0tJbnNwZWN0b3JXS1dlYlZpZXcgKil3ZWJWaWV3CiAgICAg
ICAgIHJldHVybjsKIAogICAgIE9wdGlvblNldDxXZWJDb3JlOjpSZWxvYWRPcHRpb24+IHJlbG9h
ZE9wdGlvbnM7Ci0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhF
eHBpcmVkT25seVJlbG9hZEJlaGF2aW9yKSkKKyAgICBpZiAobGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RXhwaXJlZE9ubHlSZWxvYWRCZWhhdmlvcikp
CiAgICAgICAgIHJlbG9hZE9wdGlvbnMuYWRkKFdlYkNvcmU6OlJlbG9hZE9wdGlvbjo6RXhwaXJl
ZE9ubHkpOwogCiAgICAgX2luc3BlY3RlZFBhZ2UtPnJlbG9hZChyZWxvYWRPcHRpb25zKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2NvY29hL1Byb2Nlc3NM
YXVuY2hlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2Ev
UHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0KaW5kZXggNDllYTlmZjNlMjU3MjVhYTlmMDFlZGQ2ZTg3
ZjBmZTNmMzMwNWQ5ZC4uOTcyZGU2M2MxMzEzYzkwZTRhOGQxZTg1ODliZWU2YmIyMjMyM2E4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vz
c0xhdW5jaGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIv
Y29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0KQEAgLTIxNiw3ICsyMTYsNiBAQCB2b2lkIFBy
b2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
c3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtaWRlbnRpZmllciIsICFjbGll
bnRJZGVudGlmaWVyLmlzRW1wdHkoKSA/IGNsaWVudElkZW50aWZpZXIudXRmOCgpLmRhdGEoKSA6
ICpfTlNHZXRQcm9nbmFtZSgpKTsKICAgICB4cGNfZGljdGlvbmFyeV9zZXRfc3RyaW5nKGJvb3Rz
dHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtYnVuZGxlLWlkZW50aWZpZXIiLCBXZWJDb3JlOjph
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKLSAgICB4cGNfZGlj
dGlvbmFyeV9zZXRfc3RyaW5nKGJvb3RzdHJhcE1lc3NhZ2UuZ2V0KCksICJjbGllbnQtc2RrLXZl
cnNpb24iLCBTdHJpbmc6Om51bWJlcihhcHBsaWNhdGlvblNES1ZlcnNpb24oKSkudXRmOCgpLmRh
dGEoKSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdl
dCgpLCAicHJvY2Vzcy1pZGVudGlmaWVyIiwgU3RyaW5nOjpudW1iZXIobV9sYXVuY2hPcHRpb25z
LnByb2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCkpLnV0ZjgoKS5kYXRhKCkpOwogICAgIHhwY19k
aWN0aW9uYXJ5X3NldF9zdHJpbmcoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInVpLXByb2Nlc3Mt
bmFtZSIsIFtbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nlc3NOYW1lXSBVVEY4U3Ry
aW5nXSk7CiAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290c3RyYXBNZXNzYWdlLmdl
dCgpLCAic2VydmljZS1uYW1lIiwgbmFtZSk7CkBAIC0yMjcsOCArMjI2LDggQEAgdm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICB4cGNfZGljdGlvbmFyeV9zZXRf
ZmQoYm9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgInN0ZGVyciIsIFNUREVSUl9GSUxFTk8pOwogICAg
IH0KICAgICAKLSAgICBpZiAoYXV0byBsaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZVZhbHVlID0gbGlu
a2VkT25PckFmdGVyT3ZlcnJpZGUoKSkKLSAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X2Jvb2wo
Ym9vdHN0cmFwTWVzc2FnZS5nZXQoKSwgImNsaWVudC1saW5rZWQtb24tb3ItYWZ0ZXItb3ZlcnJp
ZGUiLCAqbGlua2VkT25PckFmdGVyT3ZlcnJpZGVWYWx1ZSA9PSBMaW5rZWRPbk9yQWZ0ZXJPdmVy
cmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICBhdXRvIHNka0JlaGF2aW9ycyA9IHNka0FsaWdu
ZWRCZWhhdmlvcnMoKTsKKyAgICB4cGNfZGljdGlvbmFyeV9zZXRfZGF0YShib290c3RyYXBNZXNz
YWdlLmdldCgpLCAiY2xpZW50LXNkay1hbGlnbmVkLWJlaGF2aW9ycyIsIHNka0JlaGF2aW9ycy5z
dG9yYWdlKCksIHNka0JlaGF2aW9ycy5zdG9yYWdlTGVuZ3RoSW5CeXRlcygpKTsKIAogICAgIGF1
dG8gZXh0cmFJbml0aWFsaXphdGlvbkRhdGEgPSBhZG9wdE9TT2JqZWN0KHhwY19kaWN0aW9uYXJ5
X2NyZWF0ZShudWxscHRyLCBudWxscHRyLCAwKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAwYjYxZjlhNzFlNDhmYjU4MThlY2Vj
OTYwZWZlMTEzNzdkMjQ2OTA4Li5iY2UxOTQyNjI5NDNiM2IxMDU2MTg0ZDk1NDM2ZmI0ZjE1ZDZm
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5OjpoYXNTY3JvbGxhYmxlT3Jab29tZWRNYWluRnJhbWUoKSBjb25zdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRTdXBwb3J0c092ZXJmbG93SGlkZGVuT25NYWluRnJhbWUpKQorICAgIGlm
IChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNFdmVudGJyaXRlKCkgJiYgIWxpbmtlZE9uT3JB
ZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlN1cHBvcnRzT3ZlcmZsb3dI
aWRkZW5Pbk1haW5GcmFtZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViZmNjOGI0NTk2NDY3NThi
YWMzMmI3MzU1NDYwNWE3YmJiOTJkODAuLmVjYThjMThjYzUxYTQwNjQ4NDVjNjg2NjY0NTU5YWYz
MWZhMWI4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MTM0OSw3ICsxMzQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5pdGlhbGl6ZVNhbmRi
b3hFeHRlbnNpb25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKICAgICB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFdpdGhvdXRVbmNvbmRpdGlvbmFsVW5pdmVyc2FsU2FuZGJveEV4dGVuc2lvbikpCisgICAgaWYg
KCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpOb1Vu
Y29uZGl0aW9uYWxVbml2ZXJzYWxTYW5kYm94RXh0ZW5zaW9uKSkKICAgICAgICAgd2lsbEFjcXVp
cmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRlbnNpb24ocHJvY2Vzcyk7CiAjZW5kaWYKIApA
QCAtMjY2Nyw3ICsyNjY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VWaWV3QmxhbmtJZlVu
cGFpbnRlZFNpbmNlTGFzdExvYWRDb21taXQoKQogewogICAgIGlmICghbV9oYXNVcGRhdGVkUmVu
ZGVyaW5nQWZ0ZXJEaWRDb21taXRMb2FkKSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAg
IHN0YXRpYyBib29sIHNob3VsZE1ha2VWaWV3QmxhbmsgPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVy
c2lvbjo6Rmlyc3RXaXRoQmxhbmtWaWV3T25KU1Byb21wdCk7CisgICAgICAgIHN0YXRpYyBib29s
IHNob3VsZE1ha2VWaWV3QmxhbmsgPSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RL
QWxpZ25lZEJlaGF2aW9yOjpCbGFua3NWaWV3T25KU1Byb21wdCk7CiAjZWxzZQogICAgICAgICBz
dGF0aWMgYm9vbCBzaG91bGRNYWtlVmlld0JsYW5rID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDc3YzRiZTc5NDNkMWIwMjQy
MmU3Njc2Mjc4YzIwZjhjMDk1M2IwNDkuLmRlNWQyMWQ1M2M2N2RlMGM1MDA5MDZmYTM0YzQ1OGQ0
ZGIyZTU2OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTIzNyw3ICsyMzcsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgICAgIGJvb2wgaXNT
YWZhcmkgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6aXNTYWZhcmkoKTsKICNlbmRpZgogICAg
ICAgICBpZiAoaXNTYWZhcmkpCi0gICAgICAgICAgICBzZXRMaW5rZWRPbk9yQWZ0ZXJPdmVycmlk
ZShMaW5rZWRPbk9yQWZ0ZXJPdmVycmlkZTo6QWZ0ZXJFdmVyeXRoaW5nKTsKKyAgICAgICAgICAg
IGVuYWJsZUFsbFNES0FsaWduZWRCZWhhdmlvcnMoKTsKICNlbmRpZgogICAgIH0pOwogCkBAIC0y
NzksNyArMjc5LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHVwZGF0ZUJhY2tGb3J3YXJk
Q2FjaGVDYXBhY2l0eSgpOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNMdXRyb24oKSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246
OkZpcnN0V2l0aFNoYXJlZE5ldHdvcmtQcm9jZXNzKSkgeworICAgIGlmIChXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNMdXRyb24oKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6U2hhcmVkTmV0d29ya1Byb2Nlc3MpKSB7CiAgICAgICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtdIHsKICAgICAgICAgICAgIGlmIChXZWJzaXRlRGF0YVN0b3JlOjpk
ZWZhdWx0RGF0YVN0b3JlRXhpc3RzKCkpCiAgICAgICAgICAgICAgICAgV2Vic2l0ZURhdGFTdG9y
ZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT50ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpOwpAQCAtMTE1
NCw3ICsxMTU0LDcgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKIAogICAgIGJvb2wgZW5hYmxl
UHJvY2Vzc1N3YXBPbkNyb3NzU2l0ZU5hdmlnYXRpb24gPSBwYWdlLT5wcmVmZXJlbmNlcygpLnBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uRW5hYmxlZCgpOwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0ZpcmVmb3goKSAm
JiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aFByb2Nlc3NTd2FwT25Dcm9z
c1NpdGVOYXZpZ2F0aW9uKSkKKyAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRmly
ZWZveCgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2
aW9yOjpQcm9jZXNzU3dhcE9uQ3Jvc3NTaXRlTmF2aWdhdGlvbikpCiAgICAgICAgIGVuYWJsZVBy
b2Nlc3NTd2FwT25Dcm9zc1NpdGVOYXZpZ2F0aW9uID0gZmFsc2U7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTcwNDUwYTk1YmE2
ZThhNDllZTVmYzgxZTExYjU1MDkxYmI5NGI2Mi4uNDM4MjE1NTMxNDRkNmYzMjZiMDk0Y2EyNGNk
M2Y1NTFjN2UzMTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCkBAIC0xMzIsOSArMTMyLDkgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6Omhhc1JlYWNo
ZWRQcm9jZXNzQ291bnRMaW1pdCgpCiBzdGF0aWMgYm9vbCBpc01haW5UaHJlYWRPckNoZWNrRGlz
YWJsZWQoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgcmV0dXJuIExJS0VMWShS
dW5Mb29wOjppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdp
dGhNYWluVGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4g
TElLRUxZKFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2
aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBh
Z2VQcm94eSk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgcmV0dXJuIExJS0VMWShSdW5Mb29w
Ojppc01haW4oKSkgfHwgIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNYWlu
VGhyZWFkUmVsZWFzZUFzc2VydGlvbkluV2ViUGFnZVByb3h5KTsKKyAgICByZXR1cm4gTElLRUxZ
KFJ1bkxvb3A6OmlzTWFpbigpKSB8fCAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNE
S0FsaWduZWRCZWhhdmlvcjo6TWFpblRocmVhZFJlbGVhc2VBc3NlcnRpb25JbldlYlBhZ2VQcm94
eSk7CiAjZWxzZQogICAgIHJldHVybiBSdW5Mb29wOjppc01haW4oKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAzYjQ2N2Y0NWI5
ODAzYjYwM2QyYTVlZDZhMDg3NTViN2ZiNTQxOGRkLi44YjY3MGRhZTQ5YzMyMmY1YmZiMDI4NzZj
ZTQyZDQzY2M0YzE3NWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQpAQCAtMjAwLDcgKzIwMCw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAg
ICAgW3NlbGYgYWRkU3VidmlldzpfZml4ZWRDbGlwcGluZ1ZpZXcuZ2V0KCldOwogICAgIFtfZml4
ZWRDbGlwcGluZ1ZpZXcgYWRkU3Vidmlldzpfcm9vdENvbnRlbnRWaWV3LmdldCgpXTsKIAotICAg
IGlmICghbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aExhenlHZXN0dXJlUmVj
b2duaXplckluc3RhbGxhdGlvbikpCisgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVo
YXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMYXp5R2VzdHVyZVJlY29nbml6ZXJJbnN0YWxsYXRp
b24pKQogICAgICAgICBbc2VsZiBzZXRVcEludGVyYWN0aW9uXTsKICAgICBbc2VsZiBzZXRVc2Vy
SW50ZXJhY3Rpb25FbmFibGVkOllFU107CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCAtIChpbnN0YW5j
ZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sJilwcgogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZDopIG5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmlj
YXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfc2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6KSBuYW1lOlVJU2NyZWVuQ2Fw
dHVyZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OltVSVNjcmVlbiBtYWluU2NyZWVuXV07
CiAKLSAgICBpZiAoV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzRXZlcm5vdGUoKSAmJiAhbGlu
a2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92
ZXJyaWRlS2V5Q29tbWFuZHMpKQorICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNF
dmVybm90ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJl
aGF2aW9yOjpXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpKQogICAgICAg
ICBjbGFzc19hZGRNZXRob2Qoc2VsZi5jbGFzcywgQHNlbGVjdG9yKGtleUNvbW1hbmRzKSwgcmVp
bnRlcnByZXRfY2FzdDxJTVA+KCZrZXlDb21tYW5kc1BsYWNlaG9sZGVySGFja0ZvckV2ZXJub3Rl
KSwgbWV0aG9kX2dldFR5cGVFbmNvZGluZyhjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChzZWxmLmNs
YXNzLCBAc2VsZWN0b3Ioa2V5Q29tbWFuZHMpKSkpOwogCiAgICAgcmV0dXJuIHNlbGY7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCAzZjExZmQxMjMyZTJiYzkwZjVlMGRlNjEyYWFhZTM1NTMyNGFjNWQ0Li5j
NjQ0MDFlOTQ5ZDg1NzNkZDEyMGUyMGQ3ZmUyODlmOGY4Mjc0OGY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTgxMjcsNyArODEyNyw3IEBAIC0gKEJPT0wpX3Nob3VsZFVzZUNvbnRleHRNZW51cwogICAg
ICAgICByZXR1cm4gTk87CiAjZW5kaWYKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJ
Q09OVEVYVE1FTlUpCi0gICAgcmV0dXJuIGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJz
dFRoYXRIYXNVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24pOworICAgIHJldHVybiBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpIYXNVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24pOwogI2VuZGlmCiAgICAgcmV0dXJuIE5POwogfQpAQCAtOTg4Myw3ICs5ODgz
LDcgQEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25Jc0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhj
b25zdCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQog
Ci0gICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RWZXJzaW9uV2l0aGlP
U0FwcHNPbk1hY09TKSkgeworICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9y
KFNES0FsaWduZWRCZWhhdmlvcjo6U3VwcG9ydHNpT1NBcHBzT25NYWNPUykpIHsKICAgICAgICAg
aWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0ZJRkFDb21wYW5pb24oKSAvLyA8cmRhcjov
L3Byb2JsZW0vNjcwOTM0ODc+CiAgICAgICAgICAgICB8fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNOb2dnaW4oKSAvLyA8cmRhcjovL3Byb2JsZW0vNjQ4MzAzMzU+CiAgICAgICAgICAgICB8
fCBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNPS0N1cGlkKCkgLy8gPHJkYXI6Ly9wcm9ibGVt
LzY1Njk4NDk2PgpAQCAtOTg5NSw3ICs5ODk1LDcgQEAgc3RhdGljIEJPT0wgYXBwbGljYXRpb25J
c0tub3duVG9JZ25vcmVNb3VzZUV2ZW50cyhjb25zdCBjaGFyKiAmd2FybmluZ1ZlcnNpb24pCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpG
aXJzdFRoYXRTZW5kc05hdGl2ZU1vdXNlRXZlbnRzKSkgeworICAgIGlmICghbGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6U2VuZHNOYXRpdmVNb3VzZUV2
ZW50cykpIHsKICAgICAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc1BvY2tldENp
dHkoKSAvLyA8cmRhcjovL3Byb2JsZW0vNjIyNzMwNzc+CiAgICAgICAgICAgICB8fCBXZWJDb3Jl
OjpJT1NBcHBsaWNhdGlvbjo6aXNFc3NlbnRpYWxTa2VsZXRvbigpIC8vIDxyZGFyOi8vcHJvYmxl
bS82MjY5NDUxOT4KICAgICAgICAgICAgIHx8IFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0VT
UE5GYW50YXN5U3BvcnRzKCkgLy8gPHJkYXI6Ly9wcm9ibGVtLzY0NjcxNTQzPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Nyb2xsVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1Njcm9sbFZpZXcubW0KaW5kZXggNzgxZDM2ZWQ4YTFlZjYy
YWJhNWQ1MDFjMDZlNmVlNmU4NWE1ZTgzNy4uNzE0NGIzMjM1M2JkNmVhN2U4MWNiYzI5NjA0NjY4
YjM0NDZjMDM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU2Ny
b2xsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTY3JvbGxWaWV3
Lm1tCkBAIC00MjIsNyArNDIyLDcgQEAgLSAoVUlFZGdlSW5zZXRzKV9zeXN0ZW1Db250ZW50SW5z
ZXQKICAgICAvLyB0byBpbmNsdWRlIGtleWJvYXJkIGluc2V0cyBpbiB0aGUgc3lzdGVtQ29udGVu
dEluc2V0LiBXZSBhbHdheXMgd2FudAogICAgIC8vIGtleWJvYXJkIGluc2V0cyBhcHBsaWVkLCBl
dmVuIHdoZW4gd2ViIGNvbnRlbnQgaGFzIGNob3NlbiB0byBkaXNhYmxlIGF1dG9tYXRpYwogICAg
IC8vIHNhZmUgYXJlYSBpbnNldCBhZGp1c3RtZW50LgotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIo
U0RLVmVyc2lvbjo6Rmlyc3RXaGVyZVVJU2Nyb2xsVmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5z
ZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNvbnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlv
ciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRBZGp1c3RtZW50TmV2ZXIpCisgICAgaWYgKGxp
bmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlVJU2Nyb2xs
Vmlld0RvZXNOb3RBcHBseUtleWJvYXJkSW5zZXRzVW5jb25kaXRpb25hbGx5KSAmJiBzZWxmLmNv
bnRlbnRJbnNldEFkanVzdG1lbnRCZWhhdmlvciA9PSBVSVNjcm9sbFZpZXdDb250ZW50SW5zZXRB
ZGp1c3RtZW50TmV2ZXIpCiAgICAgICAgIHN5c3RlbUNvbnRlbnRJbnNldC5ib3R0b20gKz0gX2tl
eWJvYXJkQm90dG9tSW5zZXRBZGp1c3RtZW50OwogCiAgICAgcmV0dXJuIHN5c3RlbUNvbnRlbnRJ
bnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIubW0KaW5kZXggNGRhNzJmNDU0NGUxMDAyMmZhYjdkOWYzZTA3OTYxNGU3OGM2
YzQ3OS4uMDFjODA3ZjYzOGJlY2Y0ODBmZWIxNTQ1ZmMyZWQwMDA2NDMzZmNkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIu
bW0KQEAgLTgyLDcgKzgyLDcgQEAgLSAodm9pZClzdGFydAogICAgIGlmICgrK19zdGFydENvdW50
ID4gMSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJz
aW9uOjpGaXJzdFRoYXRPYnNlcnZlc0NsYXNzUHJvcGVydHkpKQorICAgIGlmIChsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpPYnNlcnZlc0NsYXNzUHJv
cGVydHkpKQogICAgICAgICBbW1VJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzc10gYWRkT2JzZXJ2
ZXI6c2VsZiBmb3JLZXlQYXRoOkAiaXNQZW5jaWxJbnB1dEV4cGVjdGVkIiBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6bmlsXTsKIH0KIApAQCAtOTIsNyAr
OTIsNyBAQCAtICh2b2lkKXN0b3AKICAgICBpZiAoIV9zdGFydENvdW50IHx8IC0tX3N0YXJ0Q291
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lv
bjo6Rmlyc3RUaGF0T2JzZXJ2ZXNDbGFzc1Byb3BlcnR5KSkKKyAgICBpZiAobGlua2VkT25PckFm
dGVyU0RLV2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6T2JzZXJ2ZXNDbGFzc1Byb3Bl
cnR5KSkKICAgICAgICAgW1tVSVNjcmliYmxlSW50ZXJhY3Rpb24gY2xhc3NdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgZm9yS2V5UGF0aDpAImlzUGVuY2lsSW5wdXRFeHBlY3RlZCJdOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAwZTMy
OGIxM2YxNTlmNmIxMWQ5Yjc4MjYzOGUwY2ZhOTFiMzkxODkyLi5mZTEzNjY2MGUxMTcxZWE0NGIw
MTJjMWY2NjIyMjZiNjI3ZWE2YThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEzOTcsNyArMTM5Nyw3IEBAIHN0YXRpYyBib29sIGRl
c2t0b3BDbGFzc0Jyb3dzaW5nUmVjb21tZW5kZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1CiAgICAgICAgIGF1dG8gc2NyZWVuQ2xhc3MgPSBNR0dldFNJbnQzMkFuc3dlcihr
TUdRTWFpblNjcmVlbkNsYXNzLCBNR1NjcmVlbkNsYXNzUGFkMik7CiAgICAgICAgIHNob3VsZFJl
Y29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gc2NyZWVuQ2xhc3MgIT0gTUdTY3JlZW5DbGFz
c1BhZDMgJiYgc2NyZWVuQ2xhc3MgIT0gTUdTY3JlZW5DbGFzc1BhZDQgJiYgZGVza3RvcENsYXNz
QnJvd3NpbmdTdXBwb3J0ZWQoKTsKICNlbmRpZgotICAgICAgICBpZiAoaWdub3JlU2FmZWd1YXJk
cyA9PSBJZ25vcmVBcHBDb21wYXRpYmlsaXR5U2FmZWd1YXJkczo6Tm8gJiYgIWxpbmtlZE9uT3JB
ZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhNb2Rlcm5Db21wYWJpbGl0eU1vZGVCeURlZmF1bHQp
KSB7CisgICAgICAgIGlmIChpZ25vcmVTYWZlZ3VhcmRzID09IElnbm9yZUFwcENvbXBhdGliaWxp
dHlTYWZlZ3VhcmRzOjpObyAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6TW9kZXJuQ29tcGFiaWxpdHlNb2RlQnlEZWZhdWx0KSkgewogICAgICAg
ICAgICAgLy8gT3B0IG91dCBhcHBzIHRoYXQgaGF2ZW4ndCB5ZXQgYnVpbHQgYWdhaW5zdCB0aGUg
aU9TIDEzIFNESyB0byBsaW1pdCBhbnkgaW5jb21wYXRpYmlsaXRpZXMgYXMgYSByZXN1bHQgb2Yg
ZW5hYmxpbmcgZGVza3RvcC1jbGFzcyBicm93c2luZyBieSBkZWZhdWx0IGluCiAgICAgICAgICAg
ICAvLyBXS1dlYlZpZXcgb24gYXBwcm9wcmlhdGVseS1zaXplZCBpUGFkIG1vZGVscy4KICAgICAg
ICAgICAgIHNob3VsZFJlY29tbWVuZERlc2t0b3BDbGFzc0Jyb3dzaW5nID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1
bHRVSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRGVmYXVsdERlbGVnYXRl
cy9XZWJEZWZhdWx0VUlEZWxlZ2F0ZS5tbQppbmRleCBlMzEyOTQwYTYxZWY4MmJiYWNlNjFhNjcz
MzY2NzAyNjkxYWYzMTU4Li44YmMyZmZjYjNlMTI4MzE0ZmQ3NDE5OTJmOTJiY2YyZDZlMjgyZWE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9EZWZhdWx0RGVsZWdhdGVzL1dl
YkRlZmF1bHRVSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RlZmF1
bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJRGVsZWdhdGUubW0KQEAgLTIxNiw3ICsyMTYsNyBAQCAt
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgcHJpbnRGcmFtZVZpZXc6KFdlYkZyYW1l
VmlldyAqKWZyYW1lVmlldwogI2lmIFBMQVRGT1JNKE1BQykKIC0gKE5TVUludGVnZXIpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFza0ZvckRyYWdnaW5n
SW5mbzooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBpZiAoIWxpbmtl
ZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhEcm9wVG9OYXZpZ2F0ZURpc2FsbG93ZWRC
eURlZmF1bHQpKQorICAgIGlmICghbGlua2VkT25PckFmdGVyU0RLV2l0aEJlaGF2aW9yKFNES0Fs
aWduZWRCZWhhdmlvcjo6RHJvcFRvTmF2aWdhdGVEaXNhbGxvd2VkQnlEZWZhdWx0KSkKICAgICAg
ICAgcmV0dXJuIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKIAogICAgIHJldHVybiBXZWJE
cmFnRGVzdGluYXRpb25BY3Rpb25BbnkgJiB+V2ViRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViRG93bmxvYWQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkRvd25sb2FkLm1tCmluZGV4IGUyNDdh
OGUyZDU2ZDBlNjc2MDlkOTg4YWYxMjc5YzhlMjM3NTdlYmIuLmY2Y2NmZWRmMzdhN2NjYTlkNzFj
MDRhZTZmYmU2MzYyOWNmNGUzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L01pc2MvV2ViRG93bmxvYWQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJEb3dubG9hZC5tbQpAQCAtNDcsNyArNDcsNyBAQAogc3RhdGljIGJvb2wgc2hvdWxkQ2FsbE9u
TmV0d29ya1RocmVhZCgpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyBib29sIGlz
T2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXIgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6aXNFcHNv
blNvZnR3YXJlVXBkYXRlcigpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RX
aXRoRG93bmxvYWREZWxlZ2F0ZXNDYWxsZWRPblRoZU1haW5UaHJlYWQpOworICAgIHN0YXRpYyBi
b29sIGlzT2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXIgPSBXZWJDb3JlOjpNYWNBcHBsaWNhdGlvbjo6
aXNFcHNvblNvZnR3YXJlVXBkYXRlcigpICYmICFsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZp
b3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpEb3dubG9hZERlbGVnYXRlc0NhbGxlZE9uVGhlTWFpblRo
cmVhZCk7CiAgICAgcmV0dXJuIGlzT2xkRXBzb25Tb2Z0d2FyZVVwZGF0ZXI7CiAjZWxzZQogICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViSWNvbkRhdGFiYXNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29u
RGF0YWJhc2UubW0KaW5kZXggYTI4MzU1NGEzYjQxZDdkMTA0OWE1MGU5ZWMwMTU3NjA4OTU1NWRh
Yy4uNDYyNTE4NWJiNWIzZmJmMWIxZWRjYzQxNjQ5MzU1NjUyMWQ3MzA5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJJY29uRGF0YWJhc2UubW0KQEAgLTEwOCw3ICsx
MDgsNyBAQCArIChXZWJJY29uRGF0YWJhc2UgKilzaGFyZWRJY29uRGF0YWJhc2UKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPFdlYkljb25EYXRhYmFzZT4+IGRhdGFiYXNlOwog
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsKICAgICBkaXNwYXRjaF9vbmNlKCZvbmNl
LCBeIHsKLSAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9uOjpGaXJzdFdpdGhX
ZWJJY29uRGF0YWJhc2VXYXJuaW5nKSkKKyAgICAgICAgaWYgKGxpbmtlZE9uT3JBZnRlclNES1dp
dGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OldlYkljb25EYXRhYmFzZVdhcm5pbmcpKQog
ICAgICAgICAgICAgTlNMb2coQCIrW1dlYkljb25EYXRhYmFzZSBzaGFyZWRJY29uRGF0YWJhc2Vd
IGlzIG5vdCBBUEkgYW5kIHNob3VsZCBub3QgYmUgdXNlZC4gV2ViSWNvbkRhdGFiYXNlIG5vIGxv
bmdlciBoYW5kbGVzIGljb24gbG9hZGluZyBhbmQgaXQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0
dXJlIHJlbGVhc2UuIik7CiAKICAgICAgICAgZGF0YWJhc2UuZ2V0KCkgPSBhZG9wdE5TKFtbV2Vi
SWNvbkRhdGFiYXNlIGFsbG9jXSBpbml0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCmlu
ZGV4IGRkMWI3OTU3NjExMDVhYmI0MGE1NDVjZjdmMjg3MTk4NTZiZjg0NWEuLjc1NGViNjY3M2Rl
ZTk5ZTRhMWJmOTMyNjBiNTU5ZDljY2IyMDg3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
Lm1tCkBAIC01NCwxMyArNTQsMTMgQEAgYm9vbCBkZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFja0FmdGVyRnVsbHNjcmVlbigpCiAKIGJvb2wgZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0
V2l0aFBpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKTsKKyAgICBzdGF0aWMgYm9vbCBzaG91
bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrID0gbGlua2VkT25PckFmdGVyU0RL
V2l0aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6UGljdHVyZUluUGljdHVyZU1lZGlhUGxh
eWJhY2spOwogICAgIHJldHVybiBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrOwogfQogCiBib29sIGRlZmF1bHRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNh
bGx5KCkKIHsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1dpbmRvd09wZW5XaXRob3V0VXNl
ckdlc3R1cmUgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNUaGVTZWNyZXRTb2NpZXR5SGlk
ZGVuTXlzdGVyeSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRob3V0
VGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOworICAgIHN0YXRp
YyBib29sIHNob3VsZEFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSA9IFdlYkNvcmU6
OklPU0FwcGxpY2F0aW9uOjppc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCkgJiYgIWxp
bmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6Ok5vVGhlU2Vj
cmV0U29jaWV0eUhpZGRlbk15c3RlcnlXaW5kb3dPcGVuUXVpcmspOwogICAgIHJldHVybiBzaG91
bGRBbGxvd1dpbmRvd09wZW5XaXRob3V0VXNlckdlc3R1cmU7CiB9CiAKQEAgLTcxLDIwICs3MSwy
MCBAQCBib29sIGRlZmF1bHRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0
dHJpYnV0ZSgpCiAKIGJvb2wgZGVmYXVsdFBhc3NpdmVUb3VjaExpc3RlbmVyc0FzRGVmYXVsdE9u
RG9jdW1lbnQoKQogewotICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlcihT
REtWZXJzaW9uOjpGaXJzdFRoYXREZWZhdWx0c1RvUGFzc2l2ZVRvdWNoTGlzdGVuZXJzT25Eb2N1
bWVudCk7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyU0RLV2l0aEJl
aGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6RGVmYXVsdHNUb1Bhc3NpdmVUb3VjaExpc3RlbmVy
c09uRG9jdW1lbnQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgZGVmYXVsdFJlcXVp
cmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbygpCiB7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkUmVx
dWlyZVVzZXJHZXN0dXJlVG9Mb2FkVmlkZW8gPSBsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6
Rmlyc3RUaGF0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVvKTsKKyAgICBzdGF0aWMgYm9v
bCBzaG91bGRSZXF1aXJlVXNlckdlc3R1cmVUb0xvYWRWaWRlbyA9IGxpbmtlZE9uT3JBZnRlclNE
S1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OlJlcXVpcmVzVXNlckdlc3R1cmVUb0xv
YWRWaWRlbyk7CiAgICAgcmV0dXJuIHNob3VsZFJlcXVpcmVVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
OwogfQogCiBib29sIGRlZmF1bHRXZWJTUUxFbmFibGVkKCkKIHsKICAgICAvLyBGb3IgYmFja3dh
cmQgY29tcGF0aWJpbGl0eSwga2VlcCBXZWJTUUwgd29ya2luZyB1bnRpbCBhcHBzIGFyZSByZWJ1
aWx0IHdpdGggdGhlIGlPUyAxNCBTREsuCi0gICAgc3RhdGljIGJvb2wgd2ViU1FMRW5hYmxlZCA9
ICFsaW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RXaXRoV2ViU1FMRGlzYWJsZWRCeURl
ZmF1bHRJbkxlZ2FjeVdlYktpdCk7CisgICAgc3RhdGljIGJvb2wgd2ViU1FMRW5hYmxlZCA9ICFs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpXZWJTUUxE
aXNhYmxlZEJ5RGVmYXVsdEluTGVnYWN5V2ViS2l0KTsKICAgICByZXR1cm4gd2ViU1FMRW5hYmxl
ZDsKIH0KIApAQCAtMTc5LDcgKzE3OSw3IEBAIGJvb2wgZGVmYXVsdEF0dGFjaG1lbnRFbGVtZW50
RW5hYmxlZCgpCiAKIGJvb2wgZGVmYXVsdFNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRP
bk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0UmVzdHJpY3RzQmFzZVVSTFNjaGVtZXMpOwor
ICAgIHN0YXRpYyBib29sIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXMgPSBsaW5rZWRPbk9y
QWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpSZXN0cmljdHNCYXNlVVJM
U2NoZW1lcyk7CiAgICAgcmV0dXJuIHNob3VsZFJlc3RyaWN0QmFzZVVSTFNjaGVtZXM7CiB9CiAK
QEAgLTIwOCw3ICsyMDgsNyBAQCBib29sIGRlZmF1bHRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29u
dGVudCgpCiAKIGJvb2wgZGVmYXVsdFNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKQog
ewotICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgPSBsaW5r
ZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0Q29udmVydHNJbnZhbGlkVVJMc1RvQmxh
bmspOworICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsgPSBs
aW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpDb252ZXJ0
c0ludmFsaWRVUkxzVG9CbGFuayk7CiAgICAgcmV0dXJuIHNob3VsZENvbnZlcnRJbnZhbGlkVVJM
c1RvQmxhbms7CiB9CiAKQEAgLTIxNiwxMyArMjE2LDEzIEBAIGJvb2wgZGVmYXVsdFNob3VsZENv
bnZlcnRJbnZhbGlkVVJMc1RvQmxhbmsoKQogCiBib29sIGRlZmF1bHRQYXNzaXZlV2hlZWxMaXN0
ZW5lcnNBc0RlZmF1bHRPbkRvY3VtZW50KCkKIHsKLSAgICBzdGF0aWMgYm9vbCByZXN1bHQgPSBs
aW5rZWRPbk9yQWZ0ZXIoU0RLVmVyc2lvbjo6Rmlyc3RUaGF0RGVmYXVsdHNUb1Bhc3NpdmVXaGVl
bExpc3RlbmVyc09uRG9jdW1lbnQpOworICAgIHN0YXRpYyBib29sIHJlc3VsdCA9IGxpbmtlZE9u
T3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVkQmVoYXZpb3I6OkRlZmF1bHRzVG9QYXNz
aXZlV2hlZWxMaXN0ZW5lcnNPbkRvY3VtZW50KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBi
b29sIGRlZmF1bHRXaGVlbEV2ZW50R2VzdHVyZXNCZWNvbWVOb25CbG9ja2luZygpCiB7Ci0gICAg
c3RhdGljIGJvb2wgcmVzdWx0ID0gbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0VGhh
dEFsbG93c1doZWVsRXZlbnRHZXN0dXJlc1RvQmVjb21lTm9uQmxvY2tpbmcpOworICAgIHN0YXRp
YyBib29sIHJlc3VsdCA9IGxpbmtlZE9uT3JBZnRlclNES1dpdGhCZWhhdmlvcihTREtBbGlnbmVk
QmVoYXZpb3I6OkFsbG93c1doZWVsRXZlbnRHZXN0dXJlc1RvQmVjb21lTm9uQmxvY2tpbmcpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBmMTRmYTM5OTRmNGFmYWJiY2U1YjAxYjk5NDU3NTJkYTk5YTgxMWY5
Li4wY2MxNzg1MTBiMTYwNGVhODBmMjUyYjZlNGUwMDg5ZjRlMmRkNGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzkxLDcgKzEzOTEsNyBAQCAt
KHZvaWQpX2luamVjdE91dGxvb2tRdWlya3NTY3JpcHQKICNpZiBQTEFURk9STShJT1MpCiBzdGF0
aWMgYm9vbCBuZWVkc0xhQmFucXVlUG9zdGFsZVF1aXJrcygpCiB7Ci0gICAgc3RhdGljIGJvb2wg
bmVlZHNRdWlya3MgPSBXZWJDb3JlOjpJT1NBcHBsaWNhdGlvbjo6aXNMYUJhbnF1ZVBvc3RhbGUo
KSAmJiAhbGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dExhQmFucXVlUG9z
dGFsZVF1aXJrcyk7CisgICAgc3RhdGljIGJvb2wgbmVlZHNRdWlya3MgPSBXZWJDb3JlOjpJT1NB
cHBsaWNhdGlvbjo6aXNMYUJhbnF1ZVBvc3RhbGUoKSAmJiAhbGlua2VkT25PckFmdGVyU0RLV2l0
aEJlaGF2aW9yKFNES0FsaWduZWRCZWhhdmlvcjo6Tm9MYUJhbnF1ZVBvc3RhbGVRdWlya3MpOwog
ICAgIHJldHVybiBuZWVkc1F1aXJrczsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDMyYjNjYWE5ODIwOGIyZmRkNjYzZTc1MDFjYmQ2Y2Jh
ZDBiYTUzMGYuLjNiYmQ0MmE4NTdiN2YwOTY5YzQyZDRmZjRmNDcxYmU5MTFhM2E5MzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMi0wNC0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
KworICAgICAgICBBZG9wdCAidmVyc2lvbiBzZXQiLWJhc2VkIGxpbmtlZC1vbi1vci1hZnRlciBj
aGVja3MgaW5zdGVhZCBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBvbmVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNTQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzgzNDM2NzE1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQml0bWFwLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OnRlc3RCaXRtYXBDb3VudEFmdGVyU2V0QWxsKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgQml0bWFwLmNvdW50
KCkgd29ya3MgY29ycmVjdGx5IGFmdGVyIEJpdG1hcC5zZXRBbGwoKSwKKyAgICAgICAgYmVjYXVz
ZSBteSBpbml0aWFsIGltcGxlbWVudGF0aW9uIHdhcyBpbmNvcnJlY3QgZm9yIGJpdG1hcHMgd2hl
cmUKKyAgICAgICAgdGhlIHRvdGFsIG51bWJlciBvZiBiaXRzIHdhcyBub3QgYSBtdWx0aXBsZSBv
ZiB0aGUgd29yZCBzaXplLgorCiAyMDIyLTA0LTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIEJ1aWxkIGJlZm9yZSBsYW5kaW5n
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9CaXRtYXAuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQml0bWFwLmNwcAppbmRleCAyYTNlZTg4ZTlk
NjZlNTU0ZDVlNmNlODk5ZjQ4NTVlMjQzNzc4Zjc5Li5mODVmMjI3OTM5Y2JlNDFhZmM5YWZkMjg1
ZjM5MTM2N2UxZTZjM2RiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9CaXRtYXAuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0JpdG1hcC5j
cHAKQEAgLTQyMCw2ICs0MjAsMjIgQEAgdm9pZCB0ZXN0Qml0bWFwQ291bnQoKQogICAgIEVYUEVD
VF9FUShzbWFsbEJpdG1hcE9uZXMuY291bnQoKSwgc21hbGxTaXplKTsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgV29yZFR5cGU+Cit2b2lkIHRlc3RCaXRtYXBDb3VudEFmdGVyU2V0QWxsKCkKK3sK
KyAgICBCaXRtYXA8OSwgV29yZFR5cGU+IHNtYWxsQml0bWFwOworICAgIHNtYWxsQml0bWFwLnNl
dEFsbCgpOworICAgIEVYUEVDVF9FUShzbWFsbEJpdG1hcC5jb3VudCgpLCA5dWxsKTsKKworICAg
IEJpdG1hcDwzMiwgV29yZFR5cGU+IGNvbXBsZXRlQml0bWFwOworICAgIGNvbXBsZXRlQml0bWFw
LnNldEFsbCgpOworICAgIEVYUEVDVF9FUShjb21wbGV0ZUJpdG1hcC5jb3VudCgpLCAzMnVsbCk7
CisKKyAgICBCaXRtYXA8MTAwOCwgV29yZFR5cGU+IGxhcmdlQml0bWFwOworICAgIGxhcmdlQml0
bWFwLnNldEFsbCgpOworICAgIEVYUEVDVF9FUShsYXJnZUJpdG1hcC5jb3VudCgpLCAxMDA4dWxs
KTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgV29yZFR5cGU+CiB2b2lkIHRlc3RCaXRtYXBJc0Vt
cHR5KCkKIHsKQEAgLTEzOTAsNiArMTQwNiw3IEBAIFRFU1QoV1RGX0JpdG1hcCwgQ2xlYXJBbGxf
dWludDMyX3QpIHsgdGVzdEJpdG1hcENsZWFyQWxsPHVpbnQzMl90PigpOyB9CiBURVNUKFdURl9C
aXRtYXAsIEludmVydF91aW50MzJfdCkgeyB0ZXN0Qml0bWFwSW52ZXJ0PHVpbnQzMl90PigpOyB9
CiBURVNUKFdURl9CaXRtYXAsIEZpbmRSdW5PZlplcm9zX3VpbnQzMl90KSB7IHRlc3RCaXRtYXBG
aW5kUnVuT2ZaZXJvczx1aW50MzJfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBDb3VudF91aW50
MzJfdCkgeyB0ZXN0Qml0bWFwQ291bnQ8dWludDMyX3Q+KCk7IH0KK1RFU1QoV1RGX0JpdG1hcCwg
Q291bnRBZnRlclNldEFsbF91aW50MzJfdCkgeyB0ZXN0Qml0bWFwQ291bnRBZnRlclNldEFsbDx1
aW50MzJfdD4oKTsgfQogVEVTVChXVEZfQml0bWFwLCBJc0VtcHR5X3VpbnQzMl90KSB7IHRlc3RC
aXRtYXBJc0VtcHR5PHVpbnQzMl90PigpOyB9CiBURVNUKFdURl9CaXRtYXAsIElzRnVsbF91aW50
MzJfdCkgeyB0ZXN0Qml0bWFwSXNGdWxsPHVpbnQzMl90PigpOyB9CiBURVNUKFdURl9CaXRtYXAs
IE1lcmdlX3VpbnQzMl90KSB7IHRlc3RCaXRtYXBNZXJnZTx1aW50MzJfdD4oKTsgfQpAQCAtMTQy
NSw2ICsxNDQyLDcgQEAgVEVTVChXVEZfQml0bWFwLCBDbGVhckFsbF91aW50NjRfdCkgeyB0ZXN0
Qml0bWFwQ2xlYXJBbGw8dWludDY0X3Q+KCk7IH0KIFRFU1QoV1RGX0JpdG1hcCwgSW52ZXJ0X3Vp
bnQ2NF90KSB7IHRlc3RCaXRtYXBJbnZlcnQ8dWludDY0X3Q+KCk7IH0KIFRFU1QoV1RGX0JpdG1h
cCwgRmluZFJ1bk9mWmVyb3NfdWludDY0X3QpIHsgdGVzdEJpdG1hcEZpbmRSdW5PZlplcm9zPHVp
bnQ2NF90PigpOyB9CiBURVNUKFdURl9CaXRtYXAsIENvdW50X3VpbnQ2NF90KSB7IHRlc3RCaXRt
YXBDb3VudDx1aW50NjRfdD4oKTsgfQorVEVTVChXVEZfQml0bWFwLCBDb3VudEFmdGVyU2V0QWxs
X3VpbnQ2NF90KSB7IHRlc3RCaXRtYXBDb3VudEFmdGVyU2V0QWxsPHVpbnQ2NF90PigpOyB9CiBU
RVNUKFdURl9CaXRtYXAsIElzRW1wdHlfdWludDY0X3QpIHsgdGVzdEJpdG1hcElzRW1wdHk8dWlu
dDY0X3Q+KCk7IH0KIFRFU1QoV1RGX0JpdG1hcCwgSXNGdWxsX3VpbnQ2NF90KSB7IHRlc3RCaXRt
YXBJc0Z1bGw8dWludDY0X3Q+KCk7IH0KIFRFU1QoV1RGX0JpdG1hcCwgTWVyZ2VfdWludDY0X3Qp
IHsgdGVzdEJpdG1hcE1lcmdlPHVpbnQ2NF90PigpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>