<?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>214316</bug_id>
          
          <creation_ts>2020-07-14 13:22:48 -0700</creation_ts>
          <short_desc>[Cocoa] Add MediaCapabilities support for SW VP9 decoder.</short_desc>
          <delta_ts>2020-07-16 13:49:41 -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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671493</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 13:22:48 -0700</bug_when>
    <thetext>[Cocoa] Add MediaCapabilities support for SW VP9 decoder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671501</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-14 13:38:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/65561815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671502</commentid>
    <comment_count>2</comment_count>
      <attachid>404274</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 13:41:40 -0700</bug_when>
    <thetext>Created attachment 404274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671505</commentid>
    <comment_count>3</comment_count>
      <attachid>404276</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 13:48:21 -0700</bug_when>
    <thetext>Created attachment 404276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671519</commentid>
    <comment_count>4</comment_count>
      <attachid>404282</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 14:03:15 -0700</bug_when>
    <thetext>Created attachment 404282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671547</commentid>
    <comment_count>5</comment_count>
      <attachid>404293</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-14 15:28:35 -0700</bug_when>
    <thetext>Created attachment 404293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671603</commentid>
    <comment_count>6</comment_count>
      <attachid>404293</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-07-14 16:55:45 -0700</bug_when>
    <thetext>Comment on attachment 404293
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        both on the system battery status, but also power adapter status, and these need to be shipped

Nit: s/both on the system battery status, but also power adapter status/both on the system battery status and the power adapter status/

&gt; Source/WebCore/platform/cocoa/SystemBattery.mm:104
&gt; +                CFDictionaryRef description = IOPSGetPowerSourceDescription(powerSourcesInfo.get(), CFArrayGetValueAtIndex(powerSourcesList.get(), i));

IOPSGetPowerSourceDescription can return NULL according to the docs, and CFDictionaryGetValue(NULL) will crash.

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:97
&gt; +        // HW VP9 Decoder Profile 0 &amp; 2:
&gt; +        if (!codecConfiguration.profile &amp;&amp; codecConfiguration.profile != 2)

I don&apos;t think you want the `!` here

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:101
&gt; +        // HW VP9 Decoder supports up to Level 6:
&gt; +        if (codecConfiguration.level &gt; 60)

Is it 6 or 60?

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:109
&gt; +        if (codecConfiguration.chromaSubsampling &gt; 1)

It&apos;d be nice to have an enum for the chromaSubsampling values, or at least a named constant for 420

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:117
&gt; +        if (videoConfiguration.height &lt;= 2160 &amp;&amp; videoConfiguration.framerate &gt; 120)

Named constants would be helpful for future engineers.

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:119
&gt; +        else if (videoConfiguration.height &gt; 2160 &amp;&amp; videoConfiguration.framerate &gt; 30)

Ditto

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:130
&gt; +    if (videoConfiguration.height &lt;= 1080 &amp;&amp; videoConfiguration.framerate &gt; 60)

Ditto

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:132
&gt; +    if (videoConfiguration.height &lt;= 2160 &amp;&amp; videoConfiguration.framerate &gt; 30)

Ditto

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:153
&gt; +    auto is4kScreen = [](float width, float height, float scale) {

Why have the width parameter if it isn&apos;t used?

&gt; Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:155
&gt; +        return height * scale &gt;= 2160;

`2160` again.

&gt; Source/WebCore/testing/Internals.h:1025
&gt; +    void setHardwareVP9DecoderDisabledForTesting(bool);
&gt; +    void setVP9ScreenSizeAndScale(double, double, double);

All four should have the &quot;ForTesting&quot; suffix or none should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671802</commentid>
    <comment_count>7</comment_count>
      <attachid>404358</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-15 10:56:24 -0700</bug_when>
    <thetext>Created attachment 404358
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672135</commentid>
    <comment_count>8</comment_count>
      <attachid>404446</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-07-16 09:21:20 -0700</bug_when>
    <thetext>Created attachment 404446
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672230</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-16 13:49:40 -0700</bug_when>
    <thetext>Committed r264476: &lt;https://trac.webkit.org/changeset/264476&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404446.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404274</attachid>
            <date>2020-07-14 13:41:40 -0700</date>
            <delta_ts>2020-07-14 13:48:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214316-20200714134140.patch</filename>
            <type>text/plain</type>
            <size>57751</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxMmExZmNkN2EyYWY0
MzZmOWY5MDgxMWNmODliNWUwZjQwNThiZS4uNGQwOWYwZGZkZDY1Y2EzODYzZjVhYTBlYjkyNTdh
NjQ1NTZmZWVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL21lZGlh
L21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbAorCisgICAgICAgIEFk
ZCBzb21lIGZvdW5kYXRpb25hbCBzdXBwb3J0IGZvciBTVyBWUDksIHdoaWNoIGR1ZSB0byBwb2xp
Y3kgZGVjaXNpb25zIHdpbGwgbmVlZCBpbmZvcm1hdGlvbgorICAgICAgICBib3RoIG9uIHRoZSBz
eXN0ZW0gYmF0dGVyeSBzdGF0dXMsIGJ1dCBhbHNvIHBvd2VyIGFkYXB0ZXIgc3RhdHVzLCBhbmQg
dGhlc2UgbmVlZCB0byBiZSBzaGlwcGVkCisgICAgICAgIGludG8gdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcyBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgQWRkIHNvbWUgSW50ZXJuYWwgb3Zl
cnJpZGUgc2V0dGluZ3MgdG8gYWxsb3cgdGhlIHBvbGljaWVzIHRvIGJlIGVmZmVjdGl2ZWx5IHRl
c3RlZCB0aHJvdWdoCisgICAgICAgIExheW91VGVzdHMuIFRoaXMgaW5jbHVkZXMgb3ZlcnJpZGVz
IGZvciBzeXN0ZW0gYmF0dGVyeSBhbmQgQUMgc3RhdGUsIGFzIHdlbGwgYXMgb3ZlcnJpZGVzIGZv
cgorICAgICAgICBzY3JlZW4gc2l6ZSBhbmQgcmVzb2x1dGlvbi4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VO
b3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5v
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6On5Qb3dlclNv
dXJjZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6Om5v
dGlmeVBvd2VyU291cmNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW06Cisg
ICAgICAgIChXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnJl
c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U3lzdGVtSGFzQUMpOgorICAg
ICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVy
cmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25maWd1cmF0aW9uQ29jb2EpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVW
UFBhcmFtZXRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmluZ3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwppbmRleCAwM2U2ZDI4NDgyZWE2M2E3ZjMxZTNmYzNiMTVlMGM3ODhhMzc3YzgwLi4zMDk4
NjY4ODA3OTAwOGEwYzc3MzYzMWE3N2Q0ZTI2N2Y0ZWYyZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBNZWRpYUNhcGFiaWxpdGllcyBzdXBwb3J0IGZv
ciBTVyBWUDkgZGVjb2Rlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNDMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJLmg6CisKIDIwMjAtMDctMDIgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZG9wdCBB
VlBsYXllci52aWRlb1JhbmdlT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWUzMDQwNjVjYzM5ODUxYWE1
YjM4YzZlNTc5MDY3YzdjNzFlMDY4OC4uZDAzM2U3ZWQ2MGQ4OTAxMDc5NTAwOWEzMjM1MmNlMjNi
Njc4OTgwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wNy0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBNZWRpYUNhcGFi
aWxpdGllcyBzdXBwb3J0IGZvciBTVyBWUDkgZGVjb2Rlci4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDMxNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhlIHN5c3RlbSBBQyBzdGF0ZSB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBhbHNvIGNyZWF0ZQor
ICAgICAgICBhIHBvd2VyIHN0YXRlIGxpc3RlbmVyIHNvIHRoZSBXZWJQcm9jZXNzIGNhbiBiZSB1
cGRhdGVkIGR5bmFtaWNhbGx5LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lz
dGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlk
Q2hhbmdlKToKKwogMjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCmluZGV4IDcwMmI5
NTY2MjBmNTE0ZTViMDI3ZjlmOWRiZmY3YmQ4YzFmMGRlYjguLjQ5OTliOGViMjY0Y2QxNmQ4NDRk
YjczODQ2NjEwNTRkNzZhMDRhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0lPUFNMaWJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9JT1BTTGliU1BJLmgKQEAgLTM2LDYgKzM2LDkgQEAKIAogI2RlZmluZSBrSU9QU1R5cGVL
ZXkgIlR5cGUiCiAjZGVmaW5lIGtJT1BTSW50ZXJuYWxCYXR0ZXJ5VHlwZSAiSW50ZXJuYWxCYXR0
ZXJ5IgorI2RlZmluZSBrSU9QU1Bvd2VyU291cmNlU3RhdGVLZXkgIlBvd2VyIFNvdXJjZSBTdGF0
ZSIKKyNkZWZpbmUga0lPUFNBQ1Bvd2VyVmFsdWUgIkFDIFBvd2VyIgorI2RlZmluZSBrSU9QU05v
dGlmeVBvd2VyU291cmNlICJjb20uYXBwbGUuc3lzdGVtLnBvd2Vyc291cmNlcy5zb3VyY2UiCiAK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA1MjIwNDc0OWRiYjUyMWNkZDA5
NzBkMjczNTFmMDE2MGFmNWE5ZjRlLi4wZWJkNzhlYjk1MGZhYWU1MzhiMzJkNjE5MjZmMmZmMDM2
Yzc4OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI0MSw2ICsyNDEsNyBAQCBwbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRD
dXN0b21EYXRhQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtUGFzdGVib2FyZENvY29h
Lm1tCiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQor
cGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQogcGxhdGZvcm0vY29jb2EvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KIHBsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCkBAIC0z
NDgsNiArMzQ5LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENvY29hLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29j
b2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29j
b2EubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzYzU2
MzFlNGJjODQxMzBlOWFiNWIyNTlhNzE5NWQyMjI0ZjFjMzdhLi5hMDg3OTZhNDU0ZWU5OGFiNmQ1
ODk1MWZjNzhkZjE0NGQ3MjU2ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTk4LDYgKzQxOTgsNyBAQAogCQlDREM2OURE
NjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNjlERDQxNjMyMDI2
QzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREM2OUREQTE2MzcxRkQ0MDA3
QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzY5REQ4MTYzNzFGRDMwMDdDMzhE
RiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQzczNDE1MTk3Nzg5NkQwMDQ2QkZD
NSAvKiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzczNDEzMTk3Nzg5NkMwMDQ2QkZDNSAvKiBDQVJpbmdCdWZmZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDREM3NDcwNDI0
QkUyRkM3MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8q
IFBvd2VyU291cmNlTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREM4QjVBMjE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTAxODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsKIAkJQ0RDOEI1QTMxODA0NjM0NzAw
MTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTExODA0NjM0NzAw
MTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9Owog
CQlDREM4QjVBNjE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUE0
MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICovOyB9OwpA
QCAtMTQwOTcsNiArMTQwOTgsOCBAQAogCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVk
aWFTb3VyY2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U291cmNlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVCMjE4
MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVlA5VXRpbGl0aWVzQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q2RkU1QjgyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVlA5VXRpbGl0aWVzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVlA5VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVlA5VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q3MjBCNDcyMjY4MkM3RTAwMDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJv
eC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyNzMsNiArMTQyNzYsOCBAQAogCQlD
REM2OUREOTE2MzcxRkQzMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDNzM0MTIxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQVJpbmdCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENBUmluZ0J1ZmZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREM3NDcwMDI0QkUyNjc5MDBDMTg2OEIgLyogUG93
ZXJTb3VyY2VOb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3dlclNvdXJjZU5vdGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzc0NzAxMjRCRTI2NzkwMEMxODY4QiAv
KiBQb3dlclNvdXJjZU5vdGlmaWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG93ZXJTb3Vy
Y2VOb3RpZmllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDOEI1QTAxODA0
NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
OEI1QTExODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
OEI1QTQxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM2MDgsNiArMjM2MTMs
OCBAQAogCQkJCUNEQTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2Rl
bC5oICovLAogCQkJCUNEQTI5QTBEMUNCRDlDRkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5oICovLAogCQkJCUNEQTI5QTBDMUNCRDlDRkUwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSAqLywKKwkJCQlDREM3NDcwMDI0QkUy
Njc5MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oICovLAorCQkJCUNEQzc0NzAxMjRC
RTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLm1tICovLAogCQkJCTQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLywK
IAkJCQkxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oICovLAog
CQkJCTFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250cm9sbGVyLm1tICovLApA
QCAtMjU3MjIsMTEgKzI1NzI5LDExIEBACiAJCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8q
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAv
KiBUcmFja1ByaXZhdGVCYXNlLmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8q
IFVuaXRCZXppZXIuaCAqLywKLQkJCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRp
bGl0aWVzLmggKi8sCi0JCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGll
cy5jcHAgKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5j
cHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICov
LAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICov
LAorCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAor
CQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKIAkJCQkx
NDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVD
MEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLywKIAkJCQk5MzlCMDJFRDBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovLApAQCAtMjU4NjQsNiArMjU4NzEs
OCBAQAogCQkJCUU0RThCNEVBMjE2Qjc5RTUwMEI4ODM0RCAvKiBTeXN0ZW1Gb250RGF0YWJhc2VD
b3JlVGV4dC5oICovLAogCQkJCTUyNjcyNEYyMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkNvY29hLmggKi8sCiAJCQkJNTI2NzI0RjExQ0IyRkRGNjAwNzU5NzREIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW0gKi8sCisJCQkJQ0Q2RkU1QjcyNEJDRTY0
NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi8sCisJCQkJQ0Q2RkU1QjgyNEJDRTY0
NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovLAogCQkJCTJEM0VGNDQ0MTkxNzkx
NUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCAqLywKIAkJ
CQkyRDNFRjQ0NTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRl
bGVnYXRlLm1tICovLAogCQkJCTJEM0VGNDQ2MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FM
YXllckV4dHJhcy5oICovLApAQCAtMzAxMDEsNiArMzAxMTAsNyBAQAogCQkJCUMzN0NERUJEMTQ5
RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUY0OEQyQUE1MjE1OTc0MEQwMEM2NzUyQiAvKiBDb2xvckNvY29hLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3Q0FDNkFGMDI0N0Y0MTEwMDBFNjFENTkgLyogQ29sb3JDb21wb25lbnRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3QzUxNEUwMzI0QUY4MDVFMDA1MDcxMEYgLyogQ29sb3JDb252ZXJzaW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTAzQjdERjFEQjAxNTY3MDA4QkI4OTAgLyogQ29sb3JI
YXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNDEyNTFGMTJEMDAzRUYyNjkgLyogQ29s
b3JJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTE2OUU3MjFGMUI4NDcwMEVBNEY3
OCAvKiBDb2xvcklPUy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjYwMCw2ICszMjYxMCw3IEBACiAJ
CQkJQTE0OTc4NzExQUJBRjNBNTAwQ0VGN0U0IC8qIFBsYXRmb3JtQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2NjAxRUJGMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0
Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDNzQ3MDQyNEJFMkZD
NzAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QUE0ODcwMTRBMDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0
TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTVCRTE5NTFENTRGNUZCMDBERDdDNjggLyog
UGxhdGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLywKQEAgLTMzOTI3LDcgKzMzOTM4LDYgQEAK
IAkJCQk5MTI3OEQ2MjIxREVEQUYwMDBCNTcxODQgLyogV29ya2VyQXVkaXRBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFBN0QzNTMxRjQzOEQxNjAwODk4OERFIC8qIFdvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0NEMUZBQTQ0REUwMDM3
RDFFNiAvKiBXb3JrZXJDb25zb2xlQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTdDNTE0RTAz
MjRBRjgwNUUwMDUwNzEwRiAvKiBDb2xvckNvbnZlcnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1NTYzOUQxMUM2RjA5RTMwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNUI4MUNDRTFGQUE0NERFMDAzN0QxRTYgLyogV29ya2VyRGVidWdnZXJB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUyQjM0OUUxRkE0MTcwMzAwOEI2MjQ2IC8qIFdv
cmtlckRlYnVnZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1TY3JlZW4uY3BwCmluZGV4IDlhMGQ4ZjVjNTdmNTg2NDQ1ZjY5OTA4Mzk1ZTRi
YzEwN2M2YjA2NzIuLmJhNTBiNjg4YWI2ZDBiYWU1ZDE5OWZhMGJhYzRiN2UyMDA0YmFmODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5jcHAKQEAgLTM4LDYgKzM4
LDExIEBAIHN0YXRpYyBTY3JlZW5Qcm9wZXJ0aWVzJiBzY3JlZW5Qcm9wZXJ0aWVzKCkKICAgICBy
ZXR1cm4gc2NyZWVuUHJvcGVydGllczsKIH0KIAorY29uc3QgU2NyZWVuUHJvcGVydGllcyYgZ2V0
U2NyZWVuUHJvcGVydGllcygpCit7CisgICAgcmV0dXJuIHNjcmVlblByb3BlcnRpZXMoKTsKK30K
KwogUGxhdGZvcm1EaXNwbGF5SUQgcHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgpCiB7CiAgICAgcmV0
dXJuIHNjcmVlblByb3BlcnRpZXMoKS5wcmltYXJ5RGlzcGxheUlEOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5kZXggYzgxMWVjODg4ZDY1Yzg5YTZhNzEzZjBmNTg3
ZjFlYThiMDk4NGMwMC4uNzBkNmYxMjVjNmI2MDMxODZjNjUxNDlmYjg3M2Y1YmUzZTA1OWNhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC0xMDksNiArMTA5
LDcgQEAgc3RydWN0IFNjcmVlbkRhdGE7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCBTY3JlZW5Qcm9w
ZXJ0aWVzIGNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFNjcmVlblByb3BlcnRpZXMoY29uc3QgU2NyZWVuUHJvcGVydGllcyYpOworY29uc3QgU2NyZWVu
UHJvcGVydGllcyYgZ2V0U2NyZWVuUHJvcGVydGllcygpOwogY29uc3QgU2NyZWVuRGF0YSogc2Ny
ZWVuRGF0YShQbGF0Zm9ybURpc3BsYXlJRCBzY3JlZW5kaXNwbGF5SUQpOwogV0VCQ09SRV9FWFBP
UlQgUGxhdGZvcm1EaXNwbGF5SUQgcHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCmluZGV4IGExYTYzZDY3YmNm
ZWUwNmI1MDQwZDE5NjJmNGRlMDU3ZDIxZjU2MzIuLjNlMmZlZjBiMjc0ZjYwOGVlMWQ1ZTA0NjRm
MWI4MGFjZWVlMjQwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVl
blByb3BlcnRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0
aWVzLmgKQEAgLTUyLDYgKzUyLDEwIEBAIHN0cnVjdCBTY3JlZW5EYXRhIHsKICAgICBEeW5hbWlj
UmFuZ2VNb2RlIHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGUgeyBEeW5hbWljUmFuZ2VNb2RlOjpT
dGFuZGFyZCB9OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgZmxvYXQgc2NhbGVGYWN0b3IgeyAxIH07CisjZW5kaWYKKwogICAgIGVudW0g
Y2xhc3MgQ29sb3JTcGFjZVR5cGUgOiB1aW50OF90IHsgTm9uZSwgTmFtZSwgRGF0YSB9OwogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8U2NyZWVuRGF0YT4gZGVj
b2RlKERlY29kZXImKTsKQEAgLTk5LDYgKzEwMywxMCBAQCB2b2lkIFNjcmVlbkRhdGE6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hy
b21lIDw8IGRpc3BsYXlNYXNrIDw8IGdwdUlEIDw8IHByZWZlcnJlZER5bmFtaWNSYW5nZU1vZGU7
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBlbmNvZGVyIDw8IHNjYWxlRmFjdG9yOworI2VuZGlmCisKICAgICBpZiAoY29sb3JTcGFjZSkg
ewogICAgICAgICAvLyBUcnkgdG8gZW5jb2RlIHRoZSBuYW1lLgogICAgICAgICBpZiAoYXV0byBu
YW1lID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5TmFtZShjb2xvclNwYWNlLmdldCgpKSkpIHsK
QEAgLTE4Miw2ICsxOTAsMTMgQEAgT3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBPcHRp
b25hbDxmbG9hdD4gc2NhbGVGYWN0b3I7CisgICAgZGVjb2RlciA+PiBzY2FsZUZhY3RvcjsKKyAg
ICBpZiAoIXNjYWxlRmFjdG9yKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlm
CisKICAgICBDb2xvclNwYWNlVHlwZSBkYXRhVHlwZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGRhdGFUeXBlKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTIyNiw3ICsyNDEs
MTAgQEAgT3B0aW9uYWw8U2NyZWVuRGF0YT4gU2NyZWVuRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgICAgIFdURk1vdmUoKnNjcmVlbklzTW9ub2Nocm9tZSksCiAgICAgICAgIFdU
Rk1vdmUoKmRpc3BsYXlNYXNrKSwKICAgICAgICAgV1RGTW92ZSgqZ3B1SUQpLAotICAgICAgICBX
VEZNb3ZlKCpwcmVmZXJyZWREeW5hbWljUmFuZ2VNb2RlKQorICAgICAgICBXVEZNb3ZlKCpwcmVm
ZXJyZWREeW5hbWljUmFuZ2VNb2RlKSwKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgV1RGTW92ZSgqc2NhbGVGYWN0b3IpLAogI2VuZGlm
CiAgICAgfSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UG93ZXJTb3VyY2VOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUG93
ZXJTb3VyY2VOb3RpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZTk2ZmY1ZTk4YWEzYzA4ZTJiZGM2NGMw
ZDAyNjQwM2FmMGJjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllciB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgUG93ZXJTb3VyY2VOb3RpZmllckNh
bGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgaGFzQUMpPjsKKyAgICBXRUJDT1JFX0VY
UE9SVCBleHBsaWNpdCBQb3dlclNvdXJjZU5vdGlmaWVyKFBvd2VyU291cmNlTm90aWZpZXJDYWxs
YmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+UG93ZXJTb3VyY2VOb3RpZmllcigpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0xvd1Bvd2VyTW9kZUVuYWJsZWQoKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICB2b2lkIG5vdGlmeVBvd2VyU291cmNlQ2hhbmdlZCgpOworCisgICAgT3B0
aW9uYWw8aW50PiBtX3Rva2VuSUQ7CisgICAgUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrIG1f
Y2FsbGJhY2s7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTQ4MDhmNTk3ZmJmMGY4ZDg0
OTE4YzVkNTA2ZDQ4YTMyYzQ2ZjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQpAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvd2VyU291cmNlTm90
aWZpZXIuaCIKKworI2ltcG9ydCAiU3lzdGVtQmF0dGVyeS5oIgorI2ltcG9ydCA8bm90aWZ5Lmg+
CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5vdGlmaWVyKFBvd2VyU291
cmNlTm90aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSkKK3sKKyAgICBpbnQgdG9rZW4gPSAwOworICAgIGF1dG8gc3RhdHVzID0gbm90
aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UsICZ0b2tlbiwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQpIHsKKyAgICAgICAgbm90aWZ5UG93ZXJTb3Vy
Y2VDaGFuZ2VkKCk7CisgICAgfSk7CisgICAgaWYgKHN0YXR1cyA9PSBOT1RJRllfU1RBVFVTX09L
KQorICAgICAgICBtX3Rva2VuSUQgPSB0b2tlbjsKK30KKworUG93ZXJTb3VyY2VOb3RpZmllcjo6
flBvd2VyU291cmNlTm90aWZpZXIoKQoreworICAgIGlmIChtX3Rva2VuSUQpCisgICAgICAgIG5v
dGlmeV9jYW5jZWwoKm1fdG9rZW5JRCk7Cit9CisKK3ZvaWQgUG93ZXJTb3VyY2VOb3RpZmllcjo6
bm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCkKK3sKKyAgICByZXNldFN5c3RlbUhhc0FDKCk7Cisg
ICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2soc3lzdGVtSGFzQUMoKSk7Cit9
CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJh
dHRlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaApp
bmRleCA1YWRhODllNjRmYWM0NzU2NWFmM2IxMmJhMzIxZTExMmIzYjY3NDYyLi5hZjMwZTgyYjk5
NGZhY2YzNmM0NGQ2ZTExNmEyN2U3NDExZDY5ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCkBAIC0zMCw0ICszMCwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCk7
CiBXRUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0JhdHRlcnkoKTsKIAorV0VCQ09SRV9FWFBP
UlQgdm9pZCByZXNldFN5c3RlbUhhc0FDKCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3Rl
bUhhc0FDKGJvb2wpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzeXN0ZW1IYXNBQygpOworCitXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0
aW9uYWw8Ym9vbD4mJik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFz
QUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYpOworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQppbmRleCA2YzEzZTVlYjcwZDhlNTE0M2Vk
ZDI4ODFkZDI5ZTEwNzUzMGI1OWRhLi4yYmEyN2Y3N2E5MzQ4M2RkOGQxYjU5YTRhZTU5YWRmZjFi
NjNjNDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1C
YXR0ZXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRl
cnkubW0KQEAgLTI2LDExICsyNiwxNSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJT
eXN0ZW1CYXR0ZXJ5LmgiCiAKKyNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9JT1BTTGliU1BJLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE9wdGlv
bmFsPGJvb2w+IGhhc0JhdHRlcnk7CitzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUM7CitzdGF0
aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKK3N0YXRpYyBP
cHRpb25hbDxib29sPiBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZzsKIAogdm9pZCBzZXRTeXN0ZW1I
YXNCYXR0ZXJ5KGJvb2wgYmF0dGVyeSkKIHsKQEAgLTM5LDYgKzQzLDkgQEAgdm9pZCBzZXRTeXN0
ZW1IYXNCYXR0ZXJ5KGJvb2wgYmF0dGVyeSkKIAogYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkKIHsK
KyAgICBpZiAoaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZykKKyAgICAgICAgcmV0dXJuICpo
YXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nOworCiAgICAgaWYgKCFoYXNCYXR0ZXJ5Lmhhc1Zh
bHVlKCkpIHsKICAgICAgICAgaGFzQmF0dGVyeSA9IFtdIHsKICNpZiBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKFdBVENIT1MpCkBAIC02Nyw0ICs3NCw1NCBAQCBib29sIHN5c3RlbUhhc0JhdHRl
cnkoKQogICAgIHJldHVybiAqaGFzQmF0dGVyeTsKIH0KIAordm9pZCByZXNldFN5c3RlbUhhc0FD
KCkKK3sKKyAgICBoYXNBQy5yZXNldCgpOworfQorCit2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wg
YWMpCit7CisgICAgaGFzQUMgPSBhYzsKK30KKworYm9vbCBzeXN0ZW1IYXNBQygpCit7CisgICAg
aWYgKGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nKQorICAgICAgICByZXR1cm4gKmhhc0FDT3ZlcnJp
ZGVGb3JUZXN0aW5nOworCisgICAgaWYgKCFoYXNBQy5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGhh
c0FDID0gW10geworI2lmIFBMQVRGT1JNKEFQUExFVFYpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlCisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBwb3dlclNvdXJjZXNJ
bmZvID0gYWRvcHRDRihJT1BTQ29weVBvd2VyU291cmNlc0luZm8oKSk7CisgICAgICAgICAgICBp
ZiAoIXBvd2VyU291cmNlc0luZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IHBvd2VyU291cmNlc0xpc3QgPSBhZG9wdENG
KElPUFNDb3B5UG93ZXJTb3VyY2VzTGlzdChwb3dlclNvdXJjZXNJbmZvLmdldCgpKSk7CisgICAg
ICAgICAgICBpZiAoIXBvd2VyU291cmNlc0xpc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRD
b3VudChwb3dlclNvdXJjZXNMaXN0LmdldCgpKTsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAg
ICAgICAgICBDRkRpY3Rpb25hcnlSZWYgZGVzY3JpcHRpb24gPSBJT1BTR2V0UG93ZXJTb3VyY2VE
ZXNjcmlwdGlvbihwb3dlclNvdXJjZXNJbmZvLmdldCgpLCBDRkFycmF5R2V0VmFsdWVBdEluZGV4
KHBvd2VyU291cmNlc0xpc3QuZ2V0KCksIGkpKTsKKyAgICAgICAgICAgICAgICBDRlR5cGVSZWYg
dmFsdWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShkZXNjcmlwdGlvbiwgQ0ZTVFIoa0lPUFNQb3dl
clNvdXJjZVN0YXRlS2V5KSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmIENGRXF1YWwo
dmFsdWUsIENGU1RSKGtJT1BTQUNQb3dlclZhbHVlKSkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCisgICAgICAgIH0oKTsKKyAgICB9CisKKyAgICByZXR1cm4gKmhhc0FDOworfQorCit2b2lk
IHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBo
YXNCYXR0ZXJ5KQoreworICAgIGhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3RpbmcgPSBXVEZNb3Zl
KGhhc0JhdHRlcnkpOworfQorCit2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5n
KE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit7CisgICAgaGFzQUNPdmVycmlkZUZvclRlc3Rpbmcg
PSBXVEZNb3ZlKGhhc0FDKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29h
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5l
Q29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKaW5kZXggOThhNTNjNDJmMzA1YjkyODRlY2Vh
NzhiNWUzNmE0NzBkNzUwZGRmYi4uN2NkZmU4NjQyMzA3NDIyMDk3YzFjNWY5NjkyMDcyMTgyMTA0
NjcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Q29jb2EuY3BwCkBAIC0zMiwxMSArMzIsMTUgQEAKICNpbmNsdWRlICJNZWRpYUNhcGFiaWxp
dGllc0RlY29kaW5nSW5mby5oIgogI2luY2x1ZGUgIk1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2Nv
YS5oIgogCiAjaW5jbHVkZSAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBrQ01WaWRlb0NvZGVjVHlwZV9W
UDkgaXMgYWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5oCitjb25zdGV4cHIgQ01WaWRlb0Nv
ZGVjVHlwZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgeyAndnAwOScgfTsKKwogc3RhdGljIENNVmlk
ZW9Db2RlY1R5cGUgdmlkZW9Db2RlY1R5cGVGcm9tUkZDNDI4MVR5cGUoU3RyaW5nIHR5cGUpCiB7
CiAgICAgaWYgKHR5cGUuc3RhcnRzV2l0aCgibXA0diIpKQpAQCAtNDUsNiArNDksOCBAQCBzdGF0
aWMgQ01WaWRlb0NvZGVjVHlwZSB2aWRlb0NvZGVjVHlwZUZyb21SRkM0MjgxVHlwZShTdHJpbmcg
dHlwZSkKICAgICAgICAgcmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX0gyNjQ7CiAgICAgaWYgKHR5
cGUuc3RhcnRzV2l0aCgiaHZjMSIpIHx8IHR5cGUuc3RhcnRzV2l0aCgiaGV2MSIpKQogICAgICAg
ICByZXR1cm4ga0NNVmlkZW9Db2RlY1R5cGVfSEVWQzsKKyAgICBpZiAodHlwZS5zdGFydHNXaXRo
KCJ2cDA5IikpCisgICAgICAgIHJldHVybiBrQ01WaWRlb0NvZGVjVHlwZV9WUDk7CiAgICAgcmV0
dXJuIDA7CiB9CiAKQEAgLTkxLDYgKzk3LDEyIEBAIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXJEZWNv
ZGluZ0NvbmZpZ3VyYXRpb25Db2NvYShNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvCiAg
ICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlm
ICh2aWRlb0NvZGVjVHlwZSA9PSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkpIHsKKyAgICAgICAgICAg
IGF1dG8gY29kZWNDb25maWd1cmF0aW9uID0gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhjb2RlYyk7
CisgICAgICAgICAgICBpZiAoIWNvZGVjQ29uZmlndXJhdGlvbiB8fCAhdmFsaWRhdGVWUFBhcmFt
ZXRlcnMoKmNvZGVjQ29uZmlndXJhdGlvbiwgaW5mbywgdmlkZW9Db25maWd1cmF0aW9uKSkgewor
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAoYWxwaGFDaGFubmVsIHx8IGhkclN1cHBvcnRlZCkgewogICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGls
aXRpZXNDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1OGQ3Zjk2YWMwMWJkNWZkYjQwM2NmOGUwYWI1YTE4
OGI5MGE3NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW5jbHVkZSAiVlA5
VXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE1lZGlhQ2FwYWJp
bGl0aWVzSW5mbzsKK3N0cnVjdCBWaWRlb0NvbmZpZ3VyYXRpb247CisKK1dFQkNPUkVfRVhQT1JU
IGV4dGVybiB2b2lkIHNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0
aW5nKGJvb2wpOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlTY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0
IHNjYWxlKTsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlc2V0T3ZlcnJpZGVWUDlTY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKCk7CisKK2V4dGVybiBib29sIHZhbGlkYXRlVlBQYXJh
bWV0ZXJzKFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkJiwgTWVkaWFDYXBhYmlsaXRpZXNJbmZv
JiwgY29uc3QgVmlkZW9Db25maWd1cmF0aW9uJik7CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkMjM0M2IwMTY4NzZmOGJmMjViOGIzZDg3NDZjNzJmZGVi
MzZkYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQpAQCAtMCwwICsxLDE3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpbXBvcnQgIkZvdXJDQy5oIgorI2ltcG9ydCAiTWVk
aWFDYXBhYmlsaXRpZXNJbmZvLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9y
dCAiU2NyZWVuUHJvcGVydGllcy5oIgorI2ltcG9ydCAiU3lzdGVtQmF0dGVyeS5oIgorI2ltcG9y
dCAiVmlkZW9Db25maWd1cmF0aW9uLmgiCisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdUb0ludGVn
ZXJDb252ZXJzaW9uLmg+CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oPgorI2ltcG9ydCAiVmlkZW9Ub29sYm94U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkg
aXMgYWRkZWQgdG8gQ01Gb3JtYXREZXNjcmlwdGlvbi5oCitjb25zdGV4cHIgQ01WaWRlb0NvZGVj
VHlwZSBrQ01WaWRlb0NvZGVjVHlwZV9WUDkgeyAndnAwOScgfTsKKworc3RhdGljIGJvb2wgaGFy
ZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKKworc3RydWN0IE92
ZXJyaWRlU2NyZWVuRGF0YSB7CisgICAgZmxvYXQgd2lkdGggeyAwIH07CisgICAgZmxvYXQgaGVp
Z2h0IHsgMCB9OworICAgIGZsb2F0IHNjYWxlIHsgMSB9OworfTsKK3N0YXRpYyBPcHRpb25hbDxP
dmVycmlkZVNjcmVlbkRhdGE+IHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmc7CisKK3ZvaWQg
c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNh
YmxlZCkKK3sKKyAgICBoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcgPSBkaXNh
YmxlZDsKK30KKwordm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rp
bmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpCit7CisgICAgc2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZyA9IG1ha2VPcHRpb25hbDxPdmVycmlkZVNjcmVlbkRhdGE+
KHsgd2lkdGgsIGhlaWdodCwgc2NhbGUgfSk7Cit9CisKK3ZvaWQgcmVzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKQoreworICAgIHNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcgPSBXVEY6Om51bGxvcHQ7Cit9CisKK2Jvb2wgdmFsaWRhdGVWUFBhcmFtZXRlcnMo
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbiwgTWVkaWFDYXBh
YmlsaXRpZXNJbmZvJiBpbmZvLCBjb25zdCBWaWRlb0NvbmZpZ3VyYXRpb24mIHZpZGVvQ29uZmln
dXJhdGlvbikKK3sKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFNlbGVjdEFuZENyZWF0ZVZpZGVv
RGVjb2Rlckluc3RhbmNlKGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSwga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgLy8gVmlkZW9Db25maWd1cmF0aW9uIGFuZCBWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZCBjYW4gaGF2ZSBjb25mbGljdGluZyB2YWx1ZXMgZm9yIEhEUiBwcm9w
ZXJ0aWVzLiBJZiBzbywgcmVqZWN0LgorICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNm
ZXJGdW5jdGlvbikgeworICAgICAgICAvLyBOb3RlOiBUcmFuc2ZlciBDaGFyYWN0ZXJpc3RpY3Mg
YXJlIGRlZmluZWQgYnkgSVNPL0lFQyAyMzA5MS0yOjIwMTkuCisgICAgICAgIGlmICgqdmlkZW9D
b25maWd1cmF0aW9uLnRyYW5zZmVyRnVuY3Rpb24gPT0gVHJhbnNmZXJGdW5jdGlvbjo6U1JHQiAm
JiBjb2RlY0NvbmZpZ3VyYXRpb24udHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgPiAxNSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJh
bnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpQUSAmJiBjb2RlY0NvbmZpZ3VyYXRp
b24udHJhbnNmZXJDaGFyYWN0ZXJpc3RpY3MgIT0gMTYpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGlmICgqdmlkZW9Db25maWd1cmF0aW9uLnRyYW5zZmVyRnVuY3Rpb24gPT0g
VHJhbnNmZXJGdW5jdGlvbjo6SExHICYmIGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJh
Y3RlcmlzdGljcyAhPSAxOCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmNvbG9yR2FtdXQpIHsKKyAgICAgICAgaWYgKCp2aWRl
b0NvbmZpZ3VyYXRpb24uY29sb3JHYW11dCA9PSBDb2xvckdhbXV0OjpSZWMyMDIwICYmIGNvZGVj
Q29uZmlndXJhdGlvbi5jb2xvclByaW1hcmllcyAhPSA5KQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmIChjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVE
ZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9D
b2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKSB7
CisgICAgICAgIGluZm8ucG93ZXJFZmZpY2llbnQgPSB0cnVlOworCisgICAgICAgIC8vIEhXIFZQ
OSBEZWNvZGVyIFByb2ZpbGUgMCAmIDI6CisgICAgICAgIGlmICghY29kZWNDb25maWd1cmF0aW9u
LnByb2ZpbGUgJiYgY29kZWNDb25maWd1cmF0aW9uLnByb2ZpbGUgIT0gMikKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBzdXBwb3J0cyB1cCB0
byBMZXZlbCA2OgorICAgICAgICBpZiAoY29kZWNDb25maWd1cmF0aW9uLmxldmVsID4gNjApCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gSFcgVlA5IERlY29kZXIgc3Vw
cG9ydHMgOCBvciAxMCBiaXQgY29sb3I6CisgICAgICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24u
Yml0RGVwdGggPiAxMCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBI
VyBWUDkgRGVjb2RlciBzdXBvcnRzIG9ubHkgNDIwIGNocm9tYSBzdWJzYW1wbGluZzoKKyAgICAg
ICAgaWYgKGNvZGVjQ29uZmlndXJhdGlvbi5jaHJvbWFTdWJzYW1wbGluZyA+IDEpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gSFcgVlA5IERlY29kZXIgZG9lcyBub3Qg
c3VwcG9ydCBhbHBoYSBjaGFubmVsOgorICAgICAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmFs
cGhhQ2hhbm5lbCAmJiAqdmlkZW9Db25maWd1cmF0aW9uLmFscGhhQ2hhbm5lbCkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBjYW4gc3VwcG9y
dCB1cCB0byA0SyBAIDEyMCBvciA4SyBAIDMwCisgICAgICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRp
b24uaGVpZ2h0IDw9IDIxNjAgJiYgdmlkZW9Db25maWd1cmF0aW9uLmZyYW1lcmF0ZSA+IDEyMCkK
KyAgICAgICAgICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgICAgIGVsc2UgaWYgKHZpZGVv
Q29uZmlndXJhdGlvbi5oZWlnaHQgPiAyMTYwICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJh
dGUgPiAzMCkKKyAgICAgICAgICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGluZm8uc21vb3RoID0gdHJ1ZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICAvLyBTVyBWUDkgRGVjb2RlciBoYXMgbXVjaCBtb3JlIHZhcmlhYmxlIGNh
cGFiaWxpdGllcyBkZXBlbmRpbmcgb24gQ1BVIGNoYXJhY3RlcmlzdGljcy4KKyAgICAvLyBGSVhN
RTogQWRkIGEgbG9va3VwIHRhYmxlIGZvciBkZXZpY2UtdG8tY2FwYWJpbGl0aWVzLiBGb3Igbm93
LCBhc3N1bWUgdGhhdCB0aGUgU1cgVlA5CisgICAgLy8gZGVjb2RlciBjYW4gc3VwcG9ydCA0SyBA
IDMwLgorICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uaGVpZ2h0IDw9IDEwODAgJiYgdmlkZW9D
b25maWd1cmF0aW9uLmZyYW1lcmF0ZSA+IDYwKQorICAgICAgICBpbmZvLnNtb290aCA9IGZhbHNl
OworICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uaGVpZ2h0IDw9IDIxNjAgJiYgdmlkZW9Db25m
aWd1cmF0aW9uLmZyYW1lcmF0ZSA+IDMwKQorICAgICAgICBpbmZvLnNtb290aCA9IGZhbHNlOwor
ICAgIGVsc2UKKyAgICAgICAgaW5mby5zbW9vdGggPSB0cnVlOworCisgICAgLy8gRm9yIHdhbGwt
cG93ZXJlZCBkZXZpY2VzLCBhbHdheXMgcmVwb3J0IFZQOSBhcyBzdXBwb3J0ZWQsIGV2ZW4gaWYg
bm90IHBvd2VyRWZmaWNpZW50LgorICAgIGlmICghc3lzdGVtSGFzQmF0dGVyeSgpKSB7CisgICAg
ICAgIGluZm8uc3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgLy8gRm9yIGJhdHRlcnktcG93ZXJlZCBkZXZpY2VzLCBhbHdheXMgcmVwb3J0IFZQOSBh
cyBzdXBwb3J0ZWQgd2hlbiBydW5uaW5nIG9uIEFDIHBvd2VyLAorICAgIC8vIGJ1dCBvbmx5IG9u
IGJhdHRlcnkgd2hlbiB0aGVyZSBpcyBhbiBhdHRhY2hlZCBzY3JlZW4gd2hvc2UgcmVzb2x1dGlv
biBpcyBsYXJnZSBlbm91Z2gKKyAgICAvLyB0byBzdXBwb3J0IDRLIHZpZGVvLgorICAgIGlmIChz
eXN0ZW1IYXNBQygpKSB7CisgICAgICAgIGluZm8uc3VwcG9ydGVkID0gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBoYXM0a1NjcmVlbiA9IGZhbHNlOworCisg
ICAgYXV0byBpczRrU2NyZWVuID0gW10oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQg
c2NhbGUpIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKKyAgICAgICAgcmV0dXJuIGhl
aWdodCAqIHNjYWxlID49IDIxNjA7CisgICAgfTsKKworICAgIGlmIChzY3JlZW5TaXplQW5kU2Nh
bGVGb3JUZXN0aW5nKQorICAgICAgICBoYXM0a1NjcmVlbiA9IGlzNGtTY3JlZW4oc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmct
PmhlaWdodCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+c2NhbGUpOworICAgIGVsc2Ug
eworICAgICAgICBmb3IgKGF1dG8mIHNjcmVlbkRhdGEgOiBnZXRTY3JlZW5Qcm9wZXJ0aWVzKCku
c2NyZWVuRGF0YU1hcC52YWx1ZXMoKSkgeworICAgICAgICAgICAgaWYgKGlzNGtTY3JlZW4oc2Ny
ZWVuRGF0YS5zY3JlZW5SZWN0LndpZHRoKCksIHNjcmVlbkRhdGEuc2NyZWVuUmVjdC5oZWlnaHQo
KSwgc2NyZWVuRGF0YS5zY2FsZUZhY3RvcikpIHsKKyAgICAgICAgICAgICAgICBoYXM0a1NjcmVl
biA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoIWhhczRrU2NyZWVuKSB7CisgICAgICAgIGluZm8uc3VwcG9y
dGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KaW5kZXggYzY0NmNmMjQ5
ZmYyMjI4YzU1ZDA4MzVmMDQzNDc1OTdkNDkyODM0OC4uYmYzZTY3OTYyYThkOGZjZmU5ZGMyYmFh
ZjE5MWQzYjczMWUxNWVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtU2NyZWVuSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF0Zm9ybVNjcmVlbklPUy5tbQpAQCAtMjAwLDggKzIwMCwxMCBAQCBTY3JlZW5Qcm9wZXJ0aWVz
IGNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCkKICAgICAgICAgaW50IHNjcmVlbkRlcHRoUGVyQ29t
cG9uZW50ID0gV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQobnVsbHB0cik7CiAgICAg
ICAgIGJvb2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yID0gV2ViQ29yZTo6c2NyZWVuU3Vw
cG9ydHNFeHRlbmRlZENvbG9yKG51bGxwdHIpOwogICAgICAgICBib29sIHNjcmVlbkhhc0ludmVy
dGVkQ29sb3JzID0gV2ViQ29yZTo6c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMoKTsKKyAgICAgICAg
Ym9vbCBoZHIgPSBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2Uoc2NyZWVuKTsKKyAgICAg
ICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBXZWJDb3JlOjpzY3JlZW5QUElGYWN0b3IoKTsKIAotICAg
ICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsrZGlzcGxheUlELCBTY3Jl
ZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2Ny
ZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVk
Q29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzIH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0
aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsrZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZh
aWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRl
cHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0lu
dmVydGVkQ29sb3JzLCBoZHIsIHNjYWxlRmFjdG9yIH0pOwogICAgICAgICAKICAgICAgICAgaWYg
KHNjcmVlbiA9PSBbUEFMOjpnZXRVSVNjcmVlbkNsYXNzKCkgbWFpblNjcmVlbl0pCiAgICAgICAg
ICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXgg
MWZmZDkyOTk1ZGZlNzBlMDE1ZTEwMGNmZGEzN2M4NjU1ZmQwM2ExMS4uYjI0YWYzMmM4M2NlYThk
MTRhMTllODNkZDIzODEzMmM4ZTlkNzA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMTM4LDcgKzEzOCw3IEBAIFNjcmVlblBy
b3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICBJT1JlZ2lzdHJ5R1BV
SUQgZ3B1SUQgPSAwOwogICAgICAgICBib29sIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5n
ZSA9IGZhbHNlOwogICAgICAgICBEeW5hbWljUmFuZ2VNb2RlIGR5bmFtaWNSYW5nZU1vZGUgPSBE
eW5hbWljUmFuZ2VNb2RlOjpOb25lOwotCisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc2Ny
ZWVuLmJhY2tpbmdTY2FsZUZhY3RvcjsKIAogICAgICAgICBpZiAoUEFMOjppc0FWRm91bmRhdGlv
bkZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFtQQUw6OmdldEFWUGxheWVyQ2xhc3MoKSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5czopXSkg
ewogICAgICAgICAgICAgZHluYW1pY1JhbmdlTW9kZSA9IGNvbnZlcnRBVlZpZGVvUmFuZ2VUb0Vu
dW0oW1BBTDo6Z2V0QVZQbGF5ZXJDbGFzcygpIHByZWZlcnJlZFZpZGVvUmFuZ2VGb3JEaXNwbGF5
czpAWyBAKGRpc3BsYXlJRCkgXV0pOwpAQCAtMTU1LDcgKzE1NSw3IEBAIFNjcmVlblByb3BlcnRp
ZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICBpZiAoZGlzcGxheU1hc2spCiAg
ICAgICAgICAgICBncHVJRCA9IGdwdUlERm9yRGlzcGxheU1hc2soZGlzcGxheU1hc2spOwogCi0g
ICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoZGlzcGxheUlELCBTY3Jl
ZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2Ny
ZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVk
Q29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWlj
UmFuZ2UsIHNjcmVlbklzTW9ub2Nocm9tZSwgZGlzcGxheU1hc2ssIGdwdUlELCBkeW5hbWljUmFu
Z2VNb2RlIH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRp
c3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3QsIGNv
bG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVuU3Vw
cG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuU3VwcG9y
dHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9jaHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJ
RCwgZHluYW1pY1JhbmdlTW9kZSwgc2NhbGVGYWN0b3IgfSk7CiAKICAgICAgICAgaWYgKCFzY3Jl
ZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQpCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0
aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggY2U5NmJhNzY3ZTBjMDU3NTgwZmUxMDVjZDJiMzM3ZTdhMTU0MmE1Ny4u
ZDY4YTdhOTYwNDhmY2Y2NjgyZGRmMTQ3NzcxZDIxZWRjNjk4ZjBhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzE5LDEwICszMTksNiBAQAogI2luY2x1ZGUgIldlYlhS
VGVzdC5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIFVTRShMSUJXRUJSVEMpCi0j
aW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaD4KLSNl
bmRpZgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIk5TU2Nyb2xsZXJJbXBEZXRhaWxzLmgiCkBAIC0zMzEs
MTAgKzMyNywxNSBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiU3lzdGVtQmF0
dGVyeS5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSA8cGFsL3Nw
aS9jb2NvYS9Db3JlVGV4dFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hT
UEkuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQorI2lu
Y2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+CisjZW5k
aWYKKwogdXNpbmcgSlNDOjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcg
SlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU7CkBAIC02MzAsNiArNjMxLDEzIEBAIEludGVybmFsczo6
SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVudCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgIEVO
QUJMRShXRUJfQVVESU8pCiAgICAgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlk
ZSA9IG51bGxwdHI7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHNldE92ZXJy
aWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRPdmVy
cmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyhXVEY6Om51bGxvcHQpOworICAgIHNldE92ZXJyaWRl
VlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGZhbHNlKTsKKyAgICByZXNldE92
ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpOworI2VuZGlmCiB9CiAKIERv
Y3VtZW50KiBJbnRlcm5hbHM6OmNvbnRleHREb2N1bWVudCgpIGNvbnN0CkBAIC01ODE4LDYgKzU4
MjYsNDQgQEAgYm9vbCBJbnRlcm5hbHM6OnN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdAogI2VuZGlm
CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wgaGFzQmF0dGVy
eSkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVN5c3Rl
bUhhc0JhdHRlcnlGb3JUZXN0aW5nKGhhc0JhdHRlcnkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oaGFzQmF0dGVyeSk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNldFN5c3RlbUhh
c0FDKGJvb2wgaGFzQUMpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6c2V0
T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoaGFzQUMpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oaGFzQUMpOworI2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQ
OURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKK3sKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2Fi
bGVkRm9yVGVzdGluZyhkaXNhYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkaXNhYmxl
ZCk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2Fs
ZShkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQsIGRvdWJsZSBzY2FsZSkKK3sKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3Rpbmcod2lkdGgsIGhlaWdodCwgc2NhbGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0od2lkdGgpOworICAgIFVOVVNFRF9QQVJBTShoZWlnaHQpOworICAgIFVOVVNFRF9QQVJBTShz
Y2FsZSk7CisjZW5kaWYKK30KKwogaW50IEludGVybmFsczo6cmVhZFByZWZlcmVuY2VJbnRlZ2Vy
KGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJlYzU5Y2JjYzAxOGZk
NmIxOWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYuLjYwZDlkOWYwNTE1ZDk2ZTMwNTVhYzZkMmM1NDEw
MDNjZjdiMjg3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTAxOCw2ICsx
MDE4LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpIGNvbnN0Owog
CisgICAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wpOworICAgIHZvaWQgc2V0U3lzdGVt
SGFzQUMoYm9vbCk7CisKKyAgICB2b2lkIHNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZyhib29sKTsKKyAgICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShkb3VibGUs
IGRvdWJsZSwgZG91YmxlKTsKKwogICAgIGludCByZWFkUHJlZmVyZW5jZUludGVnZXIoY29uc3Qg
U3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5KTsKICAgICBTdHJpbmcgZW5jb2RlZFBy
ZWZlcmVuY2VWYWx1ZShjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggODhiNDYxZTYxM2U1ODIyMjY4
M2Q5YWFhMjJiNDZhM2RiZjJlZTVjMy4uMDBjYTY1YjQ2MWJlMjg5N2Q0NTRjNDQ5MzA0ODJkZTEw
YjE1MGZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTMyLDYgKzkz
MiwxMiBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogCiAgICAgYm9vbGVhbiBzeXN0ZW1I
YXNCYXR0ZXJ5KCk7CiAKKyAgICB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbGVhbiBoYXNC
YXR0ZXJ5KTsKKyAgICB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2xlYW4gaGFzQUMpOworCisgICAg
dm9pZCBzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbGVhbiBkaXNh
YmxlZCk7CisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoZG91YmxlIHdpZHRoLCBk
b3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpOworCiAgICAgbG9uZyByZWFkUHJlZmVyZW5jZUlu
dGVnZXIoRE9NU3RyaW5nIGRvbWFpbiwgRE9NU3RyaW5nIGtleSk7CiAgICAgRE9NU3RyaW5nIGVu
Y29kZWRQcmVmZXJlbmNlVmFsdWUoRE9NU3RyaW5nIGRvbWFpbiwgRE9NU3RyaW5nIGtleSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKaW5kZXggOWE0MzQ5ZGQ0M2VlNWM1YTYzMDAwNTY1ZTY0ZGQxYzk4YzhkYTM1My4u
MjJmZDRjOGUzZTA4ZDRkYmEzZTI3MjRkMTkxYjkxNjA5MjA3MWM0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTE3MCw2ICsxNzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
ZW5jb2RlciA8PCBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHN5c3RlbUhh
c0JhdHRlcnk7CisgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNBQzsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQ1OSw2ICs0NjAsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNz
Q3JlYXQKICAgICBpZiAoIXN5c3RlbUhhc0JhdHRlcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBXVEZNb3ZlKCpzeXN0ZW1IYXNCYXR0
ZXJ5KTsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5c3RlbUhhc0FDOworICAgIGRlY29kZXIgPj4g
c3lzdGVtSGFzQUM7CisgICAgaWYgKCFzeXN0ZW1IYXNBQykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQUMgPSBXVEZNb3ZlKCpzeXN0ZW1IYXNBQyk7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYWExYjdhYTFmYjc2
YmMwN2RjODA2ZmQwMmQzZGQxY2ExOWZiNGUwYi4uYzY3NGEzYjcxNTViN2Y4YTMwYjA2ZWFhMGYz
ZDA2MGRiOTZhM2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjE0LDYgKzIxNCw3IEBAIHN0cnVjdCBXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJv
b2wgc3lzdGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CisgICAgYm9vbCBzeXN0ZW1IYXNBQyB7IGZh
bHNlIH07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAx
ZmE2MDMxZDlhZDg2NzI0ODc5ODI2YWY2MDM2ZWZkMmNiZDVjMjFiLi5mZGM5MmY4NTgzN2YzMDM3
MGZmZDA2NzVmMzdhMDU5OTQ5NTg4MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVy
ZUluUGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJk
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bvd2VyU291cmNlTm90aWZpZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KQEAgLTQwNyw2ICs0
MDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsK
KyAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0FDID0gc3lzdGVtSGFzQUMoKTsKIAogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKICAgICBpZiAoU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiJfcywgV1RG
OjpudWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0
KSkKQEAgLTY5Nyw2ICs2OTksMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3Rp
ZmljYXRpb25PYnNlcnZlcnMoKQogICAgIH1dOwogI2VuZGlmCiAjZW5kaWYKKworICAgIG1fcG93
ZXJTb3VyY2VOb3RpZmllciA9IFdURjo6bWFrZV91bmlxdWU8V2ViQ29yZTo6UG93ZXJTb3VyY2VO
b3RpZmllcj4oW3RoaXNdIChib29sIGhhc0FDKSB7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3Nl
cyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6UG93ZXJTb3VyY2VEaWRDaGFuZ2UoaGFzQUMpKTsKKyAg
ICB9KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9i
c2VydmVycygpCkBAIC03MjYsNiArNzMyLDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdp
c3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAjZW5kaWYKIAogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2
ZXIuZ2V0KCldOworCisgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKIH0KIAog
c3RhdGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmUzNTQyZWMx
YmU5NjdlNzJiOGU2NmRlMzM5NmVlODYwOTczZmQ0ZS4uYjkyOGVkNzA5ODkyYTQ5MDE1NmJkOWM2
NmVkNmM2NjBiZjU0NGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcApAQCAtODgsNiArODgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Bvd2VyU291cmNlTm90aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzV2FybWluZy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IDdhMTBlYWI3YTg2MzdiN2MzNTQ3MWZlNzEwOThmNGJjODMy
OTgxNzEuLmZmYjkzZjQ3ZDViYzZhZTQwNzM0MDQ2NzFjMzRhOGI0MDA0NDU5OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtOTQsNiArOTQsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgRXZl
bnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllcjsKKyNlbmRpZgog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcwNSw2ICs3MDgsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
UG93ZXJTb3VyY2VOb3RpZmllcj4gbV9wb3dlclNvdXJjZU5vdGlmaWVyOwogICAgIFJldGFpblB0
cjxOU09iamVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0
PiBtX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDk5YjFmMDdkMjEzMDY3ZTZhMTJmYjcwNWVjOWU1MTcx
YWU3ZjA5OTkuLmRlMjFhZTc3ZTQ3ODRlMzA4ZjcwOGYwNTNlZDcxNTY2ZTRkOTM4NGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzA3LDYgKzMwNyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFp
biwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1
ZSk7CiAgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkmJik7CiAjZW5kaWYKKyAgICB2b2lkIHBvd2VyU291cmNlRGlkQ2hhbmdlKGJv
b2wpOwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDY5MGU0ZmE1ZDZjOWFhYjVkZWM2MGQxMDAxNjA2ODc2MGE3NjFkZDAuLmNkYTA1Yjk0ZmYy
YWRiNDI0NzA1OTcyMzQ0NDJhZjM5MDM3ZDdiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNiArMTcyLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBOb3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8
U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYKKyAg
ICBQb3dlclNvdXJjZURpZENoYW5nZShib29sIGhhc0FDKQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDljYWFmMmM4MGZjMjg1MTM5OTM1YzhkYWIwZTgz
MjhiOGZhZGM1MDIuLmZlNTFiZTBlYmI4YWE1YjE0YzJhMzBmODFkZGNhOGQwZGM2OWM5ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQpAQCAtMjg3LDYgKzI4Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKICAg
ICAKICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7
CisgICAgc2V0U3lzdGVtSGFzQUMocGFyYW1ldGVycy5zeXN0ZW1IYXNBQyk7CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOwpA
QCAtMTAwMyw2ICsxMDA0LDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1NlcnZpY2VzUmVx
dWlyZWRCeUFjY2Vzc2liaWxpdHkoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6CiAgICAgcmVnaXN0
ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnBvd2VyU291cmNl
RGlkQ2hhbmdlKGJvb2wgaGFzQUMpCit7CisgICAgc2V0U3lzdGVtSGFzQUMoaGFzQUMpOworfQor
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmI5N2NkYWQ2N2MzYTNkMjlmZjky
NDkxZjRlNWZkMzA3MGQ5Y2RiZS4uYzI5YzA1ZWM4YjQ4NDM4YmZlYmU0Nzg1MTY4YjUwNDI3ZmJk
ZWY0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVz
IHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRp
ZXMvdnA5LWRlY29kaW5nSW5mby1zdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmlu
Z3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBh
YmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxODcyN2QzZWZhYWRhYWVjNWM3ZjJjYmI1OGUyOTQ5
NzI1YTM0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRp
YS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDM2IEBACitSVU4oaW50ZXJuYWxzLnNldFN5c3RlbUhhc0JhdHRlcnkodHJ1ZSkpCitS
VU4oaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDKHRydWUpKQorUlVOKGludGVybmFscy5zZXRIYXJk
d2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcodHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNl
dFZQOVNjcmVlblNpemVBbmRTY2FsZSgxMDI0LCA3NjgsIDEpKQorCitUZXN0IHRoYXQgNGsgQCAz
MGZwcyBpcyBzdXBwb3J0ZWQsIHNtb290aCwgYnV0IG5vdCBwb3dlckVmZmljaWVudAorUlVOKHBy
b21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTog
J21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9
InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAz
MTgwLCBmcmFtZXJhdGU6IDMwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAo
aW5mby5zdXBwb3J0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2ll
bnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAndHJ1ZScpIE9LCisK
K1Rlc3QgdGhhdCA0ayBAIDYwZnBzIGlzIHN1cHBvcnRlZCwgYnV0IG5vdCBzbW9vdGggb3IgcG93
ZXJFZmZpY2llbnQKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRl
Y29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTog
J3ZpZGVvL21wNDsgY29kZWNzPSJ2cDA5LjAwLjQxLjA4IicsIGhlaWdodDogMTA4MCwgYml0cmF0
ZTogODAwMDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiA2MCB9fSk7KQorUHJvbWlzZSByZXNv
bHZlZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVE
IChpbmZvLnBvd2VyRWZmaWNpZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9v
dGggPT0gJ2ZhbHNlJykgT0sKKworVGVzdCB0aGF0IFNXIFZQOSBkZWNvZGVyIGlzIG5vdCBzdXBw
b3J0ZWQgb24gYmF0dGVyeSBwb3dlciB3aGVuIHNjcmVlbiBpcyBub3QgNGsgcmVzb2x1dGlvbgor
UlVOKGludGVybmFscy5zZXRTeXN0ZW1IYXNBQyhmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmln
YXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNl
JywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4w
OCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0
ZTogMzAgfX0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRl
ZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNl
JykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAnZmFsc2UnKSBPSworCitUZXN0IHRoYXQg
U1cgVlA5IGRlY29kZXIgaXMgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4g
aXMgYXQgbGVhc3QgNGsgcmVzb2x1dGlvbgorUlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUoMzg0MCwgMjE2MCwgMSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNh
cGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsg
Y29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBoZWlnaHQ6
IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOykK
K1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAndHJ1ZScp
IE9LCitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBPSworRVhQRUNU
RUQgKGluZm8uc21vb3RoID09ICd0cnVlJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVj
b2RpbmdJbmZvLXN3Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFj
YXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZTliNDNm
ODFiNDA5NDE4ZWM2YjQ5MDc3N2NlY2UzNzU4NWJhNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5n
SW5mby1zdy5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0uLi8uLi8uLi8uLi9tZWRpYS92aWRlby10ZXN0LmpzPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB2YXIgcHJv
bWlzZTsKKyAgICB2YXIgaW5mbzsKKworICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAg
eworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0
KCJJbnRlcm5hbHMgaXMgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4iKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQmF0
dGVyeSh0cnVlKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRTeXN0ZW1IYXNBQyh0cnVl
KScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxl
ZEZvclRlc3RpbmcodHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0VlA5U2NyZWVu
U2l6ZUFuZFNjYWxlKDEwMjQsIDc2OCwgMSknKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycp
OworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCA0ayBAIDMwZnBzIGlzIHN1cHBvcnRl
ZCwgc21vb3RoLCBidXQgbm90IHBvd2VyRWZmaWNpZW50Jyk7CisgICAgICAgIHJ1bigicHJvbWlz
ZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVk
aWEtc291cmNlJywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz1cInZw
MDkuMDAuNDEuMDhcIicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTogODAwMDAwLCB3aWR0aDogMzE4
MCwgZnJhbWVyYXRlOiAzMCB9fSk7Iik7CisgICAgICAgIGluZm8gPSBhd2FpdCBzaG91bGRSZXNv
bHZlKHByb21pc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc3VwcG9ydGVkJywgdHJ1
ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5wb3dlckVmZmljaWVudCcsIGZhbHNlKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnNtb290aCcsIHRydWUpOworCisgICAgICAgIGNv
bnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB0aGF0IDRrIEAgNjBm
cHMgaXMgc3VwcG9ydGVkLCBidXQgbm90IHNtb290aCBvciBwb3dlckVmZmljaWVudCcpOworCisg
ICAgICAgIHJ1bigicHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGlu
Z0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRl
by9tcDQ7IGNvZGVjcz1cInZwMDkuMDAuNDEuMDhcIicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTog
ODAwMDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiA2MCB9fSk7Iik7CisgICAgICAgIGluZm8g
PSBhd2FpdCBzaG91bGRSZXNvbHZlKHByb21pc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2lu
Zm8uc3VwcG9ydGVkJywgdHJ1ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5wb3dlckVm
ZmljaWVudCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnNtb290aCcsIGZh
bHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2RlciBpcyBub3Qgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93
ZXIgd2hlbiBzY3JlZW4gaXMgbm90IDRrIHJlc29sdXRpb24nKTsKKyAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2V0U3lzdGVtSGFzQUMoZmFsc2UpJyk7CisgICAgICAgIHJ1bigicHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291
cmNlJywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz1cInZwMDkuMDAu
NDEuMDhcIicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTogODAwMDAwLCB3aWR0aDogMzE4MCwgZnJh
bWVyYXRlOiAzMCB9fSk7Iik7CisgICAgICAgIGluZm8gPSBhd2FpdCBzaG91bGRSZXNvbHZlKHBy
b21pc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc3VwcG9ydGVkJywgZmFsc2UpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zbW9vdGgnLCBmYWxzZSk7CisKKyAgICAgICAgY29uc29s
ZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgU1cgVlA5IGRlY29k
ZXIgaXMgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4gaXMgYXQgbGVhc3Qg
NGsgcmVzb2x1dGlvbicpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUoMzg0MCwgMjE2MCwgMSknKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdh
dG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2Un
LCB2aWRlbzogeyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4w
OFwiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJh
dGU6IDMwIH19KTsiKTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlz
ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVlKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50JywgZmFsc2UpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ2luZm8uc21vb3RoJywgdHJ1ZSk7CisKKyAgICAgICAgZW5kVGVzdCgpOwor
ICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiIC8+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404276</attachid>
            <date>2020-07-14 13:48:21 -0700</date>
            <delta_ts>2020-07-14 14:03:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214316-20200714134820.patch</filename>
            <type>text/plain</type>
            <size>56766</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJiODMwMzU3N2FlNjUw
MmFjNzc1OTU3MmMwNjQwMjk2OWM2YTJkOC4uYjM1MWZiZTU2NzIzZjVlZTdjNzA3NDZkZDU3Y2Q3
NDQ5YTI2OWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL21lZGlh
L21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbAorCisgICAgICAgIEFk
ZCBzb21lIGZvdW5kYXRpb25hbCBzdXBwb3J0IGZvciBTVyBWUDksIHdoaWNoIGR1ZSB0byBwb2xp
Y3kgZGVjaXNpb25zIHdpbGwgbmVlZCBpbmZvcm1hdGlvbgorICAgICAgICBib3RoIG9uIHRoZSBz
eXN0ZW0gYmF0dGVyeSBzdGF0dXMsIGJ1dCBhbHNvIHBvd2VyIGFkYXB0ZXIgc3RhdHVzLCBhbmQg
dGhlc2UgbmVlZCB0byBiZSBzaGlwcGVkCisgICAgICAgIGludG8gdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcyBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgQWRkIHNvbWUgSW50ZXJuYWwgb3Zl
cnJpZGUgc2V0dGluZ3MgdG8gYWxsb3cgdGhlIHBvbGljaWVzIHRvIGJlIGVmZmVjdGl2ZWx5IHRl
c3RlZCB0aHJvdWdoCisgICAgICAgIExheW91VGVzdHMuIFRoaXMgaW5jbHVkZXMgb3ZlcnJpZGVz
IGZvciBzeXN0ZW0gYmF0dGVyeSBhbmQgQUMgc3RhdGUsIGFzIHdlbGwgYXMgb3ZlcnJpZGVzIGZv
cgorICAgICAgICBzY3JlZW4gc2l6ZSBhbmQgcmVzb2x1dGlvbi4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VO
b3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5v
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6On5Qb3dlclNv
dXJjZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6Om5v
dGlmeVBvd2VyU291cmNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW06Cisg
ICAgICAgIChXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnJl
c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U3lzdGVtSGFzQUMpOgorICAg
ICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVy
cmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25maWd1cmF0aW9uQ29jb2EpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVW
UFBhcmFtZXRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTA3LTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBwYXJzaW5nIFZQLXN0eWxlIGNvZGVjIHN0cmluZ3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwppbmRleCA2OTJjYWEyOWI3NjE4NTI4YjRjYjMxODdlZTU2MmE5YjkzMjc2OGI3Li4xMWI4
MGEyZTA1OGY2YWJjOGE4YzkzYjU5YmM4MTNjZGZmNTc5NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNy0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBNZWRpYUNhcGFiaWxpdGllcyBzdXBwb3J0IGZv
ciBTVyBWUDkgZGVjb2Rlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNDMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJLmg6CisKIDIwMjAtMDctMDIgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBBZG9wdCBB
VlBsYXllci52aWRlb1JhbmdlT3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjZiOTMzMjM4MmIwMTAzODli
ZDUxMzVhMGZjNjc0NjU4NDM4Yzk3YS4uMzViMzdiNzBjNzBlNzY5MzBiYmYwNDkwYzg3MzBlZWUy
MTQ2ZmQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMC0wNy0xNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBNZWRpYUNhcGFi
aWxpdGllcyBzdXBwb3J0IGZvciBTVyBWUDkgZGVjb2Rlci4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDMxNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3MgdGhlIHN5c3RlbSBBQyBzdGF0ZSB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBhbHNvIGNyZWF0ZQor
ICAgICAgICBhIHBvd2VyIHN0YXRlIGxpc3RlbmVyIHNvIHRoZSBXZWJQcm9jZXNzIGNhbiBiZSB1
cGRhdGVkIGR5bmFtaWNhbGx5LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lz
dGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlk
Q2hhbmdlKToKKwogMjAyMC0wNy0wMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjT1NdIEFkb3B0IEFWUGxheWVyLnZpZGVvUmFuZ2VPdmVycmlkZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCmluZGV4IDcwMmI5
NTY2MjBmNTE0ZTViMDI3ZjlmOWRiZmY3YmQ4YzFmMGRlYjguLjQ5OTliOGViMjY0Y2QxNmQ4NDRk
YjczODQ2NjEwNTRkNzZhMDRhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0lPUFNMaWJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9JT1BTTGliU1BJLmgKQEAgLTM2LDYgKzM2LDkgQEAKIAogI2RlZmluZSBrSU9QU1R5cGVL
ZXkgIlR5cGUiCiAjZGVmaW5lIGtJT1BTSW50ZXJuYWxCYXR0ZXJ5VHlwZSAiSW50ZXJuYWxCYXR0
ZXJ5IgorI2RlZmluZSBrSU9QU1Bvd2VyU291cmNlU3RhdGVLZXkgIlBvd2VyIFNvdXJjZSBTdGF0
ZSIKKyNkZWZpbmUga0lPUFNBQ1Bvd2VyVmFsdWUgIkFDIFBvd2VyIgorI2RlZmluZSBrSU9QU05v
dGlmeVBvd2VyU291cmNlICJjb20uYXBwbGUuc3lzdGVtLnBvd2Vyc291cmNlcy5zb3VyY2UiCiAK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA0NGVhMDhmNjQyMTIzNjJkYzMx
MTMxZDg0NjdhZWUyNzUxNzRhZjdlLi4xZDdmMjA5ODY3YzFkNGUwYTQyNzQ2OTc2NTVmOGQxYjEz
NmRhZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI0MSw2ICsyNDEsNyBAQCBwbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRD
dXN0b21EYXRhQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtUGFzdGVib2FyZENvY29h
Lm1tCiBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbQor
cGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQogcGxhdGZvcm0vY29jb2EvUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KIHBsYXRmb3JtL2NvY29hL1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCkBAIC0z
NDksNiArMzUwLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSW50UmVjdENvY29hLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29j
b2EuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9TeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4
dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1RleHRUcmFja1JlcHJlc2VudGF0aW9uQ29j
b2EubW0KK3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVDQUxheWVyRXh0cmFzLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24ubW0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNmU4
N2IwNWE5NmM0NWFhZGYxMjEyZmEzYTdkZmQxZTE4YzU2Yjc3Li45M2UyMjBiMmI4OTA2YmEzMmVh
N2VlMDg1MzczODlkN2M0N2M2NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MjAwLDYgKzQyMDAsNyBAQAogCQlDREM2OURE
NjE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNjlERDQxNjMyMDI2
QzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREM2OUREQTE2MzcxRkQ0MDA3
QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzY5REQ4MTYzNzFGRDMwMDdDMzhE
RiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQzczNDE1MTk3Nzg5NkQwMDQ2QkZD
NSAvKiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzczNDEzMTk3Nzg5NkMwMDQ2QkZDNSAvKiBDQVJpbmdCdWZmZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDREM3NDcwNDI0
QkUyRkM3MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8q
IFBvd2VyU291cmNlTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREM4QjVBMjE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTAxODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAqLzsgfTsKIAkJQ0RDOEI1QTMxODA0NjM0NzAw
MTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTExODA0NjM0NzAw
MTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oICovOyB9Owog
CQlDREM4QjVBNjE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUE0
MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICovOyB9OwpA
QCAtMTQxMDcsNiArMTQxMDgsOCBAQAogCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVk
aWFTb3VyY2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
U291cmNlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVCMjE4
MThGNUVEMDBFRTRDNDEgLyogU291cmNlQnVmZmVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTb3VyY2VCdWZmZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENjQxRUM3MTgxRUQ2MDEwMEVFNEM0MSAvKiBNZWRpYVNhbXBsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVNhbXBsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVlA5VXRpbGl0aWVzQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0Q2RkU1QjgyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVlA5VXRpbGl0aWVzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVlA5VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVlA5VXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0Q3MjBCNDcyMjY4MkM3RTAwMDQ3RkRFIC8qIElTT0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJv
eC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyODMsNiArMTQyODYsOCBAQAogCQlD
REM2OUREOTE2MzcxRkQzMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVs
bFNjcmVlblBsYWNlaG9sZGVyVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0RDNzM0MTIxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQVJpbmdCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREM3MzQxMzE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENBUmluZ0J1ZmZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREM3NDcwMDI0QkUyNjc5MDBDMTg2OEIgLyogUG93
ZXJTb3VyY2VOb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3dlclNvdXJjZU5vdGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzc0NzAxMjRCRTI2NzkwMEMxODY4QiAv
KiBQb3dlclNvdXJjZU5vdGlmaWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUG93ZXJTb3Vy
Y2VOb3RpZmllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RDOEI1QTAxODA0
NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
OEI1QTExODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
OEI1QTQxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGVB
VkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM2MzAsNiArMjM2MzUs
OCBAQAogCQkJCUNEQTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2Rl
bC5oICovLAogCQkJCUNEQTI5QTBEMUNCRDlDRkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5oICovLAogCQkJCUNEQTI5QTBDMUNCRDlDRkUwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSAqLywKKwkJCQlDREM3NDcwMDI0QkUy
Njc5MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oICovLAorCQkJCUNEQzc0NzAxMjRC
RTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLm1tICovLAogCQkJCTQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLywK
IAkJCQkxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5oICovLAog
CQkJCTFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250cm9sbGVyLm1tICovLApA
QCAtMjU3NDQsMTEgKzI1NzUxLDExIEBACiAJCQkJMDc2RTExQkUxRjY4M0UwRDAwMTc3Mzk1IC8q
IFRyYWNrUHJpdmF0ZUJhc2UuY3BwICovLAogCQkJCUJFOTEzRDdGMTgxRUY4RTUwMERDQjA5RSAv
KiBUcmFja1ByaXZhdGVCYXNlLmggKi8sCiAJCQkJRTRBRkNGQTQwREFGMjlBMzAwRjVGNTVDIC8q
IFVuaXRCZXppZXIuaCAqLywKLQkJCQlDRDZGRTVCQTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRp
bGl0aWVzLmggKi8sCi0JCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGll
cy5jcHAgKi8sCiAJCQkJMEY1QTU3Q0EyMjlCMThBRTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5j
cHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAwRDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICov
LAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRDOSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICov
LAorCQkJCUNENkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAor
CQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKIAkJCQkx
NDExRENCMDE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oICovLAogCQkJCTkzOUIwMkVD
MEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmNwcCAqLywKIAkJCQk5MzlCMDJFRDBF
QTJEQkM0MDBDNTQ1NzAgLyogV2lkdGhJdGVyYXRvci5oICovLApAQCAtMjU4ODYsNiArMjU4OTMs
OCBAQAogCQkJCUU0RThCNEVBMjE2Qjc5RTUwMEI4ODM0RCAvKiBTeXN0ZW1Gb250RGF0YWJhc2VD
b3JlVGV4dC5oICovLAogCQkJCTUyNjcyNEYyMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkNvY29hLmggKi8sCiAJCQkJNTI2NzI0RjExQ0IyRkRGNjAwNzU5NzREIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EubW0gKi8sCisJCQkJQ0Q2RkU1QjcyNEJDRTY0
NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi8sCisJCQkJQ0Q2RkU1QjgyNEJDRTY0
NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLm1tICovLAogCQkJCTJEM0VGNDQ0MTkxNzkx
NUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaCAqLywKIAkJ
CQkyRDNFRjQ0NTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRl
bGVnYXRlLm1tICovLAogCQkJCTJEM0VGNDQ2MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJDb3JlQ0FM
YXllckV4dHJhcy5oICovLApAQCAtMzI2NDAsNiArMzI2NDksNyBAQAogCQkJCUExNDk3ODcxMUFC
QUYzQTUwMENFRjdFNCAvKiBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUM3NjJCMTQ5N0ZFMTQwMEJDNDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyNjYwMUVCRjE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3Rv
cnlJT1MuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQzc0NzA0MjRCRTJGQzcwMEMxODY4QiAvKiBQ
b3dlclNvdXJjZU5vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0FBNDg3MDE0QTA1MjUz
MDA4OEZBQzQgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE1QkUxOTUxRDU0RjVGQjAwREQ3QzY4IC8qIFBsYXRmb3JtR2FtZXBh
ZC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVl
bi5jcHAKaW5kZXggOWEwZDhmNWM1N2Y1ODY0NDVmNjk5MDgzOTVlNGJjMTA3YzZiMDY3Mi4uYmE1
MGI2ODhhYjZkMGJhZTVkMTk5ZmEwYmFjNGI3ZTIwMDRiYWY4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcApAQCAtMzgsNiArMzgsMTEgQEAgc3RhdGljIFNj
cmVlblByb3BlcnRpZXMmIHNjcmVlblByb3BlcnRpZXMoKQogICAgIHJldHVybiBzY3JlZW5Qcm9w
ZXJ0aWVzOwogfQogCitjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJiBnZXRTY3JlZW5Qcm9wZXJ0aWVz
KCkKK3sKKyAgICByZXR1cm4gc2NyZWVuUHJvcGVydGllcygpOworfQorCiBQbGF0Zm9ybURpc3Bs
YXlJRCBwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkKIHsKICAgICByZXR1cm4gc2NyZWVuUHJvcGVy
dGllcygpLnByaW1hcnlEaXNwbGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaAppbmRleCBjODExZWM4ODhkNjVjODlhNmE3MTNmMGY1ODdmMWVhOGIwOTg0YzAwLi43
MGQ2ZjEyNWM2YjYwMzE4NmM2NTE0OWZiODczZjViZTNlMDU5Y2EzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTEwOSw2ICsxMDksNyBAQCBzdHJ1Y3QgU2Ny
ZWVuRGF0YTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNj
cmVlblByb3BlcnRpZXMoKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2NyZWVuUHJvcGVydGll
cyhjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJik7Citjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJiBnZXRT
Y3JlZW5Qcm9wZXJ0aWVzKCk7CiBjb25zdCBTY3JlZW5EYXRhKiBzY3JlZW5EYXRhKFBsYXRmb3Jt
RGlzcGxheUlEIHNjcmVlbmRpc3BsYXlJRCk7CiBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybURpc3Bs
YXlJRCBwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggYTFhNjNkNjdiY2ZlZTA2YjUwNDBkMTk2MmY0
ZGUwNTdkMjFmNTYzMi4uM2UyZmVmMGIyNzRmNjA4ZWUxZDVlMDQ2NGYxYjgwYWNlZWUyNDA1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaApAQCAtNTIsNiAr
NTIsMTAgQEAgc3RydWN0IFNjcmVlbkRhdGEgewogICAgIER5bmFtaWNSYW5nZU1vZGUgcHJlZmVy
cmVkRHluYW1pY1JhbmdlTW9kZSB7IER5bmFtaWNSYW5nZU1vZGU6OlN0YW5kYXJkIH07CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBmbG9h
dCBzY2FsZUZhY3RvciB7IDEgfTsKKyNlbmRpZgorCiAgICAgZW51bSBjbGFzcyBDb2xvclNwYWNl
VHlwZSA6IHVpbnQ4X3QgeyBOb25lLCBOYW1lLCBEYXRhIH07CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxTY3JlZW5EYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpA
QCAtOTksNiArMTAzLDEwIEBAIHZvaWQgU2NyZWVuRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBzY3JlZW5Jc01vbm9jaHJvbWUgPDwgZGlzcGxheU1h
c2sgPDwgZ3B1SUQgPDwgcHJlZmVycmVkRHluYW1pY1JhbmdlTW9kZTsKICNlbmRpZgogCisjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGVuY29kZXIgPDwgc2Nh
bGVGYWN0b3I7CisjZW5kaWYKKwogICAgIGlmIChjb2xvclNwYWNlKSB7CiAgICAgICAgIC8vIFRy
eSB0byBlbmNvZGUgdGhlIG5hbWUuCiAgICAgICAgIGlmIChhdXRvIG5hbWUgPSBhZG9wdENGKENH
Q29sb3JTcGFjZUNvcHlOYW1lKGNvbG9yU3BhY2UuZ2V0KCkpKSkgewpAQCAtMTgyLDYgKzE5MCwx
MyBAQCBPcHRpb25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE9wdGlvbmFsPGZsb2F0PiBzY2Fs
ZUZhY3RvcjsKKyAgICBkZWNvZGVyID4+IHNjYWxlRmFjdG9yOworICAgIGlmICghc2NhbGVGYWN0
b3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisjZW5kaWYKKwogICAgIENvbG9yU3Bh
Y2VUeXBlIGRhdGFUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVR5cGUpKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMjI2LDcgKzI0MSwxMCBAQCBPcHRpb25hbDxT
Y3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAg
V1RGTW92ZSgqc2NyZWVuSXNNb25vY2hyb21lKSwKICAgICAgICAgV1RGTW92ZSgqZGlzcGxheU1h
c2spLAogICAgICAgICBXVEZNb3ZlKCpncHVJRCksCi0gICAgICAgIFdURk1vdmUoKnByZWZlcnJl
ZER5bmFtaWNSYW5nZU1vZGUpCisgICAgICAgIFdURk1vdmUoKnByZWZlcnJlZER5bmFtaWNSYW5n
ZU1vZGUpLAorI2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgICAgICBXVEZNb3ZlKCpzY2FsZUZhY3RvciksCiAjZW5kaWYKICAgICB9IH07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWRlOTZmZjVlOThhYTNjMDhlMmJkYzY0YzBkMDI2NDAzYWYwYmNiOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291
cmNlTm90aWZpZXIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBQb3dlclNvdXJjZU5vdGlmaWVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICB1c2luZyBQb3dlclNvdXJjZU5vdGlmaWVyQ2FsbGJhY2sgPSBXVEY6OkZ1
bmN0aW9uPHZvaWQoYm9vbCBoYXNBQyk+OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBv
d2VyU291cmNlTm90aWZpZXIoUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrJiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIH5Qb3dlclNvdXJjZU5vdGlmaWVyKCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZv
aWQgbm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7CisKKyAgICBPcHRpb25hbDxpbnQ+IG1fdG9r
ZW5JRDsKKyAgICBQb3dlclNvdXJjZU5vdGlmaWVyQ2FsbGJhY2sgbV9jYWxsYmFjazsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNl
Tm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5v
dGlmaWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNDgwOGY1OTdmYmYwZjhkODQ5MThjNWQ1MDZkNDhhMzJj
NDZmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Q
b3dlclNvdXJjZU5vdGlmaWVyLm1tCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG93ZXJTb3VyY2VOb3RpZmllci5oIgorCisjaW1w
b3J0ICJTeXN0ZW1CYXR0ZXJ5LmgiCisjaW1wb3J0IDxub3RpZnkuaD4KKyNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvSU9QU0xpYlNQSS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bvd2VyU291
cmNlTm90aWZpZXI6OlBvd2VyU291cmNlTm90aWZpZXIoUG93ZXJTb3VyY2VOb3RpZmllckNhbGxi
YWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorewor
ICAgIGludCB0b2tlbiA9IDA7CisgICAgYXV0byBzdGF0dXMgPSBub3RpZnlfcmVnaXN0ZXJfZGlz
cGF0Y2goa0lPUFNOb3RpZnlQb3dlclNvdXJjZSwgJnRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeKGludCkgeworICAgICAgICBub3RpZnlQb3dlclNvdXJjZUNoYW5nZWQoKTsKKyAg
ICB9KTsKKyAgICBpZiAoc3RhdHVzID09IE5PVElGWV9TVEFUVVNfT0spCisgICAgICAgIG1fdG9r
ZW5JRCA9IHRva2VuOworfQorCitQb3dlclNvdXJjZU5vdGlmaWVyOjp+UG93ZXJTb3VyY2VOb3Rp
ZmllcigpCit7CisgICAgaWYgKG1fdG9rZW5JRCkKKyAgICAgICAgbm90aWZ5X2NhbmNlbCgqbV90
b2tlbklEKTsKK30KKwordm9pZCBQb3dlclNvdXJjZU5vdGlmaWVyOjpub3RpZnlQb3dlclNvdXJj
ZUNoYW5nZWQoKQoreworICAgIHJlc2V0U3lzdGVtSGFzQUMoKTsKKyAgICBpZiAobV9jYWxsYmFj
aykKKyAgICAgICAgbV9jYWxsYmFjayhzeXN0ZW1IYXNBQygpKTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCmluZGV4IDVhZGE4OWU2NGZh
YzQ3NTY1YWYzYjEyYmEzMjFlMTEyYjNiNjc0NjIuLmFmMzBlODJiOTk0ZmFjZjM2YzQ0ZDZlMTE2
YTI3ZTc0MTFkNjllODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1N5c3RlbUJhdHRlcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0
ZW1CYXR0ZXJ5LmgKQEAgLTMwLDQgKzMwLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtSGFzQmF0dGVyeShib29sKTsKIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpOwogCitXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0U3lz
dGVtSGFzQUMoKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtSGFzQUMoYm9vbCk7CitX
RUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0FDKCk7CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsK
K1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0
aW9uYWw8Ym9vbD4mJik7CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1N5c3RlbUJhdHRlcnkubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
eXN0ZW1CYXR0ZXJ5Lm1tCmluZGV4IDZjMTNlNWViNzBkOGU1MTQzZWRkMjg4MWRkMjllMTA3NTMw
YjU5ZGEuLjJiYTI3Zjc3YTkzNDgzZGQ4ZDFiNTlhNGFlNTlhZGZmMWI2M2M0NzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQpAQCAtMjYsMTEg
KzI2LDE1IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlN5c3RlbUJhdHRlcnkuaCIK
IAorI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEku
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0
dGVyeTsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBoYXNBQzsKK3N0YXRpYyBPcHRpb25hbDxib29s
PiBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nOworc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhh
c0FDT3ZlcnJpZGVGb3JUZXN0aW5nOwogCiB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBi
YXR0ZXJ5KQogewpAQCAtMzksNiArNDMsOSBAQCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9v
bCBiYXR0ZXJ5KQogCiBib29sIHN5c3RlbUhhc0JhdHRlcnkoKQogeworICAgIGlmIChoYXNCYXR0
ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nKQorICAgICAgICByZXR1cm4gKmhhc0JhdHRlcnlPdmVycmlk
ZUZvclRlc3Rpbmc7CisKICAgICBpZiAoIWhhc0JhdHRlcnkuaGFzVmFsdWUoKSkgewogICAgICAg
ICBoYXNCYXR0ZXJ5ID0gW10gewogI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oV0FUQ0hP
UykKQEAgLTY3LDQgKzc0LDU0IEBAIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpCiAgICAgcmV0dXJu
ICpoYXNCYXR0ZXJ5OwogfQogCit2b2lkIHJlc2V0U3lzdGVtSGFzQUMoKQoreworICAgIGhhc0FD
LnJlc2V0KCk7Cit9CisKK3ZvaWQgc2V0U3lzdGVtSGFzQUMoYm9vbCBhYykKK3sKKyAgICBoYXNB
QyA9IGFjOworfQorCitib29sIHN5c3RlbUhhc0FDKCkKK3sKKyAgICBpZiAoaGFzQUNPdmVycmlk
ZUZvclRlc3RpbmcpCisgICAgICAgIHJldHVybiAqaGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CisK
KyAgICBpZiAoIWhhc0FDLmhhc1ZhbHVlKCkpIHsKKyAgICAgICAgaGFzQUMgPSBbXSB7CisjaWYg
UExBVEZPUk0oQVBQTEVUVikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAg
ICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IHBvd2VyU291cmNlc0luZm8gPSBhZG9wdENGKElP
UFNDb3B5UG93ZXJTb3VyY2VzSW5mbygpKTsKKyAgICAgICAgICAgIGlmICghcG93ZXJTb3VyY2Vz
SW5mbykKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBSZXRhaW5Q
dHI8Q0ZBcnJheVJlZj4gcG93ZXJTb3VyY2VzTGlzdCA9IGFkb3B0Q0YoSU9QU0NvcHlQb3dlclNv
dXJjZXNMaXN0KHBvd2VyU291cmNlc0luZm8uZ2V0KCkpKTsKKyAgICAgICAgICAgIGlmICghcG93
ZXJTb3VyY2VzTGlzdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KHBvd2VyU291cmNl
c0xpc3QuZ2V0KCkpOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgICAgIENGRGljdGlv
bmFyeVJlZiBkZXNjcmlwdGlvbiA9IElPUFNHZXRQb3dlclNvdXJjZURlc2NyaXB0aW9uKHBvd2Vy
U291cmNlc0luZm8uZ2V0KCksIENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgocG93ZXJTb3VyY2VzTGlz
dC5nZXQoKSwgaSkpOworICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZSA9IENGRGljdGlv
bmFyeUdldFZhbHVlKGRlc2NyaXB0aW9uLCBDRlNUUihrSU9QU1Bvd2VyU291cmNlU3RhdGVLZXkp
KTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgQ0ZFcXVhbCh2YWx1ZSwgQ0ZTVFIoa0lP
UFNBQ1Bvd2VyVmFsdWUpKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICAgICAgfSgp
OworICAgIH0KKworICAgIHJldHVybiAqaGFzQUM7Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0
ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmIGhhc0JhdHRlcnkpCit7Cisg
ICAgaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZyA9IFdURk1vdmUoaGFzQmF0dGVyeSk7Cit9
CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4m
JiBoYXNBQykKK3sKKyAgICBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZyA9IFdURk1vdmUoaGFzQUMp
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeUNvY29hLmNwcAppbmRleCA5OGE1M2M0MmYzMDViOTI4NGVjZWE3OGI1ZTM2YTQ3MGQ3NTBk
ZGZiLi43Y2RmZTg2NDIzMDc0MjIwOTdjMWM1Zjk2OTIwNzIxODIxMDQ2NzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKQEAg
LTMyLDExICszMiwxNSBAQAogI2luY2x1ZGUgIk1lZGlhQ2FwYWJpbGl0aWVzRGVjb2RpbmdJbmZv
LmgiCiAjaW5jbHVkZSAiTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAKICNpbmNsdWRl
ICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJ
WE1FOiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBD
TUZvcm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhwciBDTVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVv
Q29kZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCiBzdGF0aWMgQ01WaWRlb0NvZGVjVHlwZSB2aWRl
b0NvZGVjVHlwZUZyb21SRkM0MjgxVHlwZShTdHJpbmcgdHlwZSkKIHsKICAgICBpZiAodHlwZS5z
dGFydHNXaXRoKCJtcDR2IikpCkBAIC00NSw2ICs0OSw4IEBAIHN0YXRpYyBDTVZpZGVvQ29kZWNU
eXBlIHZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKFN0cmluZyB0eXBlKQogICAgICAgICBy
ZXR1cm4ga0NNVmlkZW9Db2RlY1R5cGVfSDI2NDsKICAgICBpZiAodHlwZS5zdGFydHNXaXRoKCJo
dmMxIikgfHwgdHlwZS5zdGFydHNXaXRoKCJoZXYxIikpCiAgICAgICAgIHJldHVybiBrQ01WaWRl
b0NvZGVjVHlwZV9IRVZDOworICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoInZwMDkiKSkKKyAgICAg
ICAgcmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAt
OTEsNiArOTcsMTIgQEAgdm9pZCBjcmVhdGVNZWRpYVBsYXllckRlY29kaW5nQ29uZmlndXJhdGlv
bkNvY29hKE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uJiYgY28KICAgICAgICAgICAgICAgICBj
YWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHZpZGVvQ29kZWNUeXBl
ID09IGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgeworICAgICAgICAgICAgYXV0byBjb2RlY0NvbmZp
Z3VyYXRpb24gPSBwYXJzZVZQQ29kZWNQYXJhbWV0ZXJzKGNvZGVjKTsKKyAgICAgICAgICAgIGlm
ICghY29kZWNDb25maWd1cmF0aW9uIHx8ICF2YWxpZGF0ZVZQUGFyYW1ldGVycygqY29kZWNDb25m
aWd1cmF0aW9uLCBpbmZvLCB2aWRlb0NvbmZpZ3VyYXRpb24pKSB7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlm
IChhbHBoYUNoYW5uZWwgfHwgaGRyU3VwcG9ydGVkKSB7CiAgICAgICAgICAgICAgICAgY2FsbGJh
Y2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDU4ZDdmOTZhYzAxYmQ1ZmRiNDAzY2Y4ZTBhYjVhMTg4YjkwYTc0YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0
aWxpdGllc0NvY29hLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgTWVkaWFDYXBhYmlsaXRpZXNJbmZvOworc3Ry
dWN0IFZpZGVvQ29uZmlndXJhdGlvbjsKKworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0
T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCk7CitXRUJD
T1JFX0VYUE9SVCBleHRlcm4gdm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpOworV0VCQ09S
RV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcoKTsKKworZXh0ZXJuIGJvb2wgdmFsaWRhdGVWUFBhcmFtZXRlcnMoVlBDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmQmLCBNZWRpYUNhcGFiaWxpdGllc0luZm8mLCBjb25zdCBWaWRlb0Nv
bmZpZ3VyYXRpb24mKTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWQyMzQzYjAxNjg3NmY4YmYyNWI4YjNkODc0NmM3MmZkZWIzNmRhZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxp
dGllc0NvY29hLm1tCkBAIC0wLDAgKzEsMTc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCisKKyNpZiBQTEFURk9STShD
T0NPQSkKKworI2ltcG9ydCAiRm91ckNDLmgiCisjaW1wb3J0ICJNZWRpYUNhcGFiaWxpdGllc0lu
Zm8uaCIKKyNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJTY3JlZW5Qcm9wZXJ0
aWVzLmgiCisjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5LmgiCisjaW1wb3J0ICJWaWRlb0NvbmZpZ3Vy
YXRpb24uaCIKKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4K
KworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisjaW1wb3J0ICJW
aWRlb1Rvb2xib3hTb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBDTUZv
cm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhwciBDTVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVvQ29k
ZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCitzdGF0aWMgYm9vbCBoYXJkd2FyZVZQOURlY29kZXJE
aXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9OworCitzdHJ1Y3QgT3ZlcnJpZGVTY3JlZW5EYXRh
IHsKKyAgICBmbG9hdCB3aWR0aCB7IDAgfTsKKyAgICBmbG9hdCBoZWlnaHQgeyAwIH07CisgICAg
ZmxvYXQgc2NhbGUgeyAxIH07Cit9Oworc3RhdGljIE9wdGlvbmFsPE92ZXJyaWRlU2NyZWVuRGF0
YT4gc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZzsKKwordm9pZCBzZXRPdmVycmlkZVZQOUhh
cmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhib29sIGRpc2FibGVkKQoreworICAgIGhh
cmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOworfQorCit2b2lk
IHNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyhmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0LCBmbG9hdCBzY2FsZSkKK3sKKyAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JU
ZXN0aW5nID0gbWFrZU9wdGlvbmFsPE92ZXJyaWRlU2NyZWVuRGF0YT4oeyB3aWR0aCwgaGVpZ2h0
LCBzY2FsZSB9KTsKK30KKwordm9pZCByZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZygpCit7CisgICAgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyA9IFdURjo6
bnVsbG9wdDsKK30KKworYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUNhcGFiaWxpdGllc0luZm8mIGlu
Zm8sIGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYgdmlkZW9Db25maWd1cmF0aW9uKQoreworICAg
IE9TU3RhdHVzIHN0YXR1cyA9IFZUU2VsZWN0QW5kQ3JlYXRlVmlkZW9EZWNvZGVySW5zdGFuY2Uo
a0NNVmlkZW9Db2RlY1R5cGVfVlA5LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBudWxs
cHRyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAvLyBWaWRlb0NvbmZpZ3VyYXRpb24gYW5kIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3Jk
IGNhbiBoYXZlIGNvbmZsaWN0aW5nIHZhbHVlcyBmb3IgSERSIHByb3BlcnRpZXMuIElmIHNvLCBy
ZWplY3QuCisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uKSB7Cisg
ICAgICAgIC8vIE5vdGU6IFRyYW5zZmVyIENoYXJhY3RlcmlzdGljcyBhcmUgZGVmaW5lZCBieSBJ
U08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJh
bnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpTUkdCICYmIGNvZGVjQ29uZmlndXJh
dGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA+IDE1KQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uID09
IFRyYW5zZmVyRnVuY3Rpb246OlBRICYmIGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJh
Y3RlcmlzdGljcyAhPSAxNikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYg
KCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9u
OjpITEcgJiYgY29kZWNDb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICE9IDE4
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICh2aWRlb0NvbmZp
Z3VyYXRpb24uY29sb3JHYW11dCkgeworICAgICAgICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi5j
b2xvckdhbXV0ID09IENvbG9yR2FtdXQ6OlJlYzIwMjAgJiYgY29kZWNDb25maWd1cmF0aW9uLmNv
bG9yUHJpbWFyaWVzICE9IDkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgp
ICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpICYm
ICFoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpIHsKKyAgICAgICAgaW5mby5w
b3dlckVmZmljaWVudCA9IHRydWU7CisKKyAgICAgICAgLy8gSFcgVlA5IERlY29kZXIgUHJvZmls
ZSAwICYgMjoKKyAgICAgICAgaWYgKCFjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAmJiBjb2Rl
Y0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAhPSAyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cHBvcnRzIHVwIHRvIExldmVsIDY6CisgICAg
ICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24ubGV2ZWwgPiA2MCkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBzdXBwb3J0cyA4IG9yIDEwIGJp
dCBjb2xvcjoKKyAgICAgICAgaWYgKGNvZGVjQ29uZmlndXJhdGlvbi5iaXREZXB0aCA+IDEwKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1
cG9ydHMgb25seSA0MjAgY2hyb21hIHN1YnNhbXBsaW5nOgorICAgICAgICBpZiAoY29kZWNDb25m
aWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nID4gMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IGFscGhhIGNo
YW5uZWw6CisgICAgICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVsICYmICp2
aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVsKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIGNhbiBzdXBwb3J0IHVwIHRvIDRLIEAgMTIw
IG9yIDhLIEAgMzAKKyAgICAgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2
MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID4gMTIwKQorICAgICAgICAgICAgaW5m
by5zbW9vdGggPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhl
aWdodCA+IDIxNjAgJiYgdmlkZW9Db25maWd1cmF0aW9uLmZyYW1lcmF0ZSA+IDMwKQorICAgICAg
ICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW5m
by5zbW9vdGggPSB0cnVlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8v
IFNXIFZQOSBEZWNvZGVyIGhhcyBtdWNoIG1vcmUgdmFyaWFibGUgY2FwYWJpbGl0aWVzIGRlcGVu
ZGluZyBvbiBDUFUgY2hhcmFjdGVyaXN0aWNzLgorICAgIC8vIEZJWE1FOiBBZGQgYSBsb29rdXAg
dGFibGUgZm9yIGRldmljZS10by1jYXBhYmlsaXRpZXMuIEZvciBub3csIGFzc3VtZSB0aGF0IHRo
ZSBTVyBWUDkKKyAgICAvLyBkZWNvZGVyIGNhbiBzdXBwb3J0IDRLIEAgMzAuCisgICAgaWYgKHZp
ZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMTA4MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJh
bWVyYXRlID4gNjApCisgICAgICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgaWYgKHZpZGVv
Q29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVy
YXRlID4gMzApCisgICAgICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgZWxzZQorICAgICAg
ICBpbmZvLnNtb290aCA9IHRydWU7CisKKyAgICAvLyBGb3Igd2FsbC1wb3dlcmVkIGRldmljZXMs
IGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCwgZXZlbiBpZiBub3QgcG93ZXJFZmZpY2ll
bnQuCisgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5KCkpIHsKKyAgICAgICAgaW5mby5zdXBwb3J0
ZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBGb3IgYmF0
dGVyeS1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCB3aGVu
IHJ1bm5pbmcgb24gQUMgcG93ZXIsCisgICAgLy8gYnV0IG9ubHkgb24gYmF0dGVyeSB3aGVuIHRo
ZXJlIGlzIGFuIGF0dGFjaGVkIHNjcmVlbiB3aG9zZSByZXNvbHV0aW9uIGlzIGxhcmdlIGVub3Vn
aAorICAgIC8vIHRvIHN1cHBvcnQgNEsgdmlkZW8uCisgICAgaWYgKHN5c3RlbUhhc0FDKCkpIHsK
KyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7CisKKyAgICBhdXRvIGlzNGtTY3Jl
ZW4gPSBbXShmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBzY2FsZSkgeworICAgICAg
ICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgICAgICByZXR1cm4gaGVpZ2h0ICogc2NhbGUgPj0g
MjE2MDsKKyAgICB9OworCisgICAgaWYgKHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpCisg
ICAgICAgIGhhczRrU2NyZWVuID0gaXM0a1NjcmVlbihzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0
aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+aGVpZ2h0LCBzY3JlZW5T
aXplQW5kU2NhbGVGb3JUZXN0aW5nLT5zY2FsZSk7CisgICAgZWxzZSB7CisgICAgICAgIGZvciAo
YXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZh
bHVlcygpKSB7CisgICAgICAgICAgICBpZiAoaXM0a1NjcmVlbihzY3JlZW5EYXRhLnNjcmVlblJl
Y3Qud2lkdGgoKSwgc2NyZWVuRGF0YS5zY3JlZW5SZWN0LmhlaWdodCgpLCBzY3JlZW5EYXRhLnNj
YWxlRmFjdG9yKSkgeworICAgICAgICAgICAgICAgIGhhczRrU2NyZWVuID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmICghaGFzNGtTY3JlZW4pIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQppbmRleCBjNjQ2Y2YyNDlmZjIyMjhjNTVkMDgzNWYw
NDM0NzU5N2Q0OTI4MzQ4Li5iZjNlNjc5NjJhOGQ4ZmNmZTlkYzJiYWFmMTkxZDNiNzMxZTE1ZWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5J
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9T
Lm1tCkBAIC0yMDAsOCArMjAwLDEwIEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblBy
b3BlcnRpZXMoKQogICAgICAgICBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQgPSBXZWJDb3Jl
OjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChudWxscHRyKTsKICAgICAgICAgYm9vbCBzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IgPSBXZWJDb3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IobnVsbHB0cik7CiAgICAgICAgIGJvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBXZWJD
b3JlOjpzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpOworICAgICAgICBib29sIGhkciA9IHNjcmVl
blN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShzY3JlZW4pOworICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IFdlYkNvcmU6OnNjcmVlblBQSUZhY3RvcigpOwogCi0gICAgICAgIHNjcmVlblByb3Bl
cnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoKytkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5B
dmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMgfSk7CisgICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1h
cC5zZXQoKytkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3Jl
ZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQs
IHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMsIGhk
ciwgc2NhbGVGYWN0b3IgfSk7CiAgICAgICAgIAogICAgICAgICBpZiAoc2NyZWVuID09IFtQQUw6
OmdldFVJU2NyZWVuQ2xhc3MoKSBtYWluU2NyZWVuXSkKICAgICAgICAgICAgIHNjcmVlblByb3Bl
cnRpZXMucHJpbWFyeURpc3BsYXlJRCA9IGRpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQppbmRleCAxZmZkOTI5OTVkZmU3MGUw
MTVlMTAwY2ZkYTM3Yzg2NTVmZDAzYTExLi5iMjRhZjMyYzgzY2VhOGQxNGExOWU4M2RkMjM4MTMy
YzhlOWQ3MDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
U2NyZWVuTWFjLm1tCkBAIC0xMzgsNyArMTM4LDcgQEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0
U2NyZWVuUHJvcGVydGllcygpCiAgICAgICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAg
ICAgICAgIGJvb2wgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CiAgICAg
ICAgIER5bmFtaWNSYW5nZU1vZGUgZHluYW1pY1JhbmdlTW9kZSA9IER5bmFtaWNSYW5nZU1vZGU6
Ok5vbmU7Ci0KKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzY3JlZW4uYmFja2luZ1NjYWxl
RmFjdG9yOwogCiAgICAgICAgIGlmIChQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxh
YmxlKCkgJiYgW1BBTDo6Z2V0QVZQbGF5ZXJDbGFzcygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IocHJlZmVycmVkVmlkZW9SYW5nZUZvckRpc3BsYXlzOildKSB7CiAgICAgICAgICAgICBk
eW5hbWljUmFuZ2VNb2RlID0gY29udmVydEFWVmlkZW9SYW5nZVRvRW51bShbUEFMOjpnZXRBVlBs
YXllckNsYXNzKCkgcHJlZmVycmVkVmlkZW9SYW5nZUZvckRpc3BsYXlzOkBbIEAoZGlzcGxheUlE
KSBdXSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVu
UHJvcGVydGllcygpCiAgICAgICAgIGlmIChkaXNwbGF5TWFzaykKICAgICAgICAgICAgIGdwdUlE
ID0gZ3B1SURGb3JEaXNwbGF5TWFzayhkaXNwbGF5TWFzayk7CiAKLSAgICAgICAgc2NyZWVuUHJv
cGVydGllcy5zY3JlZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5B
dmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNN
b25vY2hyb21lLCBkaXNwbGF5TWFzaywgZ3B1SUQsIGR5bmFtaWNSYW5nZU1vZGUgfSk7CisgICAg
ICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoZGlzcGxheUlELCBTY3JlZW5E
YXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVu
RGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFu
Z2UsIHNjcmVlbklzTW9ub2Nocm9tZSwgZGlzcGxheU1hc2ssIGdwdUlELCBkeW5hbWljUmFuZ2VN
b2RlLCBzY2FsZUZhY3RvciB9KTsKIAogICAgICAgICBpZiAoIXNjcmVlblByb3BlcnRpZXMucHJp
bWFyeURpc3BsYXlJRCkKICAgICAgICAgICAgIHNjcmVlblByb3BlcnRpZXMucHJpbWFyeURpc3Bs
YXlJRCA9IGRpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBj
ZTk2YmE3NjdlMGMwNTc1ODBmZTEwNWNkMmIzMzdlN2ExNTQyYTU3Li5kNjhhN2E5NjA0OGZjZjY2
ODJkZGYxNDc3NzFkMjFlZGM2OThmMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0zMTksMTAgKzMxOSw2IEBACiAjaW5jbHVkZSAiV2ViWFJUZXN0LmgiCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKExJQldFQlJUQykKLSNpbmNsdWRlIDx3ZWJydGMv
c2RrL1dlYktpdC9WaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oPgotI2VuZGlmCi0KICNpZiBQTEFU
Rk9STShNQUMpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiTlNTY3JvbGxlckltcERldGFpbHMuaCIKQEAgLTMzMSwxMCArMzI3LDE1IEBACiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJTeXN0ZW1CYXR0ZXJ5LmgiCisjaW5jbHVk
ZSAiVlA5VXRpbGl0aWVzQ29jb2EuaCIKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0NvcmVUZXh0
U1BJLmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShNQUMpICYmIFVTRShMSUJXRUJSVEMpCisjaW5jbHVkZSA8d2VicnRjL3Nk
ay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaD4KKyNlbmRpZgorCiB1c2luZyBKU0M6
OkNhbGxEYXRhOwogdXNpbmcgSlNDOjpDb2RlQmxvY2s7CiB1c2luZyBKU0M6OkZ1bmN0aW9uRXhl
Y3V0YWJsZTsKQEAgLTYzMCw2ICs2MzEsMTMgQEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1l
bnQmIGRvY3VtZW50KQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiAgRU5BQkxFKFdFQl9BVURJTykK
ICAgICBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OmNyZWF0ZU92ZXJyaWRlID0gbnVsbHB0cjsKICNl
bmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0
ZXJ5Rm9yVGVzdGluZyhXVEY6Om51bGxvcHQpOworICAgIHNldE92ZXJyaWRlU3lzdGVtSGFzQUNG
b3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7CisgICAgc2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29k
ZXJEaXNhYmxlZEZvclRlc3RpbmcoZmFsc2UpOworICAgIHJlc2V0T3ZlcnJpZGVWUDlTY3JlZW5T
aXplQW5kU2NhbGVGb3JUZXN0aW5nKCk7CisjZW5kaWYKIH0KIAogRG9jdW1lbnQqIEludGVybmFs
czo6Y29udGV4dERvY3VtZW50KCkgY29uc3QKQEAgLTU4MTgsNiArNTgyNiw0NCBAQCBib29sIElu
dGVybmFsczo6c3lzdGVtSGFzQmF0dGVyeSgpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBJbnRl
cm5hbHM6OnNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBoYXNCYXR0ZXJ5KQoreworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIFdlYkNvcmU6OnNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRl
c3RpbmcoaGFzQmF0dGVyeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYXNCYXR0ZXJ5KTsK
KyNlbmRpZgorfQorCit2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQUMoYm9vbCBoYXNBQykK
K3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVN5c3RlbUhh
c0FDRm9yVGVzdGluZyhoYXNBQyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYXNBQyk7Cisj
ZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyhib29sIGRpc2FibGVkKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdl
YkNvcmU6OnNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGRp
c2FibGVkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRpc2FibGVkKTsKKyNlbmRpZgorfQor
Cit2b2lkIEludGVybmFsczo6c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKGRvdWJsZSB3aWR0aCwg
ZG91YmxlIGhlaWdodCwgZG91YmxlIHNjYWxlKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyh3aWR0
aCwgaGVpZ2h0LCBzY2FsZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CisgICAg
VU5VU0VEX1BBUkFNKGhlaWdodCk7CisgICAgVU5VU0VEX1BBUkFNKHNjYWxlKTsKKyNlbmRpZgor
fQorCiBpbnQgSW50ZXJuYWxzOjpyZWFkUHJlZmVyZW5jZUludGVnZXIoY29uc3QgU3RyaW5nJiBk
b21haW4sIGNvbnN0IFN0cmluZyYga2V5KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYmVjNTljYmNjMDE4ZmQ2YjE5YmVhMjNlNzk5MGZj
YWRhMzUyZTE2Zi4uNjBkOWQ5ZjA1MTVkOTZlMzA1NWFjNmQyYzU0MTAwM2NmN2IyODdmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMDE4LDYgKzEwMTgsMTIgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldFN5
c3RlbUhhc0JhdHRlcnkoYm9vbCk7CisgICAgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sKTsKKwor
ICAgIHZvaWQgc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wpOwor
ICAgIHZvaWQgc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKGRvdWJsZSwgZG91YmxlLCBkb3VibGUp
OworCiAgICAgaW50IHJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwg
Y29uc3QgU3RyaW5nJiBrZXkpOwogICAgIFN0cmluZyBlbmNvZGVkUHJlZmVyZW5jZVZhbHVlKGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAppbmRleCA4OGI0NjFlNjEzZTU4MjIyNjgzZDlhYWEyMmI0NmEzZGJm
MmVlNWMzLi4wMGNhNjViNDYxYmUyODk3ZDQ1NGM0NDkzMDQ4MmRlMTBiMTUwZmQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC05MzIsNiArOTMyLDEyIEBAIGVudW0gQ29u
dGVudFNpemVDYXRlZ29yeSB7CiAKICAgICBib29sZWFuIHN5c3RlbUhhc0JhdHRlcnkoKTsKIAor
ICAgIHZvaWQgc2V0U3lzdGVtSGFzQmF0dGVyeShib29sZWFuIGhhc0JhdHRlcnkpOworICAgIHZv
aWQgc2V0U3lzdGVtSGFzQUMoYm9vbGVhbiBoYXNBQyk7CisKKyAgICB2b2lkIHNldEhhcmR3YXJl
VlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhib29sZWFuIGRpc2FibGVkKTsKKyAgICB2b2lk
IHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQsIGRv
dWJsZSBzY2FsZSk7CisKICAgICBsb25nIHJlYWRQcmVmZXJlbmNlSW50ZWdlcihET01TdHJpbmcg
ZG9tYWluLCBET01TdHJpbmcga2V5KTsKICAgICBET01TdHJpbmcgZW5jb2RlZFByZWZlcmVuY2VW
YWx1ZShET01TdHJpbmcgZG9tYWluLCBET01TdHJpbmcga2V5KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA5
YTQzNDlkZDQzZWU1YzVhNjMwMDA1NjVlNjRkZDFjOThjOGRhMzUzLi4yMmZkNGM4ZTNlMDhkNGRi
YTNlMjcyNGQxOTFiOTE2MDkyMDcxYzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTcwLDYgKzE3MCw3IEBA
IHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IG1hcERC
RXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQmF0dGVyeTsKKyAgICBl
bmNvZGVyIDw8IHN5c3RlbUhhc0FDOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpAQCAtNDU5LDYgKzQ2MCwxMiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlmICgh
c3lzdGVtSGFzQmF0dGVyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMu
c3lzdGVtSGFzQmF0dGVyeSA9IFdURk1vdmUoKnN5c3RlbUhhc0JhdHRlcnkpOworCisgICAgT3B0
aW9uYWw8Ym9vbD4gc3lzdGVtSGFzQUM7CisgICAgZGVjb2RlciA+PiBzeXN0ZW1IYXNBQzsKKyAg
ICBpZiAoIXN5c3RlbUhhc0FDKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVy
cy5zeXN0ZW1IYXNBQyA9IFdURk1vdmUoKnN5c3RlbUhhc0FDKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBhYTFiN2FhMWZiNzZiYzA3ZGM4MDZmZDAyZDNk
ZDFjYTE5ZmI0ZTBiLi5jNjc0YTNiNzE1NWI3ZjhhMzBiMDZlYWEwZjNkMDYwZGI5NmEzZTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC0yMTQsNiArMjE0LDcgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gbWFwREJFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBzeXN0ZW1IYXNCYXR0
ZXJ5IHsgZmFsc2UgfTsKKyAgICBib29sIHN5c3RlbUhhc0FDIHsgZmFsc2UgfTsKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IGZiYzFlZjIyODE3N2FmNzMx
NzJiYzQ0ZTczY2Y4OTMwM2Q5Mzc0NjIuLmY1Y2U4ZjBiYmYxMjc3ZDMyYmU1Y2E2NGQxNjdmZjgz
OWEyNDNiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNTUsNiArNTUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9y
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUG93ZXJTb3VyY2VOb3RpZmllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgpAQCAtNDA3LDYgKzQwOCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAgICAgCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcGFyYW1ldGVy
cy5zeXN0ZW1IYXNCYXR0ZXJ5ID0gc3lzdGVtSGFzQmF0dGVyeSgpOworICAgIHBhcmFtZXRlcnMu
c3lzdGVtSGFzQUMgPSBzeXN0ZW1IYXNBQygpOwogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIG1hcERCSGFuZGxlOwogICAgIGlmIChTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVG
b3JNYWNoTG9va3VwKCJjb20uYXBwbGUubHNkLm1hcGRiIl9zLCBXVEY6Om51bGxvcHQsIG1hcERC
SGFuZGxlLCBTYW5kYm94RXh0ZW5zaW9uOjpGbGFnczo6Tm9SZXBvcnQpKQpAQCAtNjk3LDYgKzY5
OSwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVy
cygpCiAgICAgfV07CiAjZW5kaWYKICNlbmRpZgorCisgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVy
ID0gV1RGOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyPihbdGhpc10g
KGJvb2wgaGFzQUMpIHsKKyAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpQb3dlclNvdXJjZURpZENoYW5nZShoYXNBQykpOworICAgIH0pOwogfQogCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKQEAgLTcy
Niw2ICs3MzIsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1bnJlZ2lzdGVyTm90aWZpY2F0aW9u
T2JzZXJ2ZXJzKCkKICNlbmRpZgogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2FjdGl2YXRpb25PYnNlcnZlci5nZXQoKV07CisKKyAg
ICBtX3Bvd2VyU291cmNlTm90aWZpZXIgPSBudWxscHRyOwogfQogCiBzdGF0aWMgQ0ZVUkxTdG9y
YWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBiZTM1NDJlYzFiZTk2N2U3MmI4ZTY2ZGUz
Mzk2ZWU4NjA5NzNmZDRlLi5iOTI4ZWQ3MDk4OTJhNDkwMTU2YmQ5YzY2ZWQ2YzY2MGJmNTQ0ZmJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04OCw2
ICs4OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG93ZXJTb3Vy
Y2VOb3RpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NXYXJtaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdp
c3RyYWJsZURvbWFpbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
aW5kZXggOWYwNjUwMmRlMGUzYzQ1NmYzMDUzYzQyZWRjOTg1MWQyMjljZGU5Yy4uM2EzNDZkNzcx
MjcwY2NlOTdhZDgwZTU2NjU4ODQ4YzU4ZjY3NDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCkBAIC05NCw2ICs5NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogZW51bSBjbGFzcyBFdmVudE1ha2VzR2FtZXBhZHNW
aXNpYmxlIDogYm9vbDsKIHN0cnVjdCBNb2NrTWVkaWFEZXZpY2U7CisjaWYgUExBVEZPUk0oQ09D
T0EpCitjbGFzcyBQb3dlclNvdXJjZU5vdGlmaWVyOworI2VuZGlmCiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtNzEwLDYgKzcxMyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlm
aWVyPiBtX3Bvd2VyU291cmNlTm90aWZpZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2Fj
dGl2YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYWNjZXNzaWJpbGl0
eUVuYWJsZWRPYnNlcnZlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggMDYzMzI1MGFhMWNhZDU5NGY5NDliNTZjMDE0NWQzY2FmNmI3ODI3NC4uOGQyYmEy
NmU0MTRiZjVhY2NhZGUzNTY1NDY2ZTIwZGQxNTc0YWVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCkBAIC0zMDcsNiArMzA3LDcgQEAgcHVibGljOgogICAgIHZvaWQgbm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKTsKICAgICB2b2lkIHVu
YmxvY2tQcmVmZXJlbmNlU2VydmljZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmKTsK
ICNlbmRpZgorICAgIHZvaWQgcG93ZXJTb3VyY2VEaWRDaGFuZ2UoYm9vbCk7CiAjZW5kaWYKIAog
ICAgIGJvb2wgYXJlQWxsUGFnZXNUaHJvdHRsZWFibGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjkwZTRmYTVkNmM5
YWFiNWRlYzYwZDEwMDE2MDY4NzYwYTc2MWRkMC4uY2RhMDViOTRmZjJhZGI0MjQ3MDU5NzIzNDQ0
MmFmMzkwMzdkN2I5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTE3Miw2ICsxNzIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIE5vdGlmeVByZWZlcmVuY2VzQ2hh
bmdlZChTdHJpbmcgZG9tYWluLCBTdHJpbmcga2V5LCBPcHRpb25hbDxTdHJpbmc+IGVuY29kZWRW
YWx1ZSkKICAgICBVbmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSBoYW5kbGVBcnJheSkKICNlbmRpZgorICAgIFBvd2VyU291cmNlRGlk
Q2hhbmdlKGJvb2wgaGFzQUMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KaW5kZXggMmI3ZmJiOTI5ZDZiMWNiZjA3YjM5MTc3ODYyNDRiNjFhYmEyMTY4OS4uNWE0
NThjZDc0Zjk3ZDc5OTc3NWE3N2FjODYyMWI1YWJiZDU2Y2FmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0zMTUsNiArMzE1
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICNlbmRpZgogICAgIAogICAgIHNldFN5c3Rl
bUhhc0JhdHRlcnkocGFyYW1ldGVycy5zeXN0ZW1IYXNCYXR0ZXJ5KTsKKyAgICBzZXRTeXN0ZW1I
YXNBQyhwYXJhbWV0ZXJzLnN5c3RlbUhhc0FDKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgUmVuZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChXVEZNb3Zl
KHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwKSk7CkBAIC0xMDMxLDYgKzEwMzIs
MTEgQEAgdm9pZCBXZWJQcm9jZXNzOjp1bmJsb2NrU2VydmljZXNSZXF1aXJlZEJ5QWNjZXNzaWJp
bGl0eShjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjoKICAgICByZWdpc3RlcldpdGhBY2Nlc3NpYmls
aXR5KCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzczo6cG93ZXJTb3VyY2VEaWRDaGFuZ2UoYm9vbCBo
YXNBQykKK3sKKyAgICBzZXRTeXN0ZW1IYXNBQyhoYXNBQyk7Cit9CisKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1YjRmNTNiMjNjZDFmOGZlYjZkMTRjYzE2NjEzZWQ5ZDFjMmIz
YWI1Li43NjIzNGUxMTRkMGYzODg5NzAzODJmMGNhMWMwZmEyYmVjM2ZhYjNmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjAtMDctMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBBZGQgTWVkaWFDYXBhYmlsaXRpZXMgc3VwcG9ydCBmb3IgU1cg
VlA5IGRlY29kZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTQzMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJ
bmZvLXN3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlh
L21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbDogQWRkZWQuCisKIDIw
MjAtMDctMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHBhcnNpbmcgVlAtc3R5bGUgY29kZWMgc3RyaW5ncy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVj
b2RpbmdJbmZvLXN3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRp
YS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MzE4NzI3ZDNlZmFhZGFhZWM1YzdmMmNiYjU4ZTI5NDk3MjVhMzRmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0
aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1JV
TihpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQmF0dGVyeSh0cnVlKSkKK1JVTihpbnRlcm5hbHMuc2V0
U3lzdGVtSGFzQUModHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldEhhcmR3YXJlVlA5RGVjb2RlckRp
c2FibGVkRm9yVGVzdGluZyh0cnVlKSkKK1JVTihpbnRlcm5hbHMuc2V0VlA5U2NyZWVuU2l6ZUFu
ZFNjYWxlKDEwMjQsIDc2OCwgMSkpCisKK1Rlc3QgdGhhdCA0ayBAIDMwZnBzIGlzIHN1cHBvcnRl
ZCwgc21vb3RoLCBidXQgbm90IHBvd2VyRWZmaWNpZW50CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRv
ci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywg
dmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCIn
LCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTog
MzAgfX0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9
PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBP
SworRVhQRUNURUQgKGluZm8uc21vb3RoID09ICd0cnVlJykgT0sKKworVGVzdCB0aGF0IDRrIEAg
NjBmcHMgaXMgc3VwcG9ydGVkLCBidXQgbm90IHNtb290aCBvciBwb3dlckVmZmljaWVudAorUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlw
ZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2Rl
Y3M9InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRo
OiAzMTgwLCBmcmFtZXJhdGU6IDYwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RF
RCAoaW5mby5zdXBwb3J0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZp
Y2llbnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAnZmFsc2UnKSBP
SworCitUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBiYXR0ZXJ5
IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uCitSVU4oaW50ZXJuYWxzLnNl
dFN5c3RlbUhhc0FDKGZhbHNlKSkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJp
bGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250
ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPSJ2cDA5LjAwLjQxLjA4IicsIGhlaWdodDogMTA4
MCwgYml0cmF0ZTogODAwMDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7KQorUHJv
bWlzZSByZXNvbHZlZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICdmYWxzZScpIE9L
CitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQg
KGluZm8uc21vb3RoID09ICdmYWxzZScpIE9LCisKK1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2RlciBp
cyBzdXBwb3J0ZWQgb24gYmF0dGVyeSBwb3dlciB3aGVuIHNjcmVlbiBpcyBhdCBsZWFzdCA0ayBy
ZXNvbHV0aW9uCitSVU4oaW50ZXJuYWxzLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSgzODQwLCAy
MTYwLCAxKSkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29k
aW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTogJ3Zp
ZGVvL21wNDsgY29kZWNzPSJ2cDA5LjAwLjQxLjA4IicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTog
ODAwMDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7KQorUHJvbWlzZSByZXNvbHZl
ZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChp
bmZvLnBvd2VyRWZmaWNpZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9vdGgg
PT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDkt
ZGVjb2RpbmdJbmZvLXN3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRlOWI0M2Y4MWI0MDk0MThlYzZiNDkw
Nzc3Y2VjZTM3NTg1YmE2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0bWwKQEAg
LTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPS4uLy4uLy4uLy4uL21lZGlhL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIHZhciBwcm9taXNlOworICAgIHZhciBp
bmZvOworCisgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICB7CisgICAgICAgIGlmICgh
d2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoIkludGVybmFscyBpcyBy
ZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LiIpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRTeXN0ZW1IYXNCYXR0ZXJ5KHRydWUpJyk7Cisg
ICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDKHRydWUpJyk7CisgICAgICAgIHJ1
bignaW50ZXJuYWxzLnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyh0cnVl
KScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoMTAy
NCwgNzY4LCAxKScpOworCisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNv
bGVXcml0ZSgnVGVzdCB0aGF0IDRrIEAgMzBmcHMgaXMgc3VwcG9ydGVkLCBzbW9vdGgsIGJ1dCBu
b3QgcG93ZXJFZmZpY2llbnQnKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9yLm1l
ZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRl
bzogeyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwiJywg
aGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMw
IH19KTsiKTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50JywgZmFsc2UpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2luZm8uc21vb3RoJywgdHJ1ZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsK
KyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgNGsgQCA2MGZwcyBpcyBzdXBwb3J0ZWQs
IGJ1dCBub3Qgc21vb3RoIG9yIHBvd2VyRWZmaWNpZW50Jyk7CisKKyAgICAgICAgcnVuKCJwcm9t
aXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdt
ZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwi
dnAwOS4wMC40MS4wOFwiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAz
MTgwLCBmcmFtZXJhdGU6IDYwIH19KTsiKTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJl
c29sdmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0
cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50JywgZmFsc2Up
OworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc21vb3RoJywgZmFsc2UpOworCisgICAgICAg
IGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB0aGF0IFNXIFZQ
OSBkZWNvZGVyIGlzIG5vdCBzdXBwb3J0ZWQgb24gYmF0dGVyeSBwb3dlciB3aGVuIHNjcmVlbiBp
cyBub3QgNGsgcmVzb2x1dGlvbicpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRTeXN0ZW1I
YXNBQyhmYWxzZSknKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2Fw
YWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBj
b250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwiJywgaGVpZ2h0
OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19KTsi
KTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgnaW5mby5wb3dlckVmZmljaWVudCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCdpbmZvLnNtb290aCcsIGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAg
ICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2RlciBpcyBzdXBwb3J0ZWQg
b24gYmF0dGVyeSBwb3dlciB3aGVuIHNjcmVlbiBpcyBhdCBsZWFzdCA0ayByZXNvbHV0aW9uJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSgzODQwLCAy
MTYwLCAxKScpOworICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmls
aXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRl
bnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEw
ODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOwor
ICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5m
by5zbW9vdGgnLCB0cnVlKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSIgLz4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404282</attachid>
            <date>2020-07-14 14:03:15 -0700</date>
            <delta_ts>2020-07-14 15:28:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214316-20200714140314.patch</filename>
            <type>text/plain</type>
            <size>56510</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI5MTA3MjczYzM0ZjMy
ZjU4MDNkZjVjNjU0NzRmOGY5ZmRhYzA5NS4uMWM0YWI0MzVkZGMzM2E3YjMyYWQ0YWQ1OTYwMTQ4
MjIwNWU3NjA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL21lZGlh
L21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbAorCisgICAgICAgIEFk
ZCBzb21lIGZvdW5kYXRpb25hbCBzdXBwb3J0IGZvciBTVyBWUDksIHdoaWNoIGR1ZSB0byBwb2xp
Y3kgZGVjaXNpb25zIHdpbGwgbmVlZCBpbmZvcm1hdGlvbgorICAgICAgICBib3RoIG9uIHRoZSBz
eXN0ZW0gYmF0dGVyeSBzdGF0dXMsIGJ1dCBhbHNvIHBvd2VyIGFkYXB0ZXIgc3RhdHVzLCBhbmQg
dGhlc2UgbmVlZCB0byBiZSBzaGlwcGVkCisgICAgICAgIGludG8gdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcyBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgQWRkIHNvbWUgSW50ZXJuYWwgb3Zl
cnJpZGUgc2V0dGluZ3MgdG8gYWxsb3cgdGhlIHBvbGljaWVzIHRvIGJlIGVmZmVjdGl2ZWx5IHRl
c3RlZCB0aHJvdWdoCisgICAgICAgIExheW91VGVzdHMuIFRoaXMgaW5jbHVkZXMgb3ZlcnJpZGVz
IGZvciBzeXN0ZW0gYmF0dGVyeSBhbmQgQUMgc3RhdGUsIGFzIHdlbGwgYXMgb3ZlcnJpZGVzIGZv
cgorICAgICAgICBzY3JlZW4gc2l6ZSBhbmQgcmVzb2x1dGlvbi4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VO
b3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5v
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6On5Qb3dlclNv
dXJjZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6Om5v
dGlmeVBvd2VyU291cmNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW06Cisg
ICAgICAgIChXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnJl
c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U3lzdGVtSGFzQUMpOgorICAg
ICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVy
cmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25maWd1cmF0aW9uQ29jb2EpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVW
UFBhcmFtZXRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTA3LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJv
cCBjYWNoZSBvZiBzdWJmcmFtZSBjb3VudCBvbiB0aGUgUGFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggY2JhOTE0ZTFlMzhkYjNkY2M4NjEyNjdmOWE1MDg2ZTVkMjBhZDRlYS4uZTg1ZGZlYmE2ZmYz
NWY2ZmM5Y2NmOTY0N2RhN2YwNTU3MmNjZjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjAtMDctMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBBZGQgTWVkaWFDYXBhYmlsaXRpZXMgc3VwcG9ydCBmb3IgU1cgVlA5
IGRlY29kZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQzMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oOgorCiAyMDIwLTA3LTEyICBSb2IgQnVpcyAg
PHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVpbGRpbmcgQ0ZOZXR3b3JrU1BJIHdpdGgg
dGhlIG1hY09TIEJpZyBTdXIgcHVibGljIFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MTNiYjZhYTZi
YmQ1NTcyNWIwYmUxYjlmZWRlODdlZGFlOTAwOTFlLi40NzFmMDc3YWFiNGVmOTE1Y2UxN2E4MTU5
ZTQwYTk1ZWViYmRlNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTE0ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1l
ZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgc3lzdGVtIEFDIHN0
YXRlIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgYXQgY3JlYXRpb24gdGltZSwgYW5kIGFsc28g
Y3JlYXRlCisgICAgICAgIGEgcG93ZXIgc3RhdGUgbGlzdGVuZXIgc28gdGhlIFdlYlByb2Nlc3Mg
Y2FuIGJlIHVwZGF0ZWQgZHluYW1pY2FsbHkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cG93ZXJT
b3VyY2VEaWRDaGFuZ2UpOgorCiAyMDIwLTA0LTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBkYXRhIGNvcGllcyBpbiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaAppbmRleCA3MDJiOTU2NjIwZjUxNGU1YjAyN2Y5Zjlk
YmZmN2JkOGMxZjBkZWI4Li40OTk5YjhlYjI2NGNkMTZkODQ0ZGI3Mzg0NjYxMDU0ZDc2YTA0YWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCkBA
IC0zNiw2ICszNiw5IEBACiAKICNkZWZpbmUga0lPUFNUeXBlS2V5ICJUeXBlIgogI2RlZmluZSBr
SU9QU0ludGVybmFsQmF0dGVyeVR5cGUgIkludGVybmFsQmF0dGVyeSIKKyNkZWZpbmUga0lPUFNQ
b3dlclNvdXJjZVN0YXRlS2V5ICJQb3dlciBTb3VyY2UgU3RhdGUiCisjZGVmaW5lIGtJT1BTQUNQ
b3dlclZhbHVlICJBQyBQb3dlciIKKyNkZWZpbmUga0lPUFNOb3RpZnlQb3dlclNvdXJjZSAiY29t
LmFwcGxlLnN5c3RlbS5wb3dlcnNvdXJjZXMuc291cmNlIgogCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggNDRlYTA4ZjY0MjEyMzYyZGMzMTEzMWQ4NDY3YWVlMjc1MTc0YWY3
ZS4uMWQ3ZjIwOTg2N2MxZDRlMGE0Mjc0Njk3NjU1ZjhkMWIxMzZkYWQwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0yNDEsNiArMjQxLDcgQEAgcGxhdGZvcm0vY29jb2EvUGFzdGVib2Fy
ZENvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2Ev
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KK3BsYXRmb3JtL2NvY29hL1Bvd2Vy
U291cmNlTm90aWZpZXIubW0KIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCiBwbGF0Zm9ybS9j
b2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbQpAQCAtMzQ5LDYgKzM1MCw3IEBAIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ludFJlY3RDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLm1tCitwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTZlODdiMDVhOTZjNDVhYWRmMTIxMmZh
M2E3ZGZkMWUxOGM1NmI3Ny4uOTNlMjIwYjJiODkwNmJhMzJlYTdlZTA4NTM3Mzg5ZDdjNDdjNjc4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDIwMCw2ICs0MjAwLDcgQEAKIAkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8q
IFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzY5REQ0MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldhcm5pbmdWaWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxs
U2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREM2OUREODE2MzcxRkQzMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5QbGFjZWhvbGRlclZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDREM3MzQxNTE5Nzc4OTZEMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM3MzQxMzE5
Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RDNzQ3MDQyNEJFMkZDNzAwQzE4NjhCIC8qIFBv
d2VyU291cmNlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzc0NzAwMjRCRTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RD
OEI1QTIxODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QzhCNUEwMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0gKi87IH07CiAJCUNEQzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUExMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0RDOEI1QTYxODA0NzRGNzAw
MTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBNDE4MDQ3NEY3MDAxNkU2ODUgLyog
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKQEAgLTE0MTA3LDYgKzE0MTA4LDgg
QEAKIAkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVD
NzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
YW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2RkU1QjcyNEJDRTY0NTAw
OUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQOVV0aWxpdGll
c0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUI4MjRCQ0U2NDUw
MDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZQ
OVV0aWxpdGllc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDZGRTVC
QTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQOVV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDZGRTVCQjI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZQOVV0aWxp
dGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzIwQjQ3MjI2ODJDN0Uw
MDA0N0ZERSAvKiBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MjgzLDYgKzE0Mjg2LDggQEAKIAkJQ0RDNjlERDkxNjM3MUZEMzAwN0Mz
OERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzczNDEyMTk3Nzg5NkMwMDQ2
QkZDNSAvKiBDQVJpbmdCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ0FSaW5nQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
NzM0MTMxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDQVJpbmdCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG93ZXJTb3VyY2VOb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREM3NDcwMTI0QkUyNjc5MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmll
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvd2VyU291cmNlTm90aWZpZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUEwMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUExMTgwNDYzNDcwMDE2RTY4
NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUE0MTgwNDc0RjcwMDE2RTY4
NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjMwLDYgKzIzNjM1LDggQEAKIAkJCQlDREEyOUEwQTFD
QkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWwuaCAqLywKIAkJCQlDREEyOUEw
RDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaCAq
LywKIAkJCQlDREEyOUEwQzFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW0gKi8sCisJCQkJQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2Vy
U291cmNlTm90aWZpZXIuaCAqLywKKwkJCQlDREM3NDcwMTI0QkUyNjc5MDBDMTg2OEIgLyogUG93
ZXJTb3VyY2VOb3RpZmllci5tbSAqLywKIAkJCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gKi8sCiAJCQkJMUFBODRGMDMxNDNCQTdC
RDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUE4NEYwMjE0M0JBN0JE
MDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5tbSAqLywKQEAgLTI1NzQ0LDExICsyNTc1MSwx
MSBAQAogCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNw
cCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5o
ICovLAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCi0J
CQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLAotCQkJCUNE
NkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCTBGNUE1
N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2
MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVE
RDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKKwkJCQlDRDZGRTVCQTI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5
QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyog
V2lkdGhJdGVyYXRvci5jcHAgKi8sCiAJCQkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdp
ZHRoSXRlcmF0b3IuaCAqLywKQEAgLTI1ODg2LDYgKzI1ODkzLDggQEAKIAkJCQlFNEU4QjRFQTIx
NkI3OUU1MDBCODgzNEQgLyogU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaCAqLywKIAkJCQk1
MjY3MjRGMjFDQjJGREY2MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5o
ICovLAogCQkJCTUyNjcyNEYxMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkNvY29hLm1tICovLAorCQkJCUNENkZFNUI3MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXNDb2NvYS5oICovLAorCQkJCUNENkZFNUI4MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXNDb2NvYS5tbSAqLywKIAkJCQkyRDNFRjQ0NDE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0
aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggKi8sCiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAw
MDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQky
RDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAqLywKQEAg
LTMyNjQwLDYgKzMyNjQ5LDcgQEAKIAkJCQlBMTQ5Nzg3MTFBQkFGM0E1MDBDRUY3RTQgLyogUGxh
dGZvcm1Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVDNzYyQjE0OTdGRTE0
MDBCQzQ3NzUgLyogUGxhdGZvcm1FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY2MDFFQkYx
NEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDREM3NDcwNDI0QkUyRkM3MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIzRjc3QjE0ODRDQTRDMDA4
QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTk1MUQ1NEY1RkIwMEREN0M2OCAvKiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCmluZGV4IDlhMGQ4ZjVj
NTdmNTg2NDQ1ZjY5OTA4Mzk1ZTRiYzEwN2M2YjA2NzIuLmJhNTBiNjg4YWI2ZDBiYWU1ZDE5OWZh
MGJhYzRiN2UyMDA0YmFmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5jcHAKQEAgLTM4LDYgKzM4LDExIEBAIHN0YXRpYyBTY3JlZW5Qcm9wZXJ0aWVzJiBzY3Jl
ZW5Qcm9wZXJ0aWVzKCkKICAgICByZXR1cm4gc2NyZWVuUHJvcGVydGllczsKIH0KIAorY29uc3Qg
U2NyZWVuUHJvcGVydGllcyYgZ2V0U2NyZWVuUHJvcGVydGllcygpCit7CisgICAgcmV0dXJuIHNj
cmVlblByb3BlcnRpZXMoKTsKK30KKwogUGxhdGZvcm1EaXNwbGF5SUQgcHJpbWFyeVNjcmVlbkRp
c3BsYXlJRCgpCiB7CiAgICAgcmV0dXJuIHNjcmVlblByb3BlcnRpZXMoKS5wcmltYXJ5RGlzcGxh
eUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5kZXggYjkxM2Fk
ZDYyNjk5ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uMzczODM2ZjA1ODgzODE4NTE1NzVm
NmM2NWFhODNjNGM1ZmFiNDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5oCkBAIC05NCw2ICs5NCw3IEBAIHN0cnVjdCBTY3JlZW5EYXRhOwogICAgIAogV0VCQ09S
RV9FWFBPUlQgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpOwogV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0IFNjcmVlblByb3BlcnRp
ZXMmKTsKK2NvbnN0IFNjcmVlblByb3BlcnRpZXMmIGdldFNjcmVlblByb3BlcnRpZXMoKTsKIGNv
bnN0IFNjcmVlbkRhdGEqIHNjcmVlbkRhdGEoUGxhdGZvcm1EaXNwbGF5SUQgc2NyZWVuZGlzcGxh
eUlEKTsKIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtRGlzcGxheUlEIHByaW1hcnlTY3JlZW5EaXNw
bGF5SUQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVl
blByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aAppbmRleCBkNTA2ZWZiZDFiY2E4MDY5OGNhN2ZiNGNjZjRiM2RlNzM4NjRhNWI5Li43ZmRiODJk
OTk1NWRlODVlYzY4ODVlMjgwOGU0NDFmNGY5ZDcyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC01MSw2ICs1MSwxMCBAQCBzdHJ1Y3QgU2NyZWVu
RGF0YSB7CiAgICAgSU9SZWdpc3RyeUdQVUlEIGdwdUlEIHsgMCB9OwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZmxvYXQgc2NhbGVGYWN0
b3IgeyAxIH07CisjZW5kaWYKKwogICAgIGVudW0gY2xhc3MgQ29sb3JTcGFjZVR5cGUgOiB1aW50
OF90IHsgTm9uZSwgTmFtZSwgRGF0YSB9OwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8U2NyZWVuRGF0YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTk4LDYgKzEw
MiwxMCBAQCB2b2lkIFNjcmVlbkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlNYXNrIDw8IGdwdUlE
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgZW5jb2RlciA8PCBzY2FsZUZhY3RvcjsKKyNlbmRpZgorCiAgICAgaWYgKGNvbG9yU3BhY2Up
IHsKICAgICAgICAgLy8gVHJ5IHRvIGVuY29kZSB0aGUgbmFtZS4KICAgICAgICAgaWYgKGF1dG8g
bmFtZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ29weU5hbWUoY29sb3JTcGFjZS5nZXQoKSkpKSB7
CkBAIC0xNzYsNiArMTg0LDEzIEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgT3B0
aW9uYWw8ZmxvYXQ+IHNjYWxlRmFjdG9yOworICAgIGRlY29kZXIgPj4gc2NhbGVGYWN0b3I7Cisg
ICAgaWYgKCFzY2FsZUZhY3RvcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyNlbmRp
ZgorCiAgICAgQ29sb3JTcGFjZVR5cGUgZGF0YVR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhVHlwZSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0yMTksNyArMjM0
LDEwIEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgV1RGTW92ZSgqc2NyZWVuSXNNb25v
Y2hyb21lKSwKICAgICAgICAgV1RGTW92ZSgqZGlzcGxheU1hc2spLAotICAgICAgICBXVEZNb3Zl
KCpncHVJRCkKKyAgICAgICAgV1RGTW92ZSgqZ3B1SUQpLAorI2VuZGlmCisjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBXVEZNb3ZlKCpzY2FsZUZhY3Rv
ciksCiAjZW5kaWYKICAgICB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRlOTZmZjVlOThhYTNj
MDhlMmJkYzY0YzBkMDI2NDAzYWYwYmNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIuaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQb3dlclNvdXJjZU5vdGlmaWVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBQb3dlclNvdXJj
ZU5vdGlmaWVyQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBoYXNBQyk+OworICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBvd2VyU291cmNlTm90aWZpZXIoUG93ZXJTb3VyY2VO
b3RpZmllckNhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5Qb3dlclNvdXJjZU5vdGlm
aWVyKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCgp
IGNvbnN0OworCitwcml2YXRlOgorICAgIHZvaWQgbm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7
CisKKyAgICBPcHRpb25hbDxpbnQ+IG1fdG9rZW5JRDsKKyAgICBQb3dlclNvdXJjZU5vdGlmaWVy
Q2FsbGJhY2sgbV9jYWxsYmFjazsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNDgwOGY1
OTdmYmYwZjhkODQ5MThjNWQ1MDZkNDhhMzJjNDZmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG93
ZXJTb3VyY2VOb3RpZmllci5oIgorCisjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5LmgiCisjaW1wb3J0
IDxub3RpZnkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bvd2VyU291cmNlTm90aWZpZXI6OlBvd2VyU291cmNlTm90aWZp
ZXIoUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworICAgIGludCB0b2tlbiA9IDA7CisgICAgYXV0byBz
dGF0dXMgPSBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goa0lPUFNOb3RpZnlQb3dlclNvdXJjZSwg
JnRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgeworICAgICAgICBub3Rp
ZnlQb3dlclNvdXJjZUNoYW5nZWQoKTsKKyAgICB9KTsKKyAgICBpZiAoc3RhdHVzID09IE5PVElG
WV9TVEFUVVNfT0spCisgICAgICAgIG1fdG9rZW5JRCA9IHRva2VuOworfQorCitQb3dlclNvdXJj
ZU5vdGlmaWVyOjp+UG93ZXJTb3VyY2VOb3RpZmllcigpCit7CisgICAgaWYgKG1fdG9rZW5JRCkK
KyAgICAgICAgbm90aWZ5X2NhbmNlbCgqbV90b2tlbklEKTsKK30KKwordm9pZCBQb3dlclNvdXJj
ZU5vdGlmaWVyOjpub3RpZnlQb3dlclNvdXJjZUNoYW5nZWQoKQoreworICAgIHJlc2V0U3lzdGVt
SGFzQUMoKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhzeXN0ZW1I
YXNBQygpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU3lzdGVtQmF0dGVyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oCmluZGV4IDVhZGE4OWU2NGZhYzQ3NTY1YWYzYjEyYmEzMjFlMTEyYjNiNjc0NjIu
LmFmMzBlODJiOTk0ZmFjZjM2YzQ0ZDZlMTE2YTI3ZTc0MTFkNjllODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKQEAgLTMwLDQgKzMwLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtSGFzQmF0
dGVyeShib29sKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpOwogCitX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0U3lzdGVtSGFzQUMoKTsKK1dFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U3lzdGVtSGFzQUMoYm9vbCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0FD
KCk7CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9y
VGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJik7CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCmluZGV4IDZjMTNlNWVi
NzBkOGU1MTQzZWRkMjg4MWRkMjllMTA3NTMwYjU5ZGEuLjJiYTI3Zjc3YTkzNDgzZGQ4ZDFiNTlh
NGFlNTlhZGZmMWI2M2M0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1N5c3RlbUJhdHRlcnkubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U3lzdGVtQmF0dGVyeS5tbQpAQCAtMjYsMTEgKzI2LDE1IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIlN5c3RlbUJhdHRlcnkuaCIKIAorI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0dGVyeTsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBo
YXNBQzsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5n
Oworc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nOwogCiB2b2lk
IHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogewpAQCAtMzksNiArNDMsOSBAQCB2
b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogCiBib29sIHN5c3RlbUhhc0Jh
dHRlcnkoKQogeworICAgIGlmIChoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nKQorICAgICAg
ICByZXR1cm4gKmhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3Rpbmc7CisKICAgICBpZiAoIWhhc0Jh
dHRlcnkuaGFzVmFsdWUoKSkgewogICAgICAgICBoYXNCYXR0ZXJ5ID0gW10gewogI2lmIFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oV0FUQ0hPUykKQEAgLTY3LDQgKzc0LDU0IEBAIGJvb2wgc3lz
dGVtSGFzQmF0dGVyeSgpCiAgICAgcmV0dXJuICpoYXNCYXR0ZXJ5OwogfQogCit2b2lkIHJlc2V0
U3lzdGVtSGFzQUMoKQoreworICAgIGhhc0FDLnJlc2V0KCk7Cit9CisKK3ZvaWQgc2V0U3lzdGVt
SGFzQUMoYm9vbCBhYykKK3sKKyAgICBoYXNBQyA9IGFjOworfQorCitib29sIHN5c3RlbUhhc0FD
KCkKK3sKKyAgICBpZiAoaGFzQUNPdmVycmlkZUZvclRlc3RpbmcpCisgICAgICAgIHJldHVybiAq
aGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CisKKyAgICBpZiAoIWhhc0FDLmhhc1ZhbHVlKCkpIHsK
KyAgICAgICAgaGFzQUMgPSBbXSB7CisjaWYgUExBVEZPUk0oQVBQTEVUVikKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IHBv
d2VyU291cmNlc0luZm8gPSBhZG9wdENGKElPUFNDb3B5UG93ZXJTb3VyY2VzSW5mbygpKTsKKyAg
ICAgICAgICAgIGlmICghcG93ZXJTb3VyY2VzSW5mbykKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcG93ZXJTb3VyY2VzTGlz
dCA9IGFkb3B0Q0YoSU9QU0NvcHlQb3dlclNvdXJjZXNMaXN0KHBvd2VyU291cmNlc0luZm8uZ2V0
KCkpKTsKKyAgICAgICAgICAgIGlmICghcG93ZXJTb3VyY2VzTGlzdCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0g
Q0ZBcnJheUdldENvdW50KHBvd2VyU291cmNlc0xpc3QuZ2V0KCkpOyBpIDwgY291bnQ7ICsraSkg
eworICAgICAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBkZXNjcmlwdGlvbiA9IElPUFNHZXRQ
b3dlclNvdXJjZURlc2NyaXB0aW9uKHBvd2VyU291cmNlc0luZm8uZ2V0KCksIENGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgocG93ZXJTb3VyY2VzTGlzdC5nZXQoKSwgaSkpOworICAgICAgICAgICAgICAg
IENGVHlwZVJlZiB2YWx1ZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKGRlc2NyaXB0aW9uLCBDRlNU
UihrSU9QU1Bvd2VyU291cmNlU3RhdGVLZXkpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUg
JiYgQ0ZFcXVhbCh2YWx1ZSwgQ0ZTVFIoa0lPUFNBQ1Bvd2VyVmFsdWUpKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKKyAgICAgICAgfSgpOworICAgIH0KKworICAgIHJldHVybiAqaGFzQUM7
Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25h
bDxib29sPiYmIGhhc0JhdHRlcnkpCit7CisgICAgaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGlu
ZyA9IFdURk1vdmUoaGFzQmF0dGVyeSk7Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNB
Q0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3sKKyAgICBoYXNBQ092ZXJyaWRl
Rm9yVGVzdGluZyA9IFdURk1vdmUoaGFzQUMpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAppbmRleCA5OGE1M2M0MmYz
MDViOTI4NGVjZWE3OGI1ZTM2YTQ3MGQ3NTBkZGZiLi43Y2RmZTg2NDIzMDc0MjIwOTdjMWM1Zjk2
OTIwNzIxODIxMDQ2NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmln
dXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKQEAgLTMyLDExICszMiwxNSBAQAogI2luY2x1ZGUgIk1l
ZGlhQ2FwYWJpbGl0aWVzRGVjb2RpbmdJbmZvLmgiCiAjaW5jbHVkZSAiTWVkaWFEZWNvZGluZ0Nv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIlZQOVV0
aWxpdGllc0NvY29hLmgiCiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVv
Q29kZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBDTUZvcm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhw
ciBDTVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCiBz
dGF0aWMgQ01WaWRlb0NvZGVjVHlwZSB2aWRlb0NvZGVjVHlwZUZyb21SRkM0MjgxVHlwZShTdHJp
bmcgdHlwZSkKIHsKICAgICBpZiAodHlwZS5zdGFydHNXaXRoKCJtcDR2IikpCkBAIC00NSw2ICs0
OSw4IEBAIHN0YXRpYyBDTVZpZGVvQ29kZWNUeXBlIHZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFU
eXBlKFN0cmluZyB0eXBlKQogICAgICAgICByZXR1cm4ga0NNVmlkZW9Db2RlY1R5cGVfSDI2NDsK
ICAgICBpZiAodHlwZS5zdGFydHNXaXRoKCJodmMxIikgfHwgdHlwZS5zdGFydHNXaXRoKCJoZXYx
IikpCiAgICAgICAgIHJldHVybiBrQ01WaWRlb0NvZGVjVHlwZV9IRVZDOworICAgIGlmICh0eXBl
LnN0YXJ0c1dpdGgoInZwMDkiKSkKKyAgICAgICAgcmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX1ZQ
OTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtOTEsNiArOTcsMTIgQEAgdm9pZCBjcmVhdGVNZWRp
YVBsYXllckRlY29kaW5nQ29uZmlndXJhdGlvbkNvY29hKE1lZGlhRGVjb2RpbmdDb25maWd1cmF0
aW9uJiYgY28KICAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAg
ICB9IGVsc2UgaWYgKHZpZGVvQ29kZWNUeXBlID09IGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgewor
ICAgICAgICAgICAgYXV0byBjb2RlY0NvbmZpZ3VyYXRpb24gPSBwYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKGNvZGVjKTsKKyAgICAgICAgICAgIGlmICghY29kZWNDb25maWd1cmF0aW9uIHx8ICF2YWxp
ZGF0ZVZQUGFyYW1ldGVycygqY29kZWNDb25maWd1cmF0aW9uLCBpbmZvLCB2aWRlb0NvbmZpZ3Vy
YXRpb24pKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1
cmF0aW9uKX0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChhbHBoYUNoYW5uZWwgfHwgaGRyU3VwcG9ydGVk
KSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9u
KX0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VlA5VXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZQOVV0aWxpdGllc0NvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU4ZDdmOTZhYzAxYmQ1ZmRiNDAz
Y2Y4ZTBhYjVhMTg4YjkwYTc0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNp
bmNsdWRlICJWUDlVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
TWVkaWFDYXBhYmlsaXRpZXNJbmZvOworc3RydWN0IFZpZGVvQ29uZmlndXJhdGlvbjsKKworV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNh
YmxlZEZvclRlc3RpbmcoYm9vbCk7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCBzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCwgZmxvYXQgc2NhbGUpOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKKworZXh0ZXJuIGJvb2wgdmFs
aWRhdGVWUFBhcmFtZXRlcnMoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmLCBNZWRpYUNhcGFi
aWxpdGllc0luZm8mLCBjb25zdCBWaWRlb0NvbmZpZ3VyYXRpb24mKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0
aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VlA5VXRpbGl0aWVzQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyMzQzYjAxNjg3NmY4YmYyNWI4YjNk
ODc0NmM3MmZkZWIzNmRhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC0wLDAgKzEsMTc5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGll
c0NvY29hLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiRm91ckNDLmgiCisj
aW1wb3J0ICJNZWRpYUNhcGFiaWxpdGllc0luZm8uaCIKKyNpbXBvcnQgIlBsYXRmb3JtU2NyZWVu
LmgiCisjaW1wb3J0ICJTY3JlZW5Qcm9wZXJ0aWVzLmgiCisjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5
LmgiCisjaW1wb3J0ICJWaWRlb0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgPHd0Zi90ZXh0L1N0
cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CisjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVvQ29k
ZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBDTUZvcm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhwciBD
TVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCitzdGF0
aWMgYm9vbCBoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9Owor
CitzdHJ1Y3QgT3ZlcnJpZGVTY3JlZW5EYXRhIHsKKyAgICBmbG9hdCB3aWR0aCB7IDAgfTsKKyAg
ICBmbG9hdCBoZWlnaHQgeyAwIH07CisgICAgZmxvYXQgc2NhbGUgeyAxIH07Cit9Oworc3RhdGlj
IE9wdGlvbmFsPE92ZXJyaWRlU2NyZWVuRGF0YT4gc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGlu
ZzsKKwordm9pZCBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyhib29sIGRpc2FibGVkKQoreworICAgIGhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVz
dGluZyA9IGRpc2FibGVkOworfQorCit2b2lkIHNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNj
YWxlRm9yVGVzdGluZyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBzY2FsZSkKK3sK
KyAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nID0gbWFrZU9wdGlvbmFsPE92ZXJyaWRl
U2NyZWVuRGF0YT4oeyB3aWR0aCwgaGVpZ2h0LCBzY2FsZSB9KTsKK30KKwordm9pZCByZXNldE92
ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpCit7CisgICAgc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZyA9IFdURjo6bnVsbG9wdDsKK30KKworYm9vbCB2YWxpZGF0ZVZQ
UGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9u
LCBNZWRpYUNhcGFiaWxpdGllc0luZm8mIGluZm8sIGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYg
dmlkZW9Db25maWd1cmF0aW9uKQoreworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZUU2VsZWN0QW5k
Q3JlYXRlVmlkZW9EZWNvZGVySW5zdGFuY2Uoa0NNVmlkZW9Db2RlY1R5cGVfVlA5LCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBWaWRlb0NvbmZpZ3VyYXRpb24gYW5k
IFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkIGNhbiBoYXZlIGNvbmZsaWN0aW5nIHZhbHVlcyBm
b3IgSERSIHByb3BlcnRpZXMuIElmIHNvLCByZWplY3QuCisgICAgaWYgKHZpZGVvQ29uZmlndXJh
dGlvbi50cmFuc2ZlckZ1bmN0aW9uKSB7CisgICAgICAgIC8vIE5vdGU6IFRyYW5zZmVyIENoYXJh
Y3RlcmlzdGljcyBhcmUgZGVmaW5lZCBieSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICAgICAg
aWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0
aW9uOjpTUkdCICYmIGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA+
IDE1KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoKnZpZGVvQ29uZmln
dXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uID09IFRyYW5zZmVyRnVuY3Rpb246OlBRICYmIGNvZGVj
Q29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyAhPSAxNikKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJG
dW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpITEcgJiYgY29kZWNDb25maWd1cmF0aW9uLnRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzICE9IDE4KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uY29sb3JHYW11dCkgeworICAgICAg
ICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi5jb2xvckdhbXV0ID09IENvbG9yR2FtdXQ6OlJlYzIw
MjAgJiYgY29kZWNDb25maWd1cmF0aW9uLmNvbG9yUHJpbWFyaWVzICE9IDkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZU
SXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRl
ZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpICYmICFoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcpIHsKKyAgICAgICAgaW5mby5wb3dlckVmZmljaWVudCA9IHRydWU7CisKKyAgICAg
ICAgLy8gSFcgVlA5IERlY29kZXIgUHJvZmlsZSAwICYgMjoKKyAgICAgICAgaWYgKCFjb2RlY0Nv
bmZpZ3VyYXRpb24ucHJvZmlsZSAmJiBjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAhPSAyKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1
cHBvcnRzIHVwIHRvIExldmVsIDY6CisgICAgICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24ubGV2
ZWwgPiA2MCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkg
RGVjb2RlciBzdXBwb3J0cyA4IG9yIDEwIGJpdCBjb2xvcjoKKyAgICAgICAgaWYgKGNvZGVjQ29u
ZmlndXJhdGlvbi5iaXREZXB0aCA+IDEwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cG9ydHMgb25seSA0MjAgY2hyb21hIHN1YnNhbXBs
aW5nOgorICAgICAgICBpZiAoY29kZWNDb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nID4g
MSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2Rl
ciBkb2VzIG5vdCBzdXBwb3J0IGFscGhhIGNoYW5uZWw6CisgICAgICAgIGlmICh2aWRlb0NvbmZp
Z3VyYXRpb24uYWxwaGFDaGFubmVsICYmICp2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVs
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVy
IGNhbiBzdXBwb3J0IHVwIHRvIDRLIEAgMTIwIG9yIDhLIEAgMzAKKyAgICAgICAgaWYgKHZpZGVv
Q29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVy
YXRlID4gMTIwKQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAgICAgICAgZWxz
ZSBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA+IDIxNjAgJiYgdmlkZW9Db25maWd1cmF0
aW9uLmZyYW1lcmF0ZSA+IDMwKQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSB0cnVlOworCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFNXIFZQOSBEZWNvZGVyIGhhcyBtdWNoIG1vcmUg
dmFyaWFibGUgY2FwYWJpbGl0aWVzIGRlcGVuZGluZyBvbiBDUFUgY2hhcmFjdGVyaXN0aWNzLgor
ICAgIC8vIEZJWE1FOiBBZGQgYSBsb29rdXAgdGFibGUgZm9yIGRldmljZS10by1jYXBhYmlsaXRp
ZXMuIEZvciBub3csIGFzc3VtZSB0aGF0IHRoZSBTVyBWUDkKKyAgICAvLyBkZWNvZGVyIGNhbiBz
dXBwb3J0IDRLIEAgMzAuCisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMTA4
MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID4gNjApCisgICAgICAgIGluZm8uc21v
b3RoID0gZmFsc2U7CisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2MCAm
JiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID4gMzApCisgICAgICAgIGluZm8uc21vb3Ro
ID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICBpbmZvLnNtb290aCA9IHRydWU7CisKKyAgICAv
LyBGb3Igd2FsbC1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRl
ZCwgZXZlbiBpZiBub3QgcG93ZXJFZmZpY2llbnQuCisgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5
KCkpIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICAvLyBGb3IgYmF0dGVyeS1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyBy
ZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCB3aGVuIHJ1bm5pbmcgb24gQUMgcG93ZXIsCisgICAgLy8g
YnV0IG9ubHkgb24gYmF0dGVyeSB3aGVuIHRoZXJlIGlzIGFuIGF0dGFjaGVkIHNjcmVlbiB3aG9z
ZSByZXNvbHV0aW9uIGlzIGxhcmdlIGVub3VnaAorICAgIC8vIHRvIHN1cHBvcnQgNEsgdmlkZW8u
CisgICAgaWYgKHN5c3RlbUhhc0FDKCkpIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSB0cnVl
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGhhczRrU2NyZWVuID0g
ZmFsc2U7CisKKyAgICBhdXRvIGlzNGtTY3JlZW4gPSBbXShmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0LCBmbG9hdCBzY2FsZSkgeworICAgICAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgICAg
ICByZXR1cm4gaGVpZ2h0ICogc2NhbGUgPj0gMjE2MDsKKyAgICB9OworCisgICAgaWYgKHNjcmVl
blNpemVBbmRTY2FsZUZvclRlc3RpbmcpCisgICAgICAgIGhhczRrU2NyZWVuID0gaXM0a1NjcmVl
bihzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZy0+aGVpZ2h0LCBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT5zY2FsZSk7
CisgICAgZWxzZSB7CisgICAgICAgIGZvciAoYXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblBy
b3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoaXM0
a1NjcmVlbihzY3JlZW5EYXRhLnNjcmVlblJlY3Qud2lkdGgoKSwgc2NyZWVuRGF0YS5zY3JlZW5S
ZWN0LmhlaWdodCgpLCBzY3JlZW5EYXRhLnNjYWxlRmFjdG9yKSkgeworICAgICAgICAgICAgICAg
IGhhczRrU2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaGFzNGtTY3JlZW4pIHsKKyAgICAgICAg
aW5mby5zdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQppbmRl
eCBjNjQ2Y2YyNDlmZjIyMjhjNTVkMDgzNWYwNDM0NzU5N2Q0OTI4MzQ4Li5iZjNlNjc5NjJhOGQ4
ZmNmZTlkYzJiYWFmMTkxZDNiNzMxZTE1ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCkBAIC0yMDAsOCArMjAwLDEwIEBAIFNjcmVl
blByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICBpbnQgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQgPSBXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChudWxs
cHRyKTsKICAgICAgICAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IgPSBXZWJDb3Jl
OjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IobnVsbHB0cik7CiAgICAgICAgIGJvb2wgc2Ny
ZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBXZWJDb3JlOjpzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygp
OworICAgICAgICBib29sIGhkciA9IHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShzY3Jl
ZW4pOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IFdlYkNvcmU6OnNjcmVlblBQSUZhY3Rv
cigpOwogCi0gICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoKytkaXNw
bGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xv
clNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBv
cnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgfSk7CisgICAgICAgIHNj
cmVlblByb3BlcnRpZXMuc2NyZWVuRGF0YU1hcC5zZXQoKytkaXNwbGF5SUQsIFNjcmVlbkRhdGEg
eyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0
aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwg
c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMsIGhkciwgc2NhbGVGYWN0b3IgfSk7CiAgICAgICAgIAog
ICAgICAgICBpZiAoc2NyZWVuID09IFtQQUw6OmdldFVJU2NyZWVuQ2xhc3MoKSBtYWluU2NyZWVu
XSkKICAgICAgICAgICAgIHNjcmVlblByb3BlcnRpZXMucHJpbWFyeURpc3BsYXlJRCA9IGRpc3Bs
YXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNj
cmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1h
Yy5tbQppbmRleCA4YTBlMGFhYWIyYTljZDA1ZGNjZGQ4NjkzMjVkMmMxYjFjNWFiZDEzLi43Njcw
NmJlODg4NmM4OTgyYTE2NGEyZjJmMmRjZDBkYWM2NjMxNTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0xMTcsNiArMTE3LDcg
QEAgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpCiAgICAgICAgIHVp
bnQzMl90IGRpc3BsYXlNYXNrID0gQ0dEaXNwbGF5SURUb09wZW5HTERpc3BsYXlNYXNrKGRpc3Bs
YXlJRCk7CiAgICAgICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCA9IDA7CiAgICAgICAgIGJvb2wg
c2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlID0gZmFsc2U7CisgICAgICAgIGZsb2F0IHNj
YWxlRmFjdG9yID0gc2NyZWVuLmJhY2tpbmdTY2FsZUZhY3RvcjsKIAogI2lmIFVTRShNRURJQVRP
T0xCT1gpCiAgICAgICAgIGlmIChQQUw6OmlzTWVkaWFUb29sYm94RnJhbWV3b3JrQXZhaWxhYmxl
KCkgJiYgUEFMOjpjYW5Mb2FkX01lZGlhVG9vbGJveF9NVFNob3VsZFBsYXlIRFJWaWRlbygpKQpA
QCAtMTI2LDcgKzEyNyw3IEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRp
ZXMoKQogICAgICAgICBpZiAoZGlzcGxheU1hc2spCiAgICAgICAgICAgICBncHVJRCA9IGdwdUlE
Rm9yRGlzcGxheU1hc2soZGlzcGxheU1hc2spOwogCi0gICAgICAgIHNjcmVlblByb3BlcnRpZXMu
c2NyZWVuRGF0YU1hcC5zZXQoZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxl
UmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVy
Q29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVk
Q29sb3JzLCBzY3JlZW5TdXBwb3J0c0hpZ2hEeW5hbWljUmFuZ2UsIHNjcmVlbklzTW9ub2Nocm9t
ZSwgZGlzcGxheU1hc2ssIGdwdUlEIH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVl
bkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWlsYWJsZVJlY3Qs
IHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBv
bmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZlcnRlZENvbG9y
cywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9jaHJvbWUsIGRp
c3BsYXlNYXNrLCBncHVJRCwgc2NhbGVGYWN0b3IgfSk7CiAKICAgICAgICAgaWYgKCFzY3JlZW5Q
cm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQpCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVz
LnByaW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggY2U5NmJhNzY3ZTBjMDU3NTgwZmUxMDVjZDJiMzM3ZTdhMTU0MmE1Ny4uZDY4
YTdhOTYwNDhmY2Y2NjgyZGRmMTQ3NzcxZDIxZWRjNjk4ZjBhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMzE5LDEwICszMTksNiBAQAogI2luY2x1ZGUgIldlYlhSVGVz
dC5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIFVTRShMSUJXRUJSVEMpCi0jaW5j
bHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaD4KLSNlbmRp
ZgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlci5oIgogI2luY2x1ZGUgIk5TU2Nyb2xsZXJJbXBEZXRhaWxzLmgiCkBAIC0zMzEsMTAg
KzMyNywxNSBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiU3lzdGVtQmF0dGVy
eS5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9j
b2NvYS9Db3JlVGV4dFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEku
aD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQorI2luY2x1
ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+CisjZW5kaWYK
KwogdXNpbmcgSlNDOjpDYWxsRGF0YTsKIHVzaW5nIEpTQzo6Q29kZUJsb2NrOwogdXNpbmcgSlND
OjpGdW5jdGlvbkV4ZWN1dGFibGU7CkBAIC02MzAsNiArNjMxLDEzIEBAIEludGVybmFsczo6SW50
ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVudCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgIEVOQUJM
RShXRUJfQVVESU8pCiAgICAgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpjcmVhdGVPdmVycmlkZSA9
IG51bGxwdHI7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHNldE92ZXJyaWRl
U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRPdmVycmlk
ZVN5c3RlbUhhc0FDRm9yVGVzdGluZyhXVEY6Om51bGxvcHQpOworICAgIHNldE92ZXJyaWRlVlA5
SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGZhbHNlKTsKKyAgICByZXNldE92ZXJy
aWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpOworI2VuZGlmCiB9CiAKIERvY3Vt
ZW50KiBJbnRlcm5hbHM6OmNvbnRleHREb2N1bWVudCgpIGNvbnN0CkBAIC01ODE4LDYgKzU4MjYs
NDQgQEAgYm9vbCBJbnRlcm5hbHM6OnN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdAogI2VuZGlmCiB9
CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wgaGFzQmF0dGVyeSkK
K3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVN5c3RlbUhh
c0JhdHRlcnlGb3JUZXN0aW5nKGhhc0JhdHRlcnkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
aGFzQmF0dGVyeSk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FD
KGJvb2wgaGFzQUMpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6c2V0T3Zl
cnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoaGFzQUMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oaGFzQUMpOworI2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQOURl
Y29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyhkaXNhYmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkaXNhYmxlZCk7
CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZShk
b3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQsIGRvdWJsZSBzY2FsZSkKK3sKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3Rpbmcod2lkdGgsIGhlaWdodCwgc2NhbGUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
d2lkdGgpOworICAgIFVOVVNFRF9QQVJBTShoZWlnaHQpOworICAgIFVOVVNFRF9QQVJBTShzY2Fs
ZSk7CisjZW5kaWYKK30KKwogaW50IEludGVybmFsczo6cmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSkKIHsKICNpZiBQTEFURk9STShD
T0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJlYzU5Y2JjYzAxOGZkNmIx
OWJlYTIzZTc5OTBmY2FkYTM1MmUxNmYuLjYwZDlkOWYwNTE1ZDk2ZTMwNTVhYzZkMmM1NDEwMDNj
ZjdiMjg3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTAxOCw2ICsxMDE4
LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpIGNvbnN0OwogCisg
ICAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wpOworICAgIHZvaWQgc2V0U3lzdGVtSGFz
QUMoYm9vbCk7CisKKyAgICB2b2lkIHNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVz
dGluZyhib29sKTsKKyAgICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShkb3VibGUsIGRv
dWJsZSwgZG91YmxlKTsKKwogICAgIGludCByZWFkUHJlZmVyZW5jZUludGVnZXIoY29uc3QgU3Ry
aW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5KTsKICAgICBTdHJpbmcgZW5jb2RlZFByZWZl
cmVuY2VWYWx1ZShjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggODhiNDYxZTYxM2U1ODIyMjY4M2Q5
YWFhMjJiNDZhM2RiZjJlZTVjMy4uMDBjYTY1YjQ2MWJlMjg5N2Q0NTRjNDQ5MzA0ODJkZTEwYjE1
MGZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTMyLDYgKzkzMiwx
MiBAQCBlbnVtIENvbnRlbnRTaXplQ2F0ZWdvcnkgewogCiAgICAgYm9vbGVhbiBzeXN0ZW1IYXNC
YXR0ZXJ5KCk7CiAKKyAgICB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbGVhbiBoYXNCYXR0
ZXJ5KTsKKyAgICB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2xlYW4gaGFzQUMpOworCisgICAgdm9p
ZCBzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbGVhbiBkaXNhYmxl
ZCk7CisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoZG91YmxlIHdpZHRoLCBkb3Vi
bGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpOworCiAgICAgbG9uZyByZWFkUHJlZmVyZW5jZUludGVn
ZXIoRE9NU3RyaW5nIGRvbWFpbiwgRE9NU3RyaW5nIGtleSk7CiAgICAgRE9NU3RyaW5nIGVuY29k
ZWRQcmVmZXJlbmNlVmFsdWUoRE9NU3RyaW5nIGRvbWFpbiwgRE9NU3RyaW5nIGtleSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggOWE0MzQ5ZGQ0M2VlNWM1YTYzMDAwNTY1ZTY0ZGQxYzk4YzhkYTM1My4uMjJm
ZDRjOGUzZTA4ZDRkYmEzZTI3MjRkMTkxYjkxNjA5MjA3MWM0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE3
MCw2ICsxNzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW5j
b2RlciA8PCBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHN5c3RlbUhhc0Jh
dHRlcnk7CisgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNBQzsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKQEAgLTQ1OSw2ICs0NjAsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3Jl
YXQKICAgICBpZiAoIXN5c3RlbUhhc0JhdHRlcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBXVEZNb3ZlKCpzeXN0ZW1IYXNCYXR0ZXJ5
KTsKKworICAgIE9wdGlvbmFsPGJvb2w+IHN5c3RlbUhhc0FDOworICAgIGRlY29kZXIgPj4gc3lz
dGVtSGFzQUM7CisgICAgaWYgKCFzeXN0ZW1IYXNBQykKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQUMgPSBXVEZNb3ZlKCpzeXN0ZW1IYXNBQyk7CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYWExYjdhYTFmYjc2YmMw
N2RjODA2ZmQwMmQzZGQxY2ExOWZiNGUwYi4uYzY3NGEzYjcxNTViN2Y4YTMwYjA2ZWFhMGYzZDA2
MGRiOTZhM2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjE0LDYgKzIxNCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wg
c3lzdGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CisgICAgYm9vbCBzeXN0ZW1IYXNBQyB7IGZhbHNl
IH07CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBmYmMx
ZWYyMjgxNzdhZjczMTcyYmM0NGU3M2NmODkzMDNkOTM3NDYyLi5mNWNlOGYwYmJmMTI3N2QzMmJl
NWNhNjRkMTY3ZmY4MzlhMjQzYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTU1LDYgKzU1LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUlu
UGljdHVyZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1Bvd2VyU291cmNlTm90aWZpZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KQEAgLTQwNyw2ICs0MDgs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNv
bnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsKKyAg
ICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0FDID0gc3lzdGVtSGFzQUMoKTsKIAogICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKICAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiJfcywgV1RGOjpu
dWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0KSkK
QEAgLTY5Nyw2ICs2OTksMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJOb3RpZmlj
YXRpb25PYnNlcnZlcnMoKQogICAgIH1dOwogI2VuZGlmCiAjZW5kaWYKKworICAgIG1fcG93ZXJT
b3VyY2VOb3RpZmllciA9IFdURjo6bWFrZV91bmlxdWU8V2ViQ29yZTo6UG93ZXJTb3VyY2VOb3Rp
Zmllcj4oW3RoaXNdIChib29sIGhhc0FDKSB7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6UG93ZXJTb3VyY2VEaWRDaGFuZ2UoaGFzQUMpKTsKKyAgICB9
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2Vy
dmVycygpCkBAIC03MjYsNiArNzMyLDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rl
ck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAjZW5kaWYKIAogICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIu
Z2V0KCldOworCisgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKIH0KIAogc3Rh
dGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmUzNTQyZWMxYmU5
NjdlNzJiOGU2NmRlMzM5NmVlODYwOTczZmQ0ZS4uYjkyOGVkNzA5ODkyYTQ5MDE1NmJkOWM2NmVk
NmM2NjBiZjU0NGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtODgsNiArODgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Bvd2VyU291cmNlTm90aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzV2FybWluZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCmluZGV4IDlmMDY1MDJkZTBlM2M0NTZmMzA1M2M0MmVkYzk4NTFkMjI5Y2Rl
OWMuLjNhMzQ2ZDc3MTI3MGNjZTk3YWQ4MGU1NjY1ODg0OGM1OGY2NzQ4NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtOTQsNiArOTQsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOworI2lm
IFBMQVRGT1JNKENPQ09BKQorY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllcjsKKyNlbmRpZgogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxMCw2ICs3MTMsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UG93
ZXJTb3VyY2VOb3RpZmllcj4gbV9wb3dlclNvdXJjZU5vdGlmaWVyOwogICAgIFJldGFpblB0cjxO
U09iamVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBt
X2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDA2MzMyNTBhYTFjYWQ1OTRmOTQ5YjU2YzAxNDVkM2NhZjZi
NzgyNzQuLjhkMmJhMjZlNDE0YmY1YWNjYWRlMzU2NTQ2NmUyMGRkMTU3NGFlYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzA3LDYgKzMwNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7
CiAgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkmJik7CiAjZW5kaWYKKyAgICB2b2lkIHBvd2VyU291cmNlRGlkQ2hhbmdlKGJvb2wp
OwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDY5MGU0ZmE1ZDZjOWFhYjVkZWM2MGQxMDAxNjA2ODc2MGE3NjFkZDAuLmNkYTA1Yjk0ZmYyYWRi
NDI0NzA1OTcyMzQ0NDJhZjM5MDM3ZDdiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNiArMTcyLDcgQEAgbWVzc2FnZXMg
LT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBOb3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3Ry
aW5nPiBlbmNvZGVkVmFsdWUpCiAgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYKKyAgICBQ
b3dlclNvdXJjZURpZENoYW5nZShib29sIGhhc0FDKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShH
VEspICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMwZmYwNGY4NTA0ZGUwZWE5Njk1NDZlMTdkNmI0Mjcz
ZmRjY2VhNzQuLjRlMzkyMjdlZjEyMWMyZDRlYWY1ZGFjMWUyMjVjYWRiNzNmNTFlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpA
QCAtMzEyLDYgKzMxMiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKICAgICAK
ICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7Cisg
ICAgc2V0U3lzdGVtSGFzQUMocGFyYW1ldGVycy5zeXN0ZW1IYXNBQyk7CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOwpAQCAt
MTAyMiw2ICsxMDIzLDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1NlcnZpY2VzUmVxdWly
ZWRCeUFjY2Vzc2liaWxpdHkoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6CiAgICAgcmVnaXN0ZXJX
aXRoQWNjZXNzaWJpbGl0eSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlk
Q2hhbmdlKGJvb2wgaGFzQUMpCit7CisgICAgc2V0U3lzdGVtSGFzQUMoaGFzQUMpOworfQorCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjVlMTc0OGJjZTc4NWViYTM3ZmZmMzNm
MTdmZGQ3N2ZkYWE0OGIwNS4uOTIzYjkxMmEwOWEwNzM5MTljMjIwYjM3OWMzYjQyMzUwODRlYmE0
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVzIHN1
cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMv
dnA5LWRlY29kaW5nSW5mby1zdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0bWw6
IEFkZGVkLgorCiAyMDIwLTA3LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZsYXNoZXMgb2YgaW5jb3JyZWN0IHNjcm9sbCBwb3NpdGlvbiB3aGVu
IHpvb21pbmcgb24gcXVpcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21l
ZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNv
ZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTg3MjdkM2VmYWFkYWFlYzVj
N2YyY2JiNThlMjk0OTcyNWEzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorUlVOKGludGVybmFscy5zZXRTeXN0ZW1IYXNCYXR0
ZXJ5KHRydWUpKQorUlVOKGludGVybmFscy5zZXRTeXN0ZW1IYXNBQyh0cnVlKSkKK1JVTihpbnRl
cm5hbHMuc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKHRydWUpKQorUlVO
KGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoMTAyNCwgNzY4LCAxKSkKKworVGVz
dCB0aGF0IDRrIEAgMzBmcHMgaXMgc3VwcG9ydGVkLCBzbW9vdGgsIGJ1dCBub3QgcG93ZXJFZmZp
Y2llbnQKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5n
SW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTogJ3ZpZGVv
L21wNDsgY29kZWNzPSJ2cDA5LjAwLjQxLjA4IicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTogODAw
MDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7KQorUHJvbWlzZSByZXNvbHZlZCBP
SworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChpbmZv
LnBvd2VyRWZmaWNpZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9vdGggPT0g
J3RydWUnKSBPSworCitUZXN0IHRoYXQgNGsgQCA2MGZwcyBpcyBzdXBwb3J0ZWQsIGJ1dCBub3Qg
c21vb3RoIG9yIHBvd2VyRWZmaWNpZW50CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNh
cGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsg
Y29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBoZWlnaHQ6
IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogNjAgfX0pOykK
K1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAndHJ1ZScp
IE9LCitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBPSworRVhQRUNU
RUQgKGluZm8uc21vb3RoID09ICdmYWxzZScpIE9LCisKK1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2Rl
ciBpcyBub3Qgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4gaXMgbm90IDRr
IHJlc29sdXRpb24KK1JVTihpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQUMoZmFsc2UpKQorUlVOKHBy
b21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTog
J21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9
InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAz
MTgwLCBmcmFtZXJhdGU6IDMwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAo
aW5mby5zdXBwb3J0ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnBvd2VyRWZmaWNp
ZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9vdGggPT0gJ2ZhbHNlJykgT0sK
KworVGVzdCB0aGF0IFNXIFZQOSBkZWNvZGVyIGlzIHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBvd2Vy
IHdoZW4gc2NyZWVuIGlzIGF0IGxlYXN0IDRrIHJlc29sdXRpb24KK1JVTihpbnRlcm5hbHMuc2V0
VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKDM4NDAsIDIxNjAsIDEpKQorUlVOKHByb21pc2UgPSBuYXZp
Z2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJj
ZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9InZwMDkuMDAuNDEu
MDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJh
dGU6IDMwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBwb3J0
ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNl
JykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVTVAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmls
aXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNGU5YjQzZjgxYjQwOTQxOGVjNmI0OTA3NzdjZWNlMzc1ODViYTY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVz
L3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vLi4vLi4vbWVkaWEvdmlk
ZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgdmFyIHByb21pc2U7CisgICAgdmFyIGluZm87CisKKyAgICBhc3luYyBmdW5jdGlvbiBk
b1Rlc3QoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAg
ICAgICBmYWlsVGVzdCgiSW50ZXJuYWxzIGlzIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuIikKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dFN5c3RlbUhhc0JhdHRlcnkodHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0U3lz
dGVtSGFzQUModHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0SGFyZHdhcmVWUDlE
ZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKHRydWUpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSgxMDI0LCA3NjgsIDEpJyk7CisKKyAgICAgICAgY29u
c29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgNGsgQCAzMGZw
cyBpcyBzdXBwb3J0ZWQsIHNtb290aCwgYnV0IG5vdCBwb3dlckVmZmljaWVudCcpOworICAgICAg
ICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZv
KHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0
OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAw
MCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOworICAgICAgICBpbmZvID0gYXdh
aXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1
cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8ucG93ZXJFZmZpY2ll
bnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zbW9vdGgnLCB0cnVlKTsK
KworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3Qg
dGhhdCA0ayBAIDYwZnBzIGlzIHN1cHBvcnRlZCwgYnV0IG5vdCBzbW9vdGggb3IgcG93ZXJFZmZp
Y2llbnQnKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmls
aXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRl
bnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEw
ODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogNjAgfX0pOyIpOwor
ICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5m
by5zbW9vdGgnLCBmYWxzZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAg
Y29uc29sZVdyaXRlKCdUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBv
biBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uJyk7CisgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDKGZhbHNlKScpOworICAgICAgICBydW4o
InByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlw
ZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2Rl
Y3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lk
dGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOworICAgICAgICBpbmZvID0gYXdhaXQgc2hv
dWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRl
ZCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50Jywg
ZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc21vb3RoJywgZmFsc2UpOworCisg
ICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB0aGF0
IFNXIFZQOSBkZWNvZGVyIGlzIHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2NyZWVu
IGlzIGF0IGxlYXN0IDRrIHJlc29sdXRpb24nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKDM4NDAsIDIxNjAsIDEpJyk7CisgICAgICAgIHJ1bigicHJv
bWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAn
bWVkaWEtc291cmNlJywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz1c
InZwMDkuMDAuNDEuMDhcIicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTogODAwMDAwLCB3aWR0aDog
MzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7Iik7CisgICAgICAgIGluZm8gPSBhd2FpdCBzaG91bGRS
ZXNvbHZlKHByb21pc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc3VwcG9ydGVkJywg
dHJ1ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5wb3dlckVmZmljaWVudCcsIGZhbHNl
KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnNtb290aCcsIHRydWUpOworCisgICAgICAg
IGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
ImRvVGVzdCgpIiAvPgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404293</attachid>
            <date>2020-07-14 15:28:35 -0700</date>
            <delta_ts>2020-07-14 16:55:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214316-20200714152834.patch</filename>
            <type>text/plain</type>
            <size>56342</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI5MTA3MjczYzM0ZjMy
ZjU4MDNkZjVjNjU0NzRmOGY5ZmRhYzA5NS4uMWM0YWI0MzVkZGMzM2E3YjMyYWQ0YWQ1OTYwMTQ4
MjIwNWU3NjA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL21lZGlh
L21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbAorCisgICAgICAgIEFk
ZCBzb21lIGZvdW5kYXRpb25hbCBzdXBwb3J0IGZvciBTVyBWUDksIHdoaWNoIGR1ZSB0byBwb2xp
Y3kgZGVjaXNpb25zIHdpbGwgbmVlZCBpbmZvcm1hdGlvbgorICAgICAgICBib3RoIG9uIHRoZSBz
eXN0ZW0gYmF0dGVyeSBzdGF0dXMsIGJ1dCBhbHNvIHBvd2VyIGFkYXB0ZXIgc3RhdHVzLCBhbmQg
dGhlc2UgbmVlZCB0byBiZSBzaGlwcGVkCisgICAgICAgIGludG8gdGhlIFdlYkNvbnRlbnQgcHJv
Y2VzcyBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgQWRkIHNvbWUgSW50ZXJuYWwgb3Zl
cnJpZGUgc2V0dGluZ3MgdG8gYWxsb3cgdGhlIHBvbGljaWVzIHRvIGJlIGVmZmVjdGl2ZWx5IHRl
c3RlZCB0aHJvdWdoCisgICAgICAgIExheW91VGVzdHMuIFRoaXMgaW5jbHVkZXMgb3ZlcnJpZGVz
IGZvciBzeXN0ZW0gYmF0dGVyeSBhbmQgQUMgc3RhdGUsIGFzIHdlbGwgYXMgb3ZlcnJpZGVzIGZv
cgorICAgICAgICBzY3JlZW4gc2l6ZSBhbmQgcmVzb2x1dGlvbi4KKworICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2Ny
ZWVuLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmVlbkRhdGE6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VO
b3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIu
bW06CisgICAgICAgIChXZWJDb3JlOjpQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5v
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6On5Qb3dlclNv
dXJjZU5vdGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6Om5v
dGlmeVBvd2VyU291cmNlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW06Cisg
ICAgICAgIChXZWJDb3JlOjpzeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnJl
c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0U3lzdGVtSGFzQUMpOgorICAg
ICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVy
cmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25maWd1cmF0aW9uQ29jb2EpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVW
UFBhcmFtZXRlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpj
b2xsZWN0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0U3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDIwLTA3LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJv
cCBjYWNoZSBvZiBzdWJmcmFtZSBjb3VudCBvbiB0aGUgUGFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggY2JhOTE0ZTFlMzhkYjNkY2M4NjEyNjdmOWE1MDg2ZTVkMjBhZDRlYS4uZTg1ZGZlYmE2ZmYz
NWY2ZmM5Y2NmOTY0N2RhN2YwNTU3MmNjZjc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjAtMDctMTQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBBZGQgTWVkaWFDYXBhYmlsaXRpZXMgc3VwcG9ydCBmb3IgU1cgVlA5
IGRlY29kZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQzMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHBhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oOgorCiAyMDIwLTA3LTEyICBSb2IgQnVpcyAg
PHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVpbGRpbmcgQ0ZOZXR3b3JrU1BJIHdpdGgg
dGhlIG1hY09TIEJpZyBTdXIgcHVibGljIFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MTNiYjZhYTZi
YmQ1NTcyNWIwYmUxYjlmZWRlODdlZGFlOTAwOTFlLi40NzFmMDc3YWFiNGVmOTE1Y2UxN2E4MTU5
ZTQwYTk1ZWViYmRlNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTE0ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1l
ZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgc3lzdGVtIEFDIHN0
YXRlIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgYXQgY3JlYXRpb24gdGltZSwgYW5kIGFsc28g
Y3JlYXRlCisgICAgICAgIGEgcG93ZXIgc3RhdGUgbGlzdGVuZXIgc28gdGhlIFdlYlByb2Nlc3Mg
Y2FuIGJlIHVwZGF0ZWQgZHluYW1pY2FsbHkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cmVnaXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cG93ZXJT
b3VyY2VEaWRDaGFuZ2UpOgorCiAyMDIwLTA0LTMwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBkYXRhIGNvcGllcyBpbiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzIGN1c3RvbSBVUkwgc2NoZW1lIGhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaAppbmRleCA3MDJiOTU2NjIwZjUxNGU1YjAyN2Y5Zjlk
YmZmN2JkOGMxZjBkZWI4Li40OTk5YjhlYjI2NGNkMTZkODQ0ZGI3Mzg0NjYxMDU0ZDc2YTA0YWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCkBA
IC0zNiw2ICszNiw5IEBACiAKICNkZWZpbmUga0lPUFNUeXBlS2V5ICJUeXBlIgogI2RlZmluZSBr
SU9QU0ludGVybmFsQmF0dGVyeVR5cGUgIkludGVybmFsQmF0dGVyeSIKKyNkZWZpbmUga0lPUFNQ
b3dlclNvdXJjZVN0YXRlS2V5ICJQb3dlciBTb3VyY2UgU3RhdGUiCisjZGVmaW5lIGtJT1BTQUNQ
b3dlclZhbHVlICJBQyBQb3dlciIKKyNkZWZpbmUga0lPUFNOb3RpZnlQb3dlclNvdXJjZSAiY29t
LmFwcGxlLnN5c3RlbS5wb3dlcnNvdXJjZXMuc291cmNlIgogCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggNDRlYTA4ZjY0MjEyMzYyZGMzMTEzMWQ4NDY3YWVlMjc1MTc0YWY3
ZS4uMWQ3ZjIwOTg2N2MxZDRlMGE0Mjc0Njk3NjU1ZjhkMWIxMzZkYWQwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0yNDEsNiArMjQxLDcgQEAgcGxhdGZvcm0vY29jb2EvUGFzdGVib2Fy
ZENvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCiBw
bGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2Ev
UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0KK3BsYXRmb3JtL2NvY29hL1Bvd2Vy
U291cmNlTm90aWZpZXIubW0KIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0NvY29hLm1tCiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCiBwbGF0Zm9ybS9j
b2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbQpAQCAtMzQ5LDYgKzM1MCw3IEBAIHBsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ludFJlY3RDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29hLm1tCitwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9XZWJDb3JlQ0FMYXllckV4dHJhcy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTZlODdiMDVhOTZjNDVhYWRmMTIxMmZh
M2E3ZGZkMWUxOGM1NmI3Ny4uOTNlMjIwYjJiODkwNmJhMzJlYTdlZTA4NTM3Mzg5ZDdjNDdjNjc4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDIwMCw2ICs0MjAwLDcgQEAKIAkJQ0RDNjlERDYxNjMyMDI2QzAwN0MzOERGIC8q
IFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQzY5REQ0MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldhcm5pbmdWaWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0RDNjlEREExNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxs
U2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREM2OUREODE2MzcxRkQzMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5QbGFjZWhvbGRlclZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDREM3MzQxNTE5Nzc4OTZEMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM3MzQxMzE5
Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RDNzQ3MDQyNEJFMkZDNzAwQzE4NjhCIC8qIFBv
d2VyU291cmNlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQzc0NzAwMjRCRTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RD
OEI1QTIxODA0NjM0NzAwMTZFNjg1IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QzhCNUEwMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0gKi87IH07CiAJCUNEQzhCNUEzMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQzhCNUExMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLzsgfTsKIAkJQ0RDOEI1QTYxODA0NzRGNzAw
MTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBNDE4MDQ3NEY3MDAxNkU2ODUgLyog
TWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKQEAgLTE0MTA3LDYgKzE0MTA4LDgg
QEAKIAkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVNvdXJjZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQjIxODE4RjVFRDAwRUU0QzQxIC8qIFNv
dXJjZUJ1ZmZlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlQnVmZmVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDY0MUVD
NzE4MUVENjAxMDBFRTRDNDEgLyogTWVkaWFTYW1wbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
YW1wbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2RkU1QjcyNEJDRTY0NTAw
OUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQOVV0aWxpdGll
c0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUI4MjRCQ0U2NDUw
MDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZQ
OVV0aWxpdGllc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDZGRTVC
QTI0QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZQOVV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDZGRTVCQjI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZQOVV0aWxp
dGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzIwQjQ3MjI2ODJDN0Uw
MDA0N0ZERSAvKiBJU09GYWlyUGxheVN0cmVhbWluZ1Bzc2hCb3guY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0MjgzLDYgKzE0Mjg2LDggQEAKIAkJQ0RDNjlERDkxNjM3MUZEMzAwN0Mz
OERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzczNDEyMTk3Nzg5NkMwMDQ2
QkZDNSAvKiBDQVJpbmdCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ0FSaW5nQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RD
NzM0MTMxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDQVJpbmdCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUG93ZXJTb3VyY2VOb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREM3NDcwMTI0QkUyNjc5MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmll
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvd2VyU291cmNlTm90aWZpZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUEwMTgwNDYzNDcwMDE2RTY4NSAvKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUExMTgwNDYzNDcwMDE2RTY4
NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzhCNUE0MTgwNDc0RjcwMDE2RTY4
NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjMwLDYgKzIzNjM1LDggQEAKIAkJCQlDREEyOUEwQTFD
QkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWwuaCAqLywKIAkJCQlDREEyOUEw
RDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaCAq
LywKIAkJCQlDREEyOUEwQzFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQubW0gKi8sCisJCQkJQ0RDNzQ3MDAyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2Vy
U291cmNlTm90aWZpZXIuaCAqLywKKwkJCQlDREM3NDcwMTI0QkUyNjc5MDBDMTg2OEIgLyogUG93
ZXJTb3VyY2VOb3RpZmllci5tbSAqLywKIAkJCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gKi8sCiAJCQkJMUFBODRGMDMxNDNCQTdC
RDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUE4NEYwMjE0M0JBN0JE
MDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5tbSAqLywKQEAgLTI1NzQ0LDExICsyNTc1MSwx
MSBAQAogCQkJCTA3NkUxMUJFMUY2ODNFMEQwMDE3NzM5NSAvKiBUcmFja1ByaXZhdGVCYXNlLmNw
cCAqLywKIAkJCQlCRTkxM0Q3RjE4MUVGOEU1MDBEQ0IwOUUgLyogVHJhY2tQcml2YXRlQmFzZS5o
ICovLAogCQkJCUU0QUZDRkE0MERBRjI5QTMwMEY1RjU1QyAvKiBVbml0QmV6aWVyLmggKi8sCi0J
CQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovLAotCQkJCUNE
NkZFNUJCMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuY3BwICovLAogCQkJCTBGNUE1
N0NBMjI5QjE4QUUwMDI1RURBOSAvKiBWZWxvY2l0eURhdGEuY3BwICovLAogCQkJCTBGMUEwQzM2
MjI5QTQ4MTgwMEQzN0FEQiAvKiBWZWxvY2l0eURhdGEuaCAqLywKIAkJCQlCRUYyOUVFQTE3MTVE
RDA5MDBDNEI0QzkgLyogVmlkZW9UcmFja1ByaXZhdGUuaCAqLywKKwkJCQlDRDZGRTVCQjI0QkNF
N0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKKwkJCQlDRDZGRTVCQTI0QkNFN0I2
MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmggKi8sCiAJCQkJMTQxMURDQjAxNjRDMzlBODAwRDQ5
QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLywKIAkJCQk5MzlCMDJFQzBFQTJEQkM0MDBDNTQ1NzAgLyog
V2lkdGhJdGVyYXRvci5jcHAgKi8sCiAJCQkJOTM5QjAyRUQwRUEyREJDNDAwQzU0NTcwIC8qIFdp
ZHRoSXRlcmF0b3IuaCAqLywKQEAgLTI1ODg2LDYgKzI1ODkzLDggQEAKIAkJCQlFNEU4QjRFQTIx
NkI3OUU1MDBCODgzNEQgLyogU3lzdGVtRm9udERhdGFiYXNlQ29yZVRleHQuaCAqLywKIAkJCQk1
MjY3MjRGMjFDQjJGREY2MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5o
ICovLAogCQkJCTUyNjcyNEYxMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbkNvY29hLm1tICovLAorCQkJCUNENkZFNUI3MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXNDb2NvYS5oICovLAorCQkJCUNENkZFNUI4MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGls
aXRpZXNDb2NvYS5tbSAqLywKIAkJCQkyRDNFRjQ0NDE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0
aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggKi8sCiAJCQkJMkQzRUY0NDUxOTE3OTE1QzAw
MDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbSAqLywKIAkJCQky
RDNFRjQ0NjE5MTc5MTVDMDAwMzQxODQgLyogV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaCAqLywKQEAg
LTMyNjQwLDYgKzMyNjQ5LDcgQEAKIAkJCQlBMTQ5Nzg3MTFBQkFGM0E1MDBDRUY3RTQgLyogUGxh
dGZvcm1Db250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVDNzYyQjE0OTdGRTE0
MDBCQzQ3NzUgLyogUGxhdGZvcm1FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY2MDFFQkYx
NEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDREM3NDcwNDI0QkUyRkM3MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIzRjc3QjE0ODRDQTRDMDA4
QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJF
MTk1MUQ1NEY1RkIwMEREN0M2OCAvKiBQbGF0Zm9ybUdhbWVwYWQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCmluZGV4IDlhMGQ4ZjVj
NTdmNTg2NDQ1ZjY5OTA4Mzk1ZTRiYzEwN2M2YjA2NzIuLmJhNTBiNjg4YWI2ZDBiYWU1ZDE5OWZh
MGJhYzRiN2UyMDA0YmFmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5jcHAKQEAgLTM4LDYgKzM4LDExIEBAIHN0YXRpYyBTY3JlZW5Qcm9wZXJ0aWVzJiBzY3Jl
ZW5Qcm9wZXJ0aWVzKCkKICAgICByZXR1cm4gc2NyZWVuUHJvcGVydGllczsKIH0KIAorY29uc3Qg
U2NyZWVuUHJvcGVydGllcyYgZ2V0U2NyZWVuUHJvcGVydGllcygpCit7CisgICAgcmV0dXJuIHNj
cmVlblByb3BlcnRpZXMoKTsKK30KKwogUGxhdGZvcm1EaXNwbGF5SUQgcHJpbWFyeVNjcmVlbkRp
c3BsYXlJRCgpCiB7CiAgICAgcmV0dXJuIHNjcmVlblByb3BlcnRpZXMoKS5wcmltYXJ5RGlzcGxh
eUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5kZXggYjkxM2Fk
ZDYyNjk5ZWYzZGQ3MWIwZmI2ZTdjMWY1OGQ3NmI3ZGI5Mi4uMzczODM2ZjA1ODgzODE4NTE1NzVm
NmM2NWFhODNjNGM1ZmFiNDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5oCkBAIC05NCw2ICs5NCw3IEBAIHN0cnVjdCBTY3JlZW5EYXRhOwogICAgIAogV0VCQ09S
RV9FWFBPUlQgU2NyZWVuUHJvcGVydGllcyBjb2xsZWN0U2NyZWVuUHJvcGVydGllcygpOwogV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbnN0IFNjcmVlblByb3BlcnRp
ZXMmKTsKK2NvbnN0IFNjcmVlblByb3BlcnRpZXMmIGdldFNjcmVlblByb3BlcnRpZXMoKTsKIGNv
bnN0IFNjcmVlbkRhdGEqIHNjcmVlbkRhdGEoUGxhdGZvcm1EaXNwbGF5SUQgc2NyZWVuZGlzcGxh
eUlEKTsKIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtRGlzcGxheUlEIHByaW1hcnlTY3JlZW5EaXNw
bGF5SUQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVl
blByb3BlcnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aAppbmRleCBkNTA2ZWZiZDFiY2E4MDY5OGNhN2ZiNGNjZjRiM2RlNzM4NjRhNWI5Li43ZmRiODJk
OTk1NWRlODVlYzY4ODVlMjgwOGU0NDFmNGY5ZDcyNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCkBAIC01MSw2ICs1MSwxMCBAQCBzdHJ1Y3QgU2NyZWVu
RGF0YSB7CiAgICAgSU9SZWdpc3RyeUdQVUlEIGdwdUlEIHsgMCB9OwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZmxvYXQgc2NhbGVGYWN0
b3IgeyAxIH07CisjZW5kaWYKKwogICAgIGVudW0gY2xhc3MgQ29sb3JTcGFjZVR5cGUgOiB1aW50
OF90IHsgTm9uZSwgTmFtZSwgRGF0YSB9OwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8U2NyZWVuRGF0YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTk4LDYgKzEw
MiwxMCBAQCB2b2lkIFNjcmVlbkRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIGVuY29kZXIgPDwgc2NyZWVuSXNNb25vY2hyb21lIDw8IGRpc3BsYXlNYXNrIDw8IGdwdUlE
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgZW5jb2RlciA8PCBzY2FsZUZhY3RvcjsKKyNlbmRpZgorCiAgICAgaWYgKGNvbG9yU3BhY2Up
IHsKICAgICAgICAgLy8gVHJ5IHRvIGVuY29kZSB0aGUgbmFtZS4KICAgICAgICAgaWYgKGF1dG8g
bmFtZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ29weU5hbWUoY29sb3JTcGFjZS5nZXQoKSkpKSB7
CkBAIC0xNzYsNiArMTg0LDEzIEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgT3B0
aW9uYWw8ZmxvYXQ+IHNjYWxlRmFjdG9yOworICAgIGRlY29kZXIgPj4gc2NhbGVGYWN0b3I7Cisg
ICAgaWYgKCFzY2FsZUZhY3RvcikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyNlbmRp
ZgorCiAgICAgQ29sb3JTcGFjZVR5cGUgZGF0YVR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShkYXRhVHlwZSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CkBAIC0yMTksNyArMjM0
LDEwIEBAIE9wdGlvbmFsPFNjcmVlbkRhdGE+IFNjcmVlbkRhdGE6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgV1RGTW92ZSgqc2NyZWVuSXNNb25v
Y2hyb21lKSwKICAgICAgICAgV1RGTW92ZSgqZGlzcGxheU1hc2spLAotICAgICAgICBXVEZNb3Zl
KCpncHVJRCkKKyAgICAgICAgV1RGTW92ZSgqZ3B1SUQpLAorI2VuZGlmCisjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBXVEZNb3ZlKCpzY2FsZUZhY3Rv
ciksCiAjZW5kaWYKICAgICB9IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRlOTZmZjVlOThhYTNj
MDhlMmJkYzY0YzBkMDI2NDAzYWYwYmNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIuaApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQb3dlclNvdXJjZU5vdGlmaWVyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBQb3dlclNvdXJj
ZU5vdGlmaWVyQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCBoYXNBQyk+OworICAg
IFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFBvd2VyU291cmNlTm90aWZpZXIoUG93ZXJTb3VyY2VO
b3RpZmllckNhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5Qb3dlclNvdXJjZU5vdGlm
aWVyKCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzTG93UG93ZXJNb2RlRW5hYmxlZCgp
IGNvbnN0OworCitwcml2YXRlOgorICAgIHZvaWQgbm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7
CisKKyAgICBPcHRpb25hbDxpbnQ+IG1fdG9rZW5JRDsKKyAgICBQb3dlclNvdXJjZU5vdGlmaWVy
Q2FsbGJhY2sgbV9jYWxsYmFjazsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNDgwOGY1
OTdmYmYwZjhkODQ5MThjNWQ1MDZkNDhhMzJjNDZmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG93
ZXJTb3VyY2VOb3RpZmllci5oIgorCisjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5LmgiCisjaW1wb3J0
IDxub3RpZnkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bvd2VyU291cmNlTm90aWZpZXI6OlBvd2VyU291cmNlTm90aWZp
ZXIoUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQoreworICAgIGludCB0b2tlbiA9IDA7CisgICAgYXV0byBz
dGF0dXMgPSBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goa0lPUFNOb3RpZnlQb3dlclNvdXJjZSwg
JnRva2VuLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgeworICAgICAgICBub3Rp
ZnlQb3dlclNvdXJjZUNoYW5nZWQoKTsKKyAgICB9KTsKKyAgICBpZiAoc3RhdHVzID09IE5PVElG
WV9TVEFUVVNfT0spCisgICAgICAgIG1fdG9rZW5JRCA9IHRva2VuOworfQorCitQb3dlclNvdXJj
ZU5vdGlmaWVyOjp+UG93ZXJTb3VyY2VOb3RpZmllcigpCit7CisgICAgaWYgKG1fdG9rZW5JRCkK
KyAgICAgICAgbm90aWZ5X2NhbmNlbCgqbV90b2tlbklEKTsKK30KKwordm9pZCBQb3dlclNvdXJj
ZU5vdGlmaWVyOjpub3RpZnlQb3dlclNvdXJjZUNoYW5nZWQoKQoreworICAgIHJlc2V0U3lzdGVt
SGFzQUMoKTsKKyAgICBpZiAobV9jYWxsYmFjaykKKyAgICAgICAgbV9jYWxsYmFjayhzeXN0ZW1I
YXNBQygpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU3lzdGVtQmF0dGVyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5oCmluZGV4IDVhZGE4OWU2NGZhYzQ3NTY1YWYzYjEyYmEzMjFlMTEyYjNiNjc0NjIu
LmFmMzBlODJiOTk0ZmFjZjM2YzQ0ZDZlMTE2YTI3ZTc0MTFkNjllODkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKQEAgLTMwLDQgKzMwLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtSGFzQmF0
dGVyeShib29sKTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSgpOwogCitX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0U3lzdGVtSGFzQUMoKTsKK1dFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0U3lzdGVtSGFzQUMoYm9vbCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0FD
KCk7CisKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9y
VGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJik7CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCmluZGV4IDZjMTNlNWVi
NzBkOGU1MTQzZWRkMjg4MWRkMjllMTA3NTMwYjU5ZGEuLjJiYTI3Zjc3YTkzNDgzZGQ4ZDFiNTlh
NGFlNTlhZGZmMWI2M2M0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1N5c3RlbUJhdHRlcnkubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U3lzdGVtQmF0dGVyeS5tbQpAQCAtMjYsMTEgKzI2LDE1IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIlN5c3RlbUJhdHRlcnkuaCIKIAorI2ltcG9ydCA8bm90aWZ5Lmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBz
dGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0dGVyeTsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBo
YXNBQzsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5n
Oworc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nOwogCiB2b2lk
IHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogewpAQCAtMzksNiArNDMsOSBAQCB2
b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogCiBib29sIHN5c3RlbUhhc0Jh
dHRlcnkoKQogeworICAgIGlmIChoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nKQorICAgICAg
ICByZXR1cm4gKmhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3Rpbmc7CisKICAgICBpZiAoIWhhc0Jh
dHRlcnkuaGFzVmFsdWUoKSkgewogICAgICAgICBoYXNCYXR0ZXJ5ID0gW10gewogI2lmIFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oV0FUQ0hPUykKQEAgLTY3LDQgKzc0LDU0IEBAIGJvb2wgc3lz
dGVtSGFzQmF0dGVyeSgpCiAgICAgcmV0dXJuICpoYXNCYXR0ZXJ5OwogfQogCit2b2lkIHJlc2V0
U3lzdGVtSGFzQUMoKQoreworICAgIGhhc0FDLnJlc2V0KCk7Cit9CisKK3ZvaWQgc2V0U3lzdGVt
SGFzQUMoYm9vbCBhYykKK3sKKyAgICBoYXNBQyA9IGFjOworfQorCitib29sIHN5c3RlbUhhc0FD
KCkKK3sKKyAgICBpZiAoaGFzQUNPdmVycmlkZUZvclRlc3RpbmcpCisgICAgICAgIHJldHVybiAq
aGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CisKKyAgICBpZiAoIWhhc0FDLmhhc1ZhbHVlKCkpIHsK
KyAgICAgICAgaGFzQUMgPSBbXSB7CisjaWYgUExBVEZPUk0oQVBQTEVUVikKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlR5cGVSZWY+IHBv
d2VyU291cmNlc0luZm8gPSBhZG9wdENGKElPUFNDb3B5UG93ZXJTb3VyY2VzSW5mbygpKTsKKyAg
ICAgICAgICAgIGlmICghcG93ZXJTb3VyY2VzSW5mbykKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcG93ZXJTb3VyY2VzTGlz
dCA9IGFkb3B0Q0YoSU9QU0NvcHlQb3dlclNvdXJjZXNMaXN0KHBvd2VyU291cmNlc0luZm8uZ2V0
KCkpKTsKKyAgICAgICAgICAgIGlmICghcG93ZXJTb3VyY2VzTGlzdCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3IgKENGSW5kZXggaSA9IDAsIGNvdW50ID0g
Q0ZBcnJheUdldENvdW50KHBvd2VyU291cmNlc0xpc3QuZ2V0KCkpOyBpIDwgY291bnQ7ICsraSkg
eworICAgICAgICAgICAgICAgIENGRGljdGlvbmFyeVJlZiBkZXNjcmlwdGlvbiA9IElPUFNHZXRQ
b3dlclNvdXJjZURlc2NyaXB0aW9uKHBvd2VyU291cmNlc0luZm8uZ2V0KCksIENGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgocG93ZXJTb3VyY2VzTGlzdC5nZXQoKSwgaSkpOworICAgICAgICAgICAgICAg
IENGVHlwZVJlZiB2YWx1ZSA9IENGRGljdGlvbmFyeUdldFZhbHVlKGRlc2NyaXB0aW9uLCBDRlNU
UihrSU9QU1Bvd2VyU291cmNlU3RhdGVLZXkpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUg
JiYgQ0ZFcXVhbCh2YWx1ZSwgQ0ZTVFIoa0lPUFNBQ1Bvd2VyVmFsdWUpKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKKyAgICAgICAgfSgpOworICAgIH0KKworICAgIHJldHVybiAqaGFzQUM7
Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25h
bDxib29sPiYmIGhhc0JhdHRlcnkpCit7CisgICAgaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGlu
ZyA9IFdURk1vdmUoaGFzQmF0dGVyeSk7Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNB
Q0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3sKKyAgICBoYXNBQ092ZXJyaWRl
Rm9yVGVzdGluZyA9IFdURk1vdmUoaGFzQUMpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Q29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcAppbmRleCA5OGE1M2M0MmYz
MDViOTI4NGVjZWE3OGI1ZTM2YTQ3MGQ3NTBkZGZiLi43Y2RmZTg2NDIzMDc0MjIwOTdjMWM1Zjk2
OTIwNzIxODIxMDQ2NzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmln
dXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKQEAgLTMyLDExICszMiwxNSBAQAogI2luY2x1ZGUgIk1l
ZGlhQ2FwYWJpbGl0aWVzRGVjb2RpbmdJbmZvLmgiCiAjaW5jbHVkZSAiTWVkaWFEZWNvZGluZ0Nv
bmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgorI2luY2x1ZGUgIlZQOVV0
aWxpdGllc0NvY29hLmgiCiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVv
Q29kZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBDTUZvcm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhw
ciBDTVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCiBz
dGF0aWMgQ01WaWRlb0NvZGVjVHlwZSB2aWRlb0NvZGVjVHlwZUZyb21SRkM0MjgxVHlwZShTdHJp
bmcgdHlwZSkKIHsKICAgICBpZiAodHlwZS5zdGFydHNXaXRoKCJtcDR2IikpCkBAIC00NSw2ICs0
OSw4IEBAIHN0YXRpYyBDTVZpZGVvQ29kZWNUeXBlIHZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFU
eXBlKFN0cmluZyB0eXBlKQogICAgICAgICByZXR1cm4ga0NNVmlkZW9Db2RlY1R5cGVfSDI2NDsK
ICAgICBpZiAodHlwZS5zdGFydHNXaXRoKCJodmMxIikgfHwgdHlwZS5zdGFydHNXaXRoKCJoZXYx
IikpCiAgICAgICAgIHJldHVybiBrQ01WaWRlb0NvZGVjVHlwZV9IRVZDOworICAgIGlmICh0eXBl
LnN0YXJ0c1dpdGgoInZwMDkiKSkKKyAgICAgICAgcmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX1ZQ
OTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtOTEsNiArOTcsMTIgQEAgdm9pZCBjcmVhdGVNZWRp
YVBsYXllckRlY29kaW5nQ29uZmlndXJhdGlvbkNvY29hKE1lZGlhRGVjb2RpbmdDb25maWd1cmF0
aW9uJiYgY28KICAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQorICAgICAg
ICB9IGVsc2UgaWYgKHZpZGVvQ29kZWNUeXBlID09IGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgewor
ICAgICAgICAgICAgYXV0byBjb2RlY0NvbmZpZ3VyYXRpb24gPSBwYXJzZVZQQ29kZWNQYXJhbWV0
ZXJzKGNvZGVjKTsKKyAgICAgICAgICAgIGlmICghY29kZWNDb25maWd1cmF0aW9uIHx8ICF2YWxp
ZGF0ZVZQUGFyYW1ldGVycygqY29kZWNDb25maWd1cmF0aW9uLCBpbmZvLCB2aWRlb0NvbmZpZ3Vy
YXRpb24pKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1
cmF0aW9uKX0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmIChhbHBoYUNoYW5uZWwgfHwgaGRyU3VwcG9ydGVk
KSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9u
KX0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VlA5VXRpbGl0aWVzQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZQOVV0aWxpdGllc0NvY29hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDU4ZDdmOTZhYzAxYmQ1ZmRiNDAz
Y2Y4ZTBhYjVhMTg4YjkwYTc0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKQEAgLTAsMCArMSw0NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNp
bmNsdWRlICJWUDlVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
TWVkaWFDYXBhYmlsaXRpZXNJbmZvOworc3RydWN0IFZpZGVvQ29uZmlndXJhdGlvbjsKKworV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNh
YmxlZEZvclRlc3RpbmcoYm9vbCk7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCBzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhl
aWdodCwgZmxvYXQgc2NhbGUpOworV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKKworZXh0ZXJuIGJvb2wgdmFs
aWRhdGVWUFBhcmFtZXRlcnMoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmLCBNZWRpYUNhcGFi
aWxpdGllc0luZm8mLCBjb25zdCBWaWRlb0NvbmZpZ3VyYXRpb24mKTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0
aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VlA5VXRpbGl0aWVzQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQyMzQzYjAxNjg3NmY4YmYyNWI4YjNk
ODc0NmM3MmZkZWIzNmRhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tCkBAIC0wLDAgKzEsMTc5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZQOVV0aWxpdGll
c0NvY29hLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2ltcG9ydCAiRm91ckNDLmgiCisj
aW1wb3J0ICJNZWRpYUNhcGFiaWxpdGllc0luZm8uaCIKKyNpbXBvcnQgIlBsYXRmb3JtU2NyZWVu
LmgiCisjaW1wb3J0ICJTY3JlZW5Qcm9wZXJ0aWVzLmgiCisjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5
LmgiCisjaW1wb3J0ICJWaWRlb0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgPHd0Zi90ZXh0L1N0
cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CisjaW1wb3J0ICJWaWRlb1Rvb2xib3hTb2Z0TGluay5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGtDTVZpZGVvQ29k
ZWNUeXBlX1ZQOSBpcyBhZGRlZCB0byBDTUZvcm1hdERlc2NyaXB0aW9uLmgKK2NvbnN0ZXhwciBD
TVZpZGVvQ29kZWNUeXBlIGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSB7ICd2cDA5JyB9OworCitzdGF0
aWMgYm9vbCBoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9Owor
CitzdHJ1Y3QgT3ZlcnJpZGVTY3JlZW5EYXRhIHsKKyAgICBmbG9hdCB3aWR0aCB7IDAgfTsKKyAg
ICBmbG9hdCBoZWlnaHQgeyAwIH07CisgICAgZmxvYXQgc2NhbGUgeyAxIH07Cit9Oworc3RhdGlj
IE9wdGlvbmFsPE92ZXJyaWRlU2NyZWVuRGF0YT4gc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGlu
ZzsKKwordm9pZCBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyhib29sIGRpc2FibGVkKQoreworICAgIGhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVz
dGluZyA9IGRpc2FibGVkOworfQorCit2b2lkIHNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNj
YWxlRm9yVGVzdGluZyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBzY2FsZSkKK3sK
KyAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nID0gbWFrZU9wdGlvbmFsPE92ZXJyaWRl
U2NyZWVuRGF0YT4oeyB3aWR0aCwgaGVpZ2h0LCBzY2FsZSB9KTsKK30KKwordm9pZCByZXNldE92
ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpCit7CisgICAgc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZyA9IFdURjo6bnVsbG9wdDsKK30KKworYm9vbCB2YWxpZGF0ZVZQ
UGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9u
LCBNZWRpYUNhcGFiaWxpdGllc0luZm8mIGluZm8sIGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYg
dmlkZW9Db25maWd1cmF0aW9uKQoreworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZUU2VsZWN0QW5k
Q3JlYXRlVmlkZW9EZWNvZGVySW5zdGFuY2Uoa0NNVmlkZW9Db2RlY1R5cGVfVlA5LCBrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJy
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBWaWRlb0NvbmZpZ3VyYXRpb24gYW5k
IFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkIGNhbiBoYXZlIGNvbmZsaWN0aW5nIHZhbHVlcyBm
b3IgSERSIHByb3BlcnRpZXMuIElmIHNvLCByZWplY3QuCisgICAgaWYgKHZpZGVvQ29uZmlndXJh
dGlvbi50cmFuc2ZlckZ1bmN0aW9uKSB7CisgICAgICAgIC8vIE5vdGU6IFRyYW5zZmVyIENoYXJh
Y3RlcmlzdGljcyBhcmUgZGVmaW5lZCBieSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICAgICAg
aWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0
aW9uOjpTUkdCICYmIGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA+
IDE1KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoKnZpZGVvQ29uZmln
dXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uID09IFRyYW5zZmVyRnVuY3Rpb246OlBRICYmIGNvZGVj
Q29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyAhPSAxNikKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJG
dW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpITEcgJiYgY29kZWNDb25maWd1cmF0aW9uLnRy
YW5zZmVyQ2hhcmFjdGVyaXN0aWNzICE9IDE4KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKworICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uY29sb3JHYW11dCkgeworICAgICAg
ICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi5jb2xvckdhbXV0ID09IENvbG9yR2FtdXQ6OlJlYzIw
MjAgJiYgY29kZWNDb25maWd1cmF0aW9uLmNvbG9yUHJpbWFyaWVzICE9IDkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZU
SXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRl
ZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpICYmICFoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcpIHsKKyAgICAgICAgaW5mby5wb3dlckVmZmljaWVudCA9IHRydWU7CisKKyAgICAg
ICAgLy8gSFcgVlA5IERlY29kZXIgUHJvZmlsZSAwICYgMjoKKyAgICAgICAgaWYgKCFjb2RlY0Nv
bmZpZ3VyYXRpb24ucHJvZmlsZSAmJiBjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAhPSAyKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1
cHBvcnRzIHVwIHRvIExldmVsIDY6CisgICAgICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24ubGV2
ZWwgPiA2MCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkg
RGVjb2RlciBzdXBwb3J0cyA4IG9yIDEwIGJpdCBjb2xvcjoKKyAgICAgICAgaWYgKGNvZGVjQ29u
ZmlndXJhdGlvbi5iaXREZXB0aCA+IDEwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cG9ydHMgb25seSA0MjAgY2hyb21hIHN1YnNhbXBs
aW5nOgorICAgICAgICBpZiAoY29kZWNDb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nID4g
MSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2Rl
ciBkb2VzIG5vdCBzdXBwb3J0IGFscGhhIGNoYW5uZWw6CisgICAgICAgIGlmICh2aWRlb0NvbmZp
Z3VyYXRpb24uYWxwaGFDaGFubmVsICYmICp2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVs
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVy
IGNhbiBzdXBwb3J0IHVwIHRvIDRLIEAgMTIwIG9yIDhLIEAgMzAKKyAgICAgICAgaWYgKHZpZGVv
Q29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVy
YXRlID4gMTIwKQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAgICAgICAgZWxz
ZSBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA+IDIxNjAgJiYgdmlkZW9Db25maWd1cmF0
aW9uLmZyYW1lcmF0ZSA+IDMwKQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgaW5mby5zbW9vdGggPSB0cnVlOworCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFNXIFZQOSBEZWNvZGVyIGhhcyBtdWNoIG1vcmUg
dmFyaWFibGUgY2FwYWJpbGl0aWVzIGRlcGVuZGluZyBvbiBDUFUgY2hhcmFjdGVyaXN0aWNzLgor
ICAgIC8vIEZJWE1FOiBBZGQgYSBsb29rdXAgdGFibGUgZm9yIGRldmljZS10by1jYXBhYmlsaXRp
ZXMuIEZvciBub3csIGFzc3VtZSB0aGF0IHRoZSBTVyBWUDkKKyAgICAvLyBkZWNvZGVyIGNhbiBz
dXBwb3J0IDRLIEAgMzAuCisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMTA4
MCAmJiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID4gNjApCisgICAgICAgIGluZm8uc21v
b3RoID0gZmFsc2U7CisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5oZWlnaHQgPD0gMjE2MCAm
JiB2aWRlb0NvbmZpZ3VyYXRpb24uZnJhbWVyYXRlID4gMzApCisgICAgICAgIGluZm8uc21vb3Ro
ID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICBpbmZvLnNtb290aCA9IHRydWU7CisKKyAgICAv
LyBGb3Igd2FsbC1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRl
ZCwgZXZlbiBpZiBub3QgcG93ZXJFZmZpY2llbnQuCisgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5
KCkpIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICAvLyBGb3IgYmF0dGVyeS1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyBy
ZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCB3aGVuIHJ1bm5pbmcgb24gQUMgcG93ZXIsCisgICAgLy8g
YnV0IG9ubHkgb24gYmF0dGVyeSB3aGVuIHRoZXJlIGlzIGFuIGF0dGFjaGVkIHNjcmVlbiB3aG9z
ZSByZXNvbHV0aW9uIGlzIGxhcmdlIGVub3VnaAorICAgIC8vIHRvIHN1cHBvcnQgNEsgdmlkZW8u
CisgICAgaWYgKHN5c3RlbUhhc0FDKCkpIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSB0cnVl
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIGhhczRrU2NyZWVuID0g
ZmFsc2U7CisKKyAgICBhdXRvIGlzNGtTY3JlZW4gPSBbXShmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0LCBmbG9hdCBzY2FsZSkgeworICAgICAgICBVTlVTRURfUEFSQU0od2lkdGgpOworICAgICAg
ICByZXR1cm4gaGVpZ2h0ICogc2NhbGUgPj0gMjE2MDsKKyAgICB9OworCisgICAgaWYgKHNjcmVl
blNpemVBbmRTY2FsZUZvclRlc3RpbmcpCisgICAgICAgIGhhczRrU2NyZWVuID0gaXM0a1NjcmVl
bihzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZy0+aGVpZ2h0LCBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT5zY2FsZSk7
CisgICAgZWxzZSB7CisgICAgICAgIGZvciAoYXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblBy
b3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAoaXM0
a1NjcmVlbihzY3JlZW5EYXRhLnNjcmVlblJlY3Qud2lkdGgoKSwgc2NyZWVuRGF0YS5zY3JlZW5S
ZWN0LmhlaWdodCgpLCBzY3JlZW5EYXRhLnNjYWxlRmFjdG9yKSkgeworICAgICAgICAgICAgICAg
IGhhczRrU2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaGFzNGtTY3JlZW4pIHsKKyAgICAgICAg
aW5mby5zdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQppbmRl
eCBjNjQ2Y2YyNDlmZjIyMjhjNTVkMDgzNWYwNDM0NzU5N2Q0OTI4MzQ4Li40YTg1ODI5MDg1MGUw
Zjk3MjA0NTc3MGE5YjUwZGFkYWI1MmI4ZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCkBAIC0yMDAsOCArMjAwLDEwIEBAIFNjcmVl
blByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICBpbnQgc2NyZWVu
RGVwdGhQZXJDb21wb25lbnQgPSBXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChudWxs
cHRyKTsKICAgICAgICAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IgPSBXZWJDb3Jl
OjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IobnVsbHB0cik7CiAgICAgICAgIGJvb2wgc2Ny
ZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBXZWJDb3JlOjpzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygp
OworICAgICAgICBib29sIGhkciA9IHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShudWxs
cHRyKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBXZWJDb3JlOjpzY3JlZW5QUElGYWN0
b3IoKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsrZGlz
cGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29s
b3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzIH0pOworICAgICAgICBz
Y3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsrZGlzcGxheUlELCBTY3JlZW5EYXRh
IHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVw
dGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3Is
IHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBoZHIsIHNjYWxlRmFjdG9yIH0pOwogICAgICAgICAK
ICAgICAgICAgaWYgKHNjcmVlbiA9PSBbUEFMOjpnZXRVSVNjcmVlbkNsYXNzKCkgbWFpblNjcmVl
bl0pCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBkaXNw
bGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1T
Y3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5N
YWMubW0KaW5kZXggOGEwZTBhYWFiMmE5Y2QwNWRjY2RkODY5MzI1ZDJjMWIxYzVhYmQxMy4uNzY3
MDZiZTg4ODZjODk4MmExNjRhMmYyZjJkY2QwZGFjNjYzMTUyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMTE3LDYgKzExNyw3
IEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICB1
aW50MzJfdCBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9PcGVuR0xEaXNwbGF5TWFzayhkaXNw
bGF5SUQpOwogICAgICAgICBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SUQgPSAwOwogICAgICAgICBib29s
IHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IGZhbHNlOworICAgICAgICBmbG9hdCBz
Y2FsZUZhY3RvciA9IHNjcmVlbi5iYWNraW5nU2NhbGVGYWN0b3I7CiAKICNpZiBVU0UoTUVESUFU
T09MQk9YKQogICAgICAgICBpZiAoUEFMOjppc01lZGlhVG9vbGJveEZyYW1ld29ya0F2YWlsYWJs
ZSgpICYmIFBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRTaG91bGRQbGF5SERSVmlkZW8oKSkK
QEAgLTEyNiw3ICsxMjcsNyBAQCBTY3JlZW5Qcm9wZXJ0aWVzIGNvbGxlY3RTY3JlZW5Qcm9wZXJ0
aWVzKCkKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAgICAgZ3B1SUQgPSBncHVJ
REZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVz
LnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWlsYWJs
ZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBl
ckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZlcnRl
ZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9jaHJv
bWUsIGRpc3BsYXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAgc2NyZWVuUHJvcGVydGllcy5zY3Jl
ZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFpbGFibGVSZWN0
LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJDb21w
b25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xv
cnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNNb25vY2hyb21lLCBk
aXNwbGF5TWFzaywgZ3B1SUQsIHNjYWxlRmFjdG9yIH0pOwogCiAgICAgICAgIGlmICghc2NyZWVu
UHJvcGVydGllcy5wcmltYXJ5RGlzcGxheUlEKQogICAgICAgICAgICAgc2NyZWVuUHJvcGVydGll
cy5wcmltYXJ5RGlzcGxheUlEID0gZGlzcGxheUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IGNlOTZiYTc2N2UwYzA1NzU4MGZlMTA1Y2QyYjMzN2U3YTE1NDJhNTcuLmQ2
OGE3YTk2MDQ4ZmNmNjY4MmRkZjE0Nzc3MWQyMWVkYzY5OGYwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTMxOSwxMCArMzE5LDYgQEAKICNpbmNsdWRlICJXZWJYUlRl
c3QuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQotI2lu
Y2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+Ci0jZW5k
aWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaCIKICNpbmNsdWRlICJOU1Njcm9sbGVySW1wRGV0YWlscy5oIgpAQCAtMzMxLDEw
ICszMjcsMTUgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlN5c3RlbUJhdHRl
cnkuaCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgogI2luY2x1ZGUgPHBhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJ
Lmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKExJQldFQlJUQykKKyNpbmNs
dWRlIDx3ZWJydGMvc2RrL1dlYktpdC9WaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oPgorI2VuZGlm
CisKIHVzaW5nIEpTQzo6Q2FsbERhdGE7CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKIHVzaW5nIEpT
Qzo6RnVuY3Rpb25FeGVjdXRhYmxlOwpAQCAtNjMwLDYgKzYzMSwxMyBAQCBJbnRlcm5hbHM6Oklu
dGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICBFTkFC
TEUoV0VCX0FVRElPKQogICAgIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJpZGUg
PSBudWxscHRyOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzZXRPdmVycmlk
ZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7CisgICAgc2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRPdmVycmlkZVZQ
OUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhmYWxzZSk7CisgICAgcmVzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKKyNlbmRpZgogfQogCiBEb2N1
bWVudCogSW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBjb25zdApAQCAtNTgxOCw2ICs1ODI2
LDQ0IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgY29uc3QKICNlbmRpZgog
fQogCit2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQmF0dGVyeShib29sIGhhc0JhdHRlcnkp
Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1I
YXNCYXR0ZXJ5Rm9yVGVzdGluZyhoYXNCYXR0ZXJ5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGhhc0JhdHRlcnkpOworI2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNB
Qyhib29sIGhhc0FDKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OnNldE92
ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKGhhc0FDKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGhhc0FDKTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsczo6c2V0SGFyZHdhcmVWUDlE
ZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlzYWJsZWQpCit7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxl
ZEZvclRlc3RpbmcoZGlzYWJsZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGlzYWJsZWQp
OworI2VuZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUo
ZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpCit7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVG
b3JUZXN0aW5nKHdpZHRoLCBoZWlnaHQsIHNjYWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHdpZHRoKTsKKyAgICBVTlVTRURfUEFSQU0oaGVpZ2h0KTsKKyAgICBVTlVTRURfUEFSQU0oc2Nh
bGUpOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAjaWYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBiZWM1OWNiY2MwMThmZDZi
MTliZWEyM2U3OTkwZmNhZGEzNTJlMTZmLi42MGQ5ZDlmMDUxNWQ5NmUzMDU1YWM2ZDJjNTQxMDAz
Y2Y3YjI4N2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEwMTgsNiArMTAx
OCwxMiBAQCBwdWJsaWM6CiAKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAor
ICAgIHZvaWQgc2V0U3lzdGVtSGFzQmF0dGVyeShib29sKTsKKyAgICB2b2lkIHNldFN5c3RlbUhh
c0FDKGJvb2wpOworCisgICAgdm9pZCBzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRl
c3RpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoZG91YmxlLCBk
b3VibGUsIGRvdWJsZSk7CisKICAgICBpbnQgcmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNvbnN0IFN0
cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgU3RyaW5nIGVuY29kZWRQcmVm
ZXJlbmNlVmFsdWUoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg4YjQ2MWU2MTNlNTgyMjI2ODNk
OWFhYTIyYjQ2YTNkYmYyZWU1YzMuLjAwY2E2NWI0NjFiZTI4OTdkNDU0YzQ0OTMwNDgyZGUxMGIx
NTBmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkzMiw2ICs5MzIs
MTIgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKIAogICAgIGJvb2xlYW4gc3lzdGVtSGFz
QmF0dGVyeSgpOwogCisgICAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2xlYW4gaGFzQmF0
dGVyeSk7CisgICAgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sZWFuIGhhc0FDKTsKKworICAgIHZv
aWQgc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2xlYW4gZGlzYWJs
ZWQpOworICAgIHZvaWQgc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKGRvdWJsZSB3aWR0aCwgZG91
YmxlIGhlaWdodCwgZG91YmxlIHNjYWxlKTsKKwogICAgIGxvbmcgcmVhZFByZWZlcmVuY2VJbnRl
Z2VyKERPTVN0cmluZyBkb21haW4sIERPTVN0cmluZyBrZXkpOwogICAgIERPTVN0cmluZyBlbmNv
ZGVkUHJlZmVyZW5jZVZhbHVlKERPTVN0cmluZyBkb21haW4sIERPTVN0cmluZyBrZXkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDlhNDM0OWRkNDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMuLjIy
ZmQ0YzhlM2UwOGQ0ZGJhM2UyNzI0ZDE5MWI5MTYwOTIwNzFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0x
NzAsNiArMTcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVu
Y29kZXIgPDwgbWFwREJFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNC
YXR0ZXJ5OworICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQUM7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCkBAIC00NTksNiArNDYwLDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0Ny
ZWF0CiAgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgcGFyYW1ldGVycy5zeXN0ZW1IYXNCYXR0ZXJ5ID0gV1RGTW92ZSgqc3lzdGVtSGFzQmF0dGVy
eSk7CisKKyAgICBPcHRpb25hbDxib29sPiBzeXN0ZW1IYXNBQzsKKyAgICBkZWNvZGVyID4+IHN5
c3RlbUhhc0FDOworICAgIGlmICghc3lzdGVtSGFzQUMpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0FDID0gV1RGTW92ZSgqc3lzdGVtSGFzQUMpOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGFhMWI3YWExZmI3NmJj
MDdkYzgwNmZkMDJkM2RkMWNhMTlmYjRlMGIuLmM2NzRhM2I3MTU1YjdmOGEzMGIwNmVhYTBmM2Qw
NjBkYjk2YTNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgT3B0aW9uYWw8
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBib29s
IHN5c3RlbUhhc0JhdHRlcnkgeyBmYWxzZSB9OworICAgIGJvb2wgc3lzdGVtSGFzQUMgeyBmYWxz
ZSB9OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZmJj
MWVmMjI4MTc3YWY3MzE3MmJjNDRlNzNjZjg5MzAzZDkzNzQ2Mi4uZGM1MDE5NWUwYzcwYmUxMWRj
ZTljMmM5NmY4ZTcxZGZlOThmMzY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJ
blBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5o
PgorI2ltcG9ydCA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CkBAIC00MDcsNiArNDA4
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhj
b25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBzeXN0ZW1IYXNCYXR0ZXJ5KCk7Cisg
ICAgcGFyYW1ldGVycy5zeXN0ZW1IYXNBQyA9IHN5c3RlbUhhc0FDKCk7CiAKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgbWFwREJIYW5kbGU7CiAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5sc2QubWFwZGIiX3MsIFdURjo6
bnVsbG9wdCwgbWFwREJIYW5kbGUsIFNhbmRib3hFeHRlbnNpb246OkZsYWdzOjpOb1JlcG9ydCkp
CkBAIC02OTcsNiArNjk5LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZp
Y2F0aW9uT2JzZXJ2ZXJzKCkKICAgICB9XTsKICNlbmRpZgogI2VuZGlmCisKKyAgICBtX3Bvd2Vy
U291cmNlTm90aWZpZXIgPSBXVEY6Om1ha2VVbmlxdWU8V2ViQ29yZTo6UG93ZXJTb3VyY2VOb3Rp
Zmllcj4oW3RoaXNdIChib29sIGhhc0FDKSB7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6UG93ZXJTb3VyY2VEaWRDaGFuZ2UoaGFzQUMpKTsKKyAgICB9
KTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2Vy
dmVycygpCkBAIC03MjYsNiArNzMyLDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rl
ck5vdGlmaWNhdGlvbk9ic2VydmVycygpCiAjZW5kaWYKIAogICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIu
Z2V0KCldOworCisgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKIH0KIAogc3Rh
dGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmUzNTQyZWMxYmU5
NjdlNzJiOGU2NmRlMzM5NmVlODYwOTczZmQ0ZS4uYjcwMjVjMGEyMjkxYmY1ZjQ5MTFhYjMwMTgx
MWE0NzQxN2E5NThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTI3LDYgKzEyNyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRl
ICJWZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVy
Lmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IDlmMDY1MDJkZTBlM2M0NTZmMzA1M2M0MmVkYzk4NTFkMjI5
Y2RlOWMuLjNhMzQ2ZDc3MTI3MGNjZTk3YWQ4MGU1NjY1ODg0OGM1OGY2NzQ4NWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtOTQsNiArOTQsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgRXZl
bnRNYWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllcjsKKyNlbmRpZgog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxMCw2ICs3MTMsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
UG93ZXJTb3VyY2VOb3RpZmllcj4gbV9wb3dlclNvdXJjZU5vdGlmaWVyOwogICAgIFJldGFpblB0
cjxOU09iamVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0
PiBtX2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDA2MzMyNTBhYTFjYWQ1OTRmOTQ5YjU2YzAxNDVkM2Nh
ZjZiNzgyNzQuLjhkMmJhMjZlNDE0YmY1YWNjYWRlMzU2NTQ2NmUyMGRkMTU3NGFlYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzA3LDYgKzMwNyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFp
biwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1
ZSk7CiAgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkmJik7CiAjZW5kaWYKKyAgICB2b2lkIHBvd2VyU291cmNlRGlkQ2hhbmdlKGJv
b2wpOwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDY5MGU0ZmE1ZDZjOWFhYjVkZWM2MGQxMDAxNjA2ODc2MGE3NjFkZDAuLmNkYTA1Yjk0ZmYy
YWRiNDI0NzA1OTcyMzQ0NDJhZjM5MDM3ZDdiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNiArMTcyLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBOb3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8
U3RyaW5nPiBlbmNvZGVkVmFsdWUpCiAgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYKKyAg
ICBQb3dlclNvdXJjZURpZENoYW5nZShib29sIGhhc0FDKQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShHVEspICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMwZmYwNGY4NTA0ZGUwZWE5Njk1NDZlMTdkNmI0
MjczZmRjY2VhNzQuLjRlMzkyMjdlZjEyMWMyZDRlYWY1ZGFjMWUyMjVjYWRiNzNmNTFlOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQpAQCAtMzEyLDYgKzMxMiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKICAg
ICAKICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7
CisgICAgc2V0U3lzdGVtSGFzQUMocGFyYW1ldGVycy5zeXN0ZW1IYXNBQyk7CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOwpA
QCAtMTAyMiw2ICsxMDIzLDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1NlcnZpY2VzUmVx
dWlyZWRCeUFjY2Vzc2liaWxpdHkoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6CiAgICAgcmVnaXN0
ZXJXaXRoQWNjZXNzaWJpbGl0eSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnBvd2VyU291cmNl
RGlkQ2hhbmdlKGJvb2wgaGFzQUMpCit7CisgICAgc2V0U3lzdGVtSGFzQUMoaGFzQUMpOworfQor
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjVlMTc0OGJjZTc4NWViYTM3ZmZm
MzNmMTdmZGQ3N2ZkYWE0OGIwNS4uOTIzYjkxMmEwOWEwNzM5MTljMjIwYjM3OWMzYjQyMzUwODRl
YmE0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVz
IHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRp
ZXMvdnA5LWRlY29kaW5nSW5mby1zdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0
bWw6IEFkZGVkLgorCiAyMDIwLTA3LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEZsYXNoZXMgb2YgaW5jb3JyZWN0IHNjcm9sbCBwb3NpdGlvbiB3
aGVuIHpvb21pbmcgb24gcXVpcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1k
ZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTg3MjdkM2VmYWFkYWFl
YzVjN2YyY2JiNThlMjk0OTcyNWEzNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNiBAQAorUlVOKGludGVybmFscy5zZXRTeXN0ZW1IYXNC
YXR0ZXJ5KHRydWUpKQorUlVOKGludGVybmFscy5zZXRTeXN0ZW1IYXNBQyh0cnVlKSkKK1JVTihp
bnRlcm5hbHMuc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKHRydWUpKQor
UlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoMTAyNCwgNzY4LCAxKSkKKwor
VGVzdCB0aGF0IDRrIEAgMzBmcHMgaXMgc3VwcG9ydGVkLCBzbW9vdGgsIGJ1dCBub3QgcG93ZXJF
ZmZpY2llbnQKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29k
aW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTogJ3Zp
ZGVvL21wNDsgY29kZWNzPSJ2cDA5LjAwLjQxLjA4IicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTog
ODAwMDAwLCB3aWR0aDogMzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7KQorUHJvbWlzZSByZXNvbHZl
ZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChp
bmZvLnBvd2VyRWZmaWNpZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9vdGgg
PT0gJ3RydWUnKSBPSworCitUZXN0IHRoYXQgNGsgQCA2MGZwcyBpcyBzdXBwb3J0ZWQsIGJ1dCBu
b3Qgc21vb3RoIG9yIHBvd2VyRWZmaWNpZW50CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRp
YUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86
IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBoZWln
aHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogNjAgfX0p
OykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAndHJ1
ZScpIE9LCitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBPSworRVhQ
RUNURUQgKGluZm8uc21vb3RoID09ICdmYWxzZScpIE9LCisKK1Rlc3QgdGhhdCBTVyBWUDkgZGVj
b2RlciBpcyBub3Qgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4gaXMgbm90
IDRrIHJlc29sdXRpb24KK1JVTihpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQUMoZmFsc2UpKQorUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlw
ZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2Rl
Y3M9InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRo
OiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RF
RCAoaW5mby5zdXBwb3J0ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnBvd2VyRWZm
aWNpZW50ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zbW9vdGggPT0gJ2ZhbHNlJykg
T0sKKworVGVzdCB0aGF0IFNXIFZQOSBkZWNvZGVyIGlzIHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBv
d2VyIHdoZW4gc2NyZWVuIGlzIGF0IGxlYXN0IDRrIHJlc29sdXRpb24KK1JVTihpbnRlcm5hbHMu
c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKDM4NDAsIDIxNjAsIDEpKQorUlVOKHByb21pc2UgPSBu
YXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNv
dXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9InZwMDkuMDAu
NDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFt
ZXJhdGU6IDMwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBw
b3J0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2Zh
bHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVT
VAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBh
YmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jNGU5YjQzZjgxYjQwOTQxOGVjNmI0OTA3NzdjZWNlMzc1ODViYTY1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0
aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vLi4vLi4vbWVkaWEv
dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CisgICAgdmFyIHByb21pc2U7CisgICAgdmFyIGluZm87CisKKyAgICBhc3luYyBmdW5jdGlv
biBkb1Rlc3QoKQorICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBmYWlsVGVzdCgiSW50ZXJuYWxzIGlzIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuIikK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldFN5c3RlbUhhc0JhdHRlcnkodHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
U3lzdGVtSGFzQUModHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0SGFyZHdhcmVW
UDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKHRydWUpJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSgxMDI0LCA3NjgsIDEpJyk7CisKKyAgICAgICAg
Y29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgNGsgQCAz
MGZwcyBpcyBzdXBwb3J0ZWQsIHNtb290aCwgYnV0IG5vdCBwb3dlckVmZmljaWVudCcpOworICAg
ICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJ
bmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8v
bXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgw
MDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOworICAgICAgICBpbmZvID0g
YXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZv
LnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8ucG93ZXJFZmZp
Y2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zbW9vdGgnLCB0cnVl
KTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUoJ1Rl
c3QgdGhhdCA0ayBAIDYwZnBzIGlzIHN1cHBvcnRlZCwgYnV0IG5vdCBzbW9vdGggb3IgcG93ZXJF
ZmZpY2llbnQnKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBh
YmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNv
bnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6
IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogNjAgfX0pOyIp
OworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
aW5mby5zbW9vdGgnLCBmYWxzZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAg
ICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBvcnRl
ZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uJyk7Cisg
ICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDKGZhbHNlKScpOworICAgICAgICBy
dW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsg
dHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBj
b2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwg
d2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOworICAgICAgICBpbmZvID0gYXdhaXQg
c2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBv
cnRlZCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50
JywgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc21vb3RoJywgZmFsc2UpOwor
CisgICAgICAgIGNvbnNvbGVXcml0ZSgnJyk7CisgICAgICAgIGNvbnNvbGVXcml0ZSgnVGVzdCB0
aGF0IFNXIFZQOSBkZWNvZGVyIGlzIHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2Ny
ZWVuIGlzIGF0IGxlYXN0IDRrIHJlc29sdXRpb24nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMu
c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKDM4NDAsIDIxNjAsIDEpJyk7CisgICAgICAgIHJ1bigi
cHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBl
OiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVj
cz1cInZwMDkuMDAuNDEuMDhcIicsIGhlaWdodDogMTA4MCwgYml0cmF0ZTogODAwMDAwLCB3aWR0
aDogMzE4MCwgZnJhbWVyYXRlOiAzMCB9fSk7Iik7CisgICAgICAgIGluZm8gPSBhd2FpdCBzaG91
bGRSZXNvbHZlKHByb21pc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc3VwcG9ydGVk
JywgdHJ1ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5wb3dlckVmZmljaWVudCcsIGZh
bHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnNtb290aCcsIHRydWUpOworCisgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9ImRvVGVzdCgpIiAvPgorPC9odG1sPgo=
</data>
<flag name="review"
          id="419675"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404358</attachid>
            <date>2020-07-15 10:56:24 -0700</date>
            <delta_ts>2020-07-16 09:21:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214316-20200715105623.patch</filename>
            <type>text/plain</type>
            <size>61168</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI5MTA3MjczYzM0ZjMy
ZjU4MDNkZjVjNjU0NzRmOGY5ZmRhYzA5NS4uYjg1ZWUzYzRjNTg3ZDIxNjI1MTY1ZmRmMzNjNGNj
MzAxY2ZhNGVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9tZWRpYS9t
ZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0bWwKKworICAgICAgICBBZGQg
c29tZSBmb3VuZGF0aW9uYWwgc3VwcG9ydCBmb3IgU1cgVlA5LCB3aGljaCBkdWUgdG8gcG9saWN5
IGRlY2lzaW9ucyB3aWxsIG5lZWQgaW5mb3JtYXRpb24KKyAgICAgICAgYm90aCBvbiB0aGUgc3lz
dGVtIGJhdHRlcnkgc3RhdHVzIGFuZCB0aGUgcG93ZXIgYWRhcHRlciBzdGF0dXMsIGFuZCB0aGVz
ZSBuZWVkIHRvIGJlIHNoaXBwZWQKKyAgICAgICAgaW50byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGZyb20gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBBZGQgc29tZSBJbnRlcm5hbCBvdmVycmlk
ZSBzZXR0aW5ncyB0byBhbGxvdyB0aGUgcG9saWNpZXMgdG8gYmUgZWZmZWN0aXZlbHkgdGVzdGVk
IHRocm91Z2gKKyAgICAgICAgTGF5b3VUZXN0cy4gVGhpcyBpbmNsdWRlcyBvdmVycmlkZXMgZm9y
IHN5c3RlbSBiYXR0ZXJ5IGFuZCBBQyBzdGF0ZSwgYXMgd2VsbCBhcyBvdmVycmlkZXMgZm9yCisg
ICAgICAgIHNjcmVlbiBzaXplIGFuZCByZXNvbHV0aW9uLgorCisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlm
aWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6OlBvd2VyU291cmNlTm90aWZp
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcjo6flBvd2VyU291cmNl
Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcjo6bm90aWZ5
UG93ZXJTb3VyY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0
ZXJ5Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnkpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRT
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRTeXN0ZW1IYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpzeXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRl
U3lzdGVtSGFzQUNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dmlkZW9Db2RlY1R5cGVGcm9tUkZDNDI4MVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlTWVkaWFQbGF5ZXJEZWNvZGluZ0NvbmZpZ3VyYXRpb25Db2NvYSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNj
YWxlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVZQUGFy
YW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0JhdHRlcnkpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpzZXRTeXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNl
dEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAt
MDctMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIGNh
Y2hlIG9mIHN1YmZyYW1lIGNvdW50IG9uIHRoZSBQYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBj
YmE5MTRlMWUzOGRiM2RjYzg2MTI2N2Y5YTUwODZlNWQyMGFkNGVhLi4yMzdiMjQxNWQxZDg2YTc4
Zjg4NmJjY2UxYjM0YjkwNWM3ZTY4ZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMC0wNy0xNCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIEFkZCBNZWRpYUNhcGFiaWxpdGllcyBzdXBwb3J0IGZvciBTVyBWUDkgZGVj
b2Rlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDMxNgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHBh
bC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oOgorCiAyMDIwLTA3LTEyICBSb2IgQnVpcyAgPHJidWlz
QGlnYWxpYS5jb20+CiAKICAgICAgICAgQnVpbGRpbmcgQ0ZOZXR3b3JrU1BJIHdpdGggdGhlIG1h
Y09TIEJpZyBTdXIgcHVibGljIFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MTNiYjZhYTZiYmQ1NTcy
NWIwYmUxYjlmZWRlODdlZGFlOTAwOTFlLi5mODQ2NzNhMjllYjYzMWRjODFkYTRlNDJkMGFiYzg2
NTU3Y2M1Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTE0ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2Fw
YWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFBhc3MgdGhlIHN5c3RlbSBBQyBzdGF0ZSB0byB0
aGUgV2ViQ29udGVudCBwcm9jZXNzIGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBhbHNvIGNyZWF0ZQor
ICAgICAgICBhIHBvd2VyIHN0YXRlIGxpc3RlbmVyIHNvIHRoZSBXZWJQcm9jZXNzIGNhbiBiZSB1
cGRhdGVkIGR5bmFtaWNhbGx5LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lz
dGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlk
Q2hhbmdlKToKKwogMjAyMC0wNC0zMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWR1Y2UgZGF0YSBjb3BpZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBj
dXN0b20gVVJMIHNjaGVtZSBoYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9JT1BTTGliU1BJLmgKaW5kZXggNzAyYjk1NjYyMGY1MTRlNWIwMjdmOWY5ZGJmZjdiZDhj
MWYwZGViOC4uNDk5OWI4ZWIyNjRjZDE2ZDg0NGRiNzM4NDY2MTA1NGQ3NmEwNGFmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaApAQCAtMzYsNiAr
MzYsOSBAQAogCiAjZGVmaW5lIGtJT1BTVHlwZUtleSAiVHlwZSIKICNkZWZpbmUga0lPUFNJbnRl
cm5hbEJhdHRlcnlUeXBlICJJbnRlcm5hbEJhdHRlcnkiCisjZGVmaW5lIGtJT1BTUG93ZXJTb3Vy
Y2VTdGF0ZUtleSAiUG93ZXIgU291cmNlIFN0YXRlIgorI2RlZmluZSBrSU9QU0FDUG93ZXJWYWx1
ZSAiQUMgUG93ZXIiCisjZGVmaW5lIGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UgImNvbS5hcHBsZS5z
eXN0ZW0ucG93ZXJzb3VyY2VzLnNvdXJjZSIKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CmluZGV4IDQ0ZWEwOGY2NDIxMjM2MmRjMzExMzFkODQ2N2FlZTI3NTE3NGFmN2UuLjFkN2Yy
MDk4NjdjMWQ0ZTBhNDI3NDY5NzY1NWY4ZDFiMTM2ZGFkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dApAQCAtMjQxLDYgKzI0MSw3IEBAIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bQogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQogcGxhdGZvcm0v
Y29jb2EvUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1BsYXliYWNr
U2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tCitwbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5v
dGlmaWVyLm1tCiBwbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5t
bQogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQogcGxhdGZvcm0vY29jb2EvU2Ny
b2xsU25hcEFuaW1hdG9yU3RhdGUubW0KQEAgLTM0OSw2ICszNTAsNyBAQCBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JbnRSZWN0Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1N5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkFjdGlv
bkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNv
bXByZXNzaW9uU2Vzc2lvbi5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE2ZTg3YjA1YTk2YzQ1YWFkZjEyMTJmYTNhN2RmZDFl
MThjNTZiNzcuLjkzZTIyMGIyYjg5MDZiYTMyZWE3ZWUwODUzNzM4OWQ3YzQ3YzY3ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQyMDAsNiArNDIwMCw3IEBACiAJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldhcm5pbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREM2OURENDE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XYXJuaW5nVmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUNEQzY5RERBMTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBs
YWNlaG9sZGVyVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RDNjlERDgxNjM3MUZEMzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vo
b2xkZXJWaWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQ0RDNzM0MTUxOTc3ODk2RDAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNzM0MTMxOTc3ODk2QzAw
NDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUNEQzc0NzA0MjRCRTJGQzcwMEMxODY4QiAvKiBQb3dlclNvdXJj
ZU5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREM3NDcwMDI0QkUyNjc5MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQzhCNUEyMTgw
NDYzNDcwMDE2RTY4NSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBMDE4
MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1t
ICovOyB9OwogCQlDREM4QjVBMzE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREM4QjVBMTE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmggKi87IH07CiAJCUNEQzhCNUE2MTgwNDc0RjcwMDE2RTY4NSAv
KiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDOEI1QTQxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakMubW0gKi87IH07CkBAIC0xNDEwNyw2ICsxNDEwOCw4IEBACiAJCUNE
NjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENjQxRUIyMTgxOEY1RUQwMEVFNEM0MSAvKiBTb3VyY2VCdWZm
ZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZl
clByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQzcxODFFRDYw
MTAwRUU0QzQxIC8qIE1lZGlhU2FtcGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENkZFNUI3MjRCQ0U2NDUwMDlGQ0RBNCAv
KiBWUDlVdGlsaXRpZXNDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUDlVdGlsaXRpZXNDb2NvYS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDZGRTVCODI0QkNFNjQ1MDA5RkNEQTQg
LyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWUDlVdGlsaXRp
ZXNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2RkU1QkEyNEJDRTdC
NjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUDlVdGlsaXRpZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0
IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUDlVdGlsaXRpZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDcyMEI0NzIyNjgyQzdFMDAwNDdGREUg
LyogSVNPRmFpclBsYXlTdHJlYW1pbmdQc3NoQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElT
T0ZhaXJQbGF5U3RyZWFtaW5nUHNzaEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNDI4Myw2ICsxNDI4Niw4IEBACiAJCUNEQzY5REQ5MTYzNzFGRDMwMDdDMzhERiAvKiBX
ZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyog
Q0FSaW5nQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENB
UmluZ0J1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzczNDEzMTk3
Nzg5NkMwMDQ2QkZDNSAvKiBDQVJpbmdCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ0FSaW5nQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
Qzc0NzAwMjRCRTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBvd2VyU291cmNlTm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0RDNzQ3MDEyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQb3dlclNvdXJjZU5vdGlmaWVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREM4QjVBMDE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVBMTE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREM4QjVBNDE4MDQ3NEY3MDAxNkU2ODUgLyogTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMzYzMCw2ICsyMzYzNSw4IEBACiAJCQkJQ0RBMjlBMEExQ0JEOUE3NDAw
OTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsLmggKi8sCiAJCQkJQ0RBMjlBMEQxQ0JEOUNG
RTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmggKi8sCiAJCQkJ
Q0RBMjlBMEMxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVt
ZW50Lm1tICovLAorCQkJCUNEQzc0NzAwMjRCRTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5v
dGlmaWVyLmggKi8sCisJCQkJQ0RDNzQ3MDEyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2VyU291cmNl
Tm90aWZpZXIubW0gKi8sCiAJCQkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tICovLAogCQkJCTFBQTg0RjAzMTQzQkE3QkQwMDUxRDE1
MyAvKiBTY3JvbGxDb250cm9sbGVyLmggKi8sCiAJCQkJMUFBODRGMDIxNDNCQTdCRDAwNTFEMTUz
IC8qIFNjcm9sbENvbnRyb2xsZXIubW0gKi8sCkBAIC0yNTc0NCwxMSArMjU3NTEsMTEgQEAKIAkJ
CQkwNzZFMTFCRTFGNjgzRTBEMDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJ
CQkJQkU5MTNEN0YxODFFRjhFNTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJ
CQlFNEFGQ0ZBNDBEQUYyOUEzMDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAotCQkJCUNENkZF
NUJBMjRCQ0U3QjYwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKLQkJCQlDRDZGRTVCQjI0
QkNFN0I2MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRjVBNTdDQTIyOUIx
OEFFMDAyNUVEQTkgLyogVmVsb2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4
MDBEMzdBREIgLyogVmVsb2NpdHlEYXRhLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRC
NEM5IC8qIFZpZGVvVHJhY2tQcml2YXRlLmggKi8sCisJCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZD
REE0IC8qIFZQOVV0aWxpdGllcy5jcHAgKi8sCisJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0
IC8qIFZQOVV0aWxpdGllcy5oICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5QTgwMEQ0OUJDMSAvKiBX
aWR0aENhY2hlLmggKi8sCiAJCQkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRl
cmF0b3IuY3BwICovLAogCQkJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJh
dG9yLmggKi8sCkBAIC0yNTg4Niw2ICsyNTg5Myw4IEBACiAJCQkJRTRFOEI0RUEyMTZCNzlFNTAw
Qjg4MzREIC8qIFN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmggKi8sCiAJCQkJNTI2NzI0RjIx
Q0IyRkRGNjAwNzU5NzREIC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EuaCAqLywKIAkJ
CQk1MjY3MjRGMTFDQjJGREY2MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2Nv
YS5tbSAqLywKKwkJCQlDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29j
b2EuaCAqLywKKwkJCQlDRDZGRTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29j
b2EubW0gKi8sCiAJCQkJMkQzRUY0NDQxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2Fi
bGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oICovLAogCQkJCTJEM0VGNDQ1MTkxNzkxNUMwMDAzNDE4NCAv
KiBXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUubW0gKi8sCiAJCQkJMkQzRUY0NDYx
OTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLmggKi8sCkBAIC0zMjY0MCw2
ICszMjY0OSw3IEBACiAJCQkJQTE0OTc4NzExQUJBRjNBNTAwQ0VGN0U0IC8qIFBsYXRmb3JtQ29u
dGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1
IC8qIFBsYXRmb3JtRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2NjAxRUJGMTRCM0I5QUQw
MDEyQzBGRSAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0RDNzQ3MDQyNEJFMkZDNzAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQUE0ODcwMTRBMDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8q
IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTVCRTE5NTFENTRG
NUZCMDBERDdDNjggLyogUGxhdGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcAppbmRleCA5YTBkOGY1YzU3ZjU4NjQ0
NWY2OTkwODM5NWU0YmMxMDdjNmIwNjcyLi5iYTUwYjY4OGFiNmQwYmFlNWQxOTlmYTBiYWM0Yjdl
MjAwNGJhZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNj
cmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3Bw
CkBAIC0zOCw2ICszOCwxMSBAQCBzdGF0aWMgU2NyZWVuUHJvcGVydGllcyYgc2NyZWVuUHJvcGVy
dGllcygpCiAgICAgcmV0dXJuIHNjcmVlblByb3BlcnRpZXM7CiB9CiAKK2NvbnN0IFNjcmVlblBy
b3BlcnRpZXMmIGdldFNjcmVlblByb3BlcnRpZXMoKQoreworICAgIHJldHVybiBzY3JlZW5Qcm9w
ZXJ0aWVzKCk7Cit9CisKIFBsYXRmb3JtRGlzcGxheUlEIHByaW1hcnlTY3JlZW5EaXNwbGF5SUQo
KQogewogICAgIHJldHVybiBzY3JlZW5Qcm9wZXJ0aWVzKCkucHJpbWFyeURpc3BsYXlJRDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCmluZGV4IGI5MTNhZGQ2MjY5OWVm
M2RkNzFiMGZiNmU3YzFmNThkNzZiN2RiOTIuLjM3MzgzNmYwNTg4MzgxODUxNTc1ZjZjNjVhYTgz
YzRjNWZhYjQwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
U2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaApA
QCAtOTQsNiArOTQsNyBAQCBzdHJ1Y3QgU2NyZWVuRGF0YTsKICAgICAKIFdFQkNPUkVfRVhQT1JU
IFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKTsKIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2NyZWVuUHJvcGVydGllcyhjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJik7Citj
b25zdCBTY3JlZW5Qcm9wZXJ0aWVzJiBnZXRTY3JlZW5Qcm9wZXJ0aWVzKCk7CiBjb25zdCBTY3Jl
ZW5EYXRhKiBzY3JlZW5EYXRhKFBsYXRmb3JtRGlzcGxheUlEIHNjcmVlbmRpc3BsYXlJRCk7CiBX
RUJDT1JFX0VYUE9SVCBQbGF0Zm9ybURpc3BsYXlJRCBwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0
aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXgg
ZDUwNmVmYmQxYmNhODA2OThjYTdmYjRjY2Y0YjNkZTczODY0YTViOS4uN2ZkYjgyZDk5NTVkZTg1
ZWM2ODg1ZTI4MDhlNDQxZjRmOWQ3MjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cmVlblByb3BlcnRpZXMuaApAQCAtNTEsNiArNTEsMTAgQEAgc3RydWN0IFNjcmVlbkRhdGEgewog
ICAgIElPUmVnaXN0cnlHUFVJRCBncHVJRCB7IDAgfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGZsb2F0IHNjYWxlRmFjdG9yIHsgMSB9
OworI2VuZGlmCisKICAgICBlbnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhfdCB7IE5v
bmUsIE5hbWUsIERhdGEgfTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPFNjcmVlbkRhdGE+IGRlY29kZShEZWNvZGVyJik7CkBAIC05OCw2ICsxMDIsMTAgQEAg
dm9pZCBTY3JlZW5EYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHNjcmVlbklzTW9ub2Nocm9tZSA8PCBkaXNwbGF5TWFzayA8PCBncHVJRDsKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGVuY29k
ZXIgPDwgc2NhbGVGYWN0b3I7CisjZW5kaWYKKwogICAgIGlmIChjb2xvclNwYWNlKSB7CiAgICAg
ICAgIC8vIFRyeSB0byBlbmNvZGUgdGhlIG5hbWUuCiAgICAgICAgIGlmIChhdXRvIG5hbWUgPSBh
ZG9wdENGKENHQ29sb3JTcGFjZUNvcHlOYW1lKGNvbG9yU3BhY2UuZ2V0KCkpKSkgewpAQCAtMTc2
LDYgKzE4NCwxMyBAQCBPcHRpb25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE9wdGlvbmFsPGZs
b2F0PiBzY2FsZUZhY3RvcjsKKyAgICBkZWNvZGVyID4+IHNjYWxlRmFjdG9yOworICAgIGlmICgh
c2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisjZW5kaWYKKwogICAg
IENvbG9yU3BhY2VUeXBlIGRhdGFUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVR5
cGUpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpAQCAtMjE5LDcgKzIzNCwxMCBAQCBP
cHRpb25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFdURk1vdmUoKnNjcmVlbklzTW9ub2Nocm9tZSks
CiAgICAgICAgIFdURk1vdmUoKmRpc3BsYXlNYXNrKSwKLSAgICAgICAgV1RGTW92ZSgqZ3B1SUQp
CisgICAgICAgIFdURk1vdmUoKmdwdUlEKSwKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgV1RGTW92ZSgqc2NhbGVGYWN0b3IpLAogI2Vu
ZGlmCiAgICAgfSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvUG93ZXJTb3VyY2VOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UG93ZXJTb3VyY2VOb3RpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZTk2ZmY1ZTk4YWEzYzA4ZTJiZGM2
NGMwZDAyNjQwM2FmMGJjYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgUG93ZXJTb3VyY2VOb3RpZmll
ckNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wgaGFzQUMpPjsKKyAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBQb3dlclNvdXJjZU5vdGlmaWVyKFBvd2VyU291cmNlTm90aWZpZXJD
YWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+UG93ZXJTb3VyY2VOb3RpZmllcigpOwor
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0xvd1Bvd2VyTW9kZUVuYWJsZWQoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICB2b2lkIG5vdGlmeVBvd2VyU291cmNlQ2hhbmdlZCgpOworCisgICAg
T3B0aW9uYWw8aW50PiBtX3Rva2VuSUQ7CisgICAgUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNr
IG1fY2FsbGJhY2s7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTQ4MDhmNTk3ZmJmMGY4
ZDg0OTE4YzVkNTA2ZDQ4YTMyYzQ2ZjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbQpAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvd2VyU291cmNl
Tm90aWZpZXIuaCIKKworI2ltcG9ydCAiU3lzdGVtQmF0dGVyeS5oIgorI2ltcG9ydCA8bm90aWZ5
Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQb3dlclNvdXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5vdGlmaWVyKFBvd2Vy
U291cmNlTm90aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhXVEZN
b3ZlKGNhbGxiYWNrKSkKK3sKKyAgICBpbnQgdG9rZW4gPSAwOworICAgIGF1dG8gc3RhdHVzID0g
bm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UsICZ0b2tlbiwg
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQpIHsKKyAgICAgICAgbm90aWZ5UG93ZXJT
b3VyY2VDaGFuZ2VkKCk7CisgICAgfSk7CisgICAgaWYgKHN0YXR1cyA9PSBOT1RJRllfU1RBVFVT
X09LKQorICAgICAgICBtX3Rva2VuSUQgPSB0b2tlbjsKK30KKworUG93ZXJTb3VyY2VOb3RpZmll
cjo6flBvd2VyU291cmNlTm90aWZpZXIoKQoreworICAgIGlmIChtX3Rva2VuSUQpCisgICAgICAg
IG5vdGlmeV9jYW5jZWwoKm1fdG9rZW5JRCk7Cit9CisKK3ZvaWQgUG93ZXJTb3VyY2VOb3RpZmll
cjo6bm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCkKK3sKKyAgICByZXNldFN5c3RlbUhhc0FDKCk7
CisgICAgaWYgKG1fY2FsbGJhY2spCisgICAgICAgIG1fY2FsbGJhY2soc3lzdGVtSGFzQUMoKSk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3Rl
bUJhdHRlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnku
aAppbmRleCA1YWRhODllNjRmYWM0NzU2NWFmM2IxMmJhMzIxZTExMmIzYjY3NDYyLi5hZjMwZTgy
Yjk5NGZhY2YzNmM0NGQ2ZTExNmEyN2U3NDExZDY5ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCkBAIC0zMCw0ICszMCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9v
bCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0JhdHRlcnkoKTsKIAorV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXNldFN5c3RlbUhhc0FDKCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5
c3RlbUhhc0FDKGJvb2wpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzeXN0ZW1IYXNBQygpOworCitX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3Rpbmco
T3B0aW9uYWw8Ym9vbD4mJik7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVt
SGFzQUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYpOworCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQppbmRleCA2YzEzZTVlYjcwZDhlNTE0
M2VkZDI4ODFkZDI5ZTEwNzUzMGI1OWRhLi5iMDk2ZTQyMjY2NGI3MDJhMTYxOWFiMDQ1NDg2MjA3
YzdkMDc1YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0
ZW1CYXR0ZXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJh
dHRlcnkubW0KQEAgLTI2LDExICsyNiwxNSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0
ICJTeXN0ZW1CYXR0ZXJ5LmgiCiAKKyNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9JT1BTTGliU1BJLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE9w
dGlvbmFsPGJvb2w+IGhhc0JhdHRlcnk7CitzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUM7Citz
dGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKK3N0YXRp
YyBPcHRpb25hbDxib29sPiBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZzsKIAogdm9pZCBzZXRTeXN0
ZW1IYXNCYXR0ZXJ5KGJvb2wgYmF0dGVyeSkKIHsKQEAgLTM5LDYgKzQzLDkgQEAgdm9pZCBzZXRT
eXN0ZW1IYXNCYXR0ZXJ5KGJvb2wgYmF0dGVyeSkKIAogYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkK
IHsKKyAgICBpZiAoaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZykKKyAgICAgICAgcmV0dXJu
ICpoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nOworCiAgICAgaWYgKCFoYXNCYXR0ZXJ5Lmhh
c1ZhbHVlKCkpIHsKICAgICAgICAgaGFzQmF0dGVyeSA9IFtdIHsKICNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKFdBVENIT1MpCkBAIC02Nyw0ICs3NCw1NiBAQCBib29sIHN5c3RlbUhhc0Jh
dHRlcnkoKQogICAgIHJldHVybiAqaGFzQmF0dGVyeTsKIH0KIAordm9pZCByZXNldFN5c3RlbUhh
c0FDKCkKK3sKKyAgICBoYXNBQy5yZXNldCgpOworfQorCit2b2lkIHNldFN5c3RlbUhhc0FDKGJv
b2wgYWMpCit7CisgICAgaGFzQUMgPSBhYzsKK30KKworYm9vbCBzeXN0ZW1IYXNBQygpCit7Cisg
ICAgaWYgKGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nKQorICAgICAgICByZXR1cm4gKmhhc0FDT3Zl
cnJpZGVGb3JUZXN0aW5nOworCisgICAgaWYgKCFoYXNBQy5oYXNWYWx1ZSgpKSB7CisgICAgICAg
IGhhc0FDID0gW10geworI2lmIFBMQVRGT1JNKEFQUExFVFYpCisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyNlbHNlCisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBwb3dlclNvdXJj
ZXNJbmZvID0gYWRvcHRDRihJT1BTQ29weVBvd2VyU291cmNlc0luZm8oKSk7CisgICAgICAgICAg
ICBpZiAoIXBvd2VyU291cmNlc0luZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgUmV0YWluUHRyPENGQXJyYXlSZWY+IHBvd2VyU291cmNlc0xpc3QgPSBhZG9w
dENGKElPUFNDb3B5UG93ZXJTb3VyY2VzTGlzdChwb3dlclNvdXJjZXNJbmZvLmdldCgpKSk7Cisg
ICAgICAgICAgICBpZiAoIXBvd2VyU291cmNlc0xpc3QpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlH
ZXRDb3VudChwb3dlclNvdXJjZXNMaXN0LmdldCgpKTsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAg
ICAgICAgICAgICBDRkRpY3Rpb25hcnlSZWYgZGVzY3JpcHRpb24gPSBJT1BTR2V0UG93ZXJTb3Vy
Y2VEZXNjcmlwdGlvbihwb3dlclNvdXJjZXNJbmZvLmdldCgpLCBDRkFycmF5R2V0VmFsdWVBdElu
ZGV4KHBvd2VyU291cmNlc0xpc3QuZ2V0KCksIGkpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRl
c2NyaXB0aW9uKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAg
ICBDRlR5cGVSZWYgdmFsdWUgPSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShkZXNjcmlwdGlvbiwgQ0ZT
VFIoa0lPUFNQb3dlclNvdXJjZVN0YXRlS2V5KSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVl
ICYmIENGRXF1YWwodmFsdWUsIENGU1RSKGtJT1BTQUNQb3dlclZhbHVlKSkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCisgICAgICAgIH0oKTsKKyAgICB9CisKKyAgICByZXR1cm4gKmhhc0FD
OworfQorCit2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9u
YWw8Ym9vbD4mJiBoYXNCYXR0ZXJ5KQoreworICAgIGhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3Rp
bmcgPSBXVEZNb3ZlKGhhc0JhdHRlcnkpOworfQorCit2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFz
QUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit7CisgICAgaGFzQUNPdmVycmlk
ZUZvclRlc3RpbmcgPSBXVEZNb3ZlKGhhc0FDKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5jcHAKaW5kZXggYWQyYTY1MzFmMTUz
ZmIzYzljNzUwNjNhNjc1ZmMxMDcyNjIxYzQwNC4uOWFjMzkxOTczYTQ0MDQ0N2UyZmI0ZGM3Zjg3
ODA3MzU0N2Q2NDhlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVlA5VXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9WUDlVdGlsaXRpZXMuY3BwCkBAIC0zNCwyMCArMzQsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RhdGljIGJvb2wgaXNWYWxpZFZQTGV2ZWwodWludDhfdCBsZXZlbCkKIHsKICAgICBjb25z
dGV4cHIgdWludDhfdCB2YWxpZExldmVsc1tdID0gewotICAgICAgICAxMCwKLSAgICAgICAgMTEs
Ci0gICAgICAgIDIwLAotICAgICAgICAyMSwKLSAgICAgICAgMzAsCi0gICAgICAgIDMxLAotICAg
ICAgICA0MCwKLSAgICAgICAgNDEsCi0gICAgICAgIDUwLAotICAgICAgICA1MSwKLSAgICAgICAg
NTIsCi0gICAgICAgIDYwLAotICAgICAgICA2MSwKLSAgICAgICAgNjIsCisgICAgICAgIFZQQ29u
ZmlndXJhdGlvbkxldmVsOjpMZXZlbF8xLAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6
TGV2ZWxfMV8xLAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfMiwKKyAgICAg
ICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVsXzJfMSwKKyAgICAgICAgVlBDb25maWd1cmF0
aW9uTGV2ZWw6OkxldmVsXzMsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF8z
XzEsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF80LAorICAgICAgICBWUENv
bmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfNF8xLAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZl
bDo6TGV2ZWxfNSwKKyAgICAgICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVsXzVfMSwKKyAg
ICAgICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVsXzVfMiwKKyAgICAgICAgVlBDb25maWd1
cmF0aW9uTGV2ZWw6OkxldmVsXzYsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZl
bF82XzEsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF82XzIsCiAgICAgfTsK
IAogICAgIEFTU0VSVChzdGQ6OmlzX3NvcnRlZChzdGQ6OmJlZ2luKHZhbGlkTGV2ZWxzKSwgc3Rk
OjplbmQodmFsaWRMZXZlbHMpKSk7CkBAIC0xMzAsNyArMTMwLDcgQEAgT3B0aW9uYWw8VlBDb2Rl
Y0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoU3RyaW5nVmlldyBj
b2RlY1ZpZXcKIAogICAgIC8vIEZvdXJ0aCBlbGVtZW50OiBjaHJvbWFTdWJzYW1wbGluZy4gTGVn
YWwgdmFsdWVzIGFyZSAwLTMuCiAgICAgYXV0byBjaHJvbWFTdWJzYW1wbGluZyA9IHRvSW50ZWdy
YWxUeXBlPHVpbnQ4X3Q+KCpuZXh0RWxlbWVudCk7Ci0gICAgaWYgKCFjaHJvbWFTdWJzYW1wbGlu
ZyB8fCAqY2hyb21hU3Vic2FtcGxpbmcgPiAzKQorICAgIGlmICghY2hyb21hU3Vic2FtcGxpbmcg
fHwgKmNocm9tYVN1YnNhbXBsaW5nID4gVlBDb25maWd1cmF0aW9uQ2hyb21hU3Vic2FtcGxpbmc6
OlN1YnNhbXBsaW5nXzQ0NCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjb25m
aWd1cmF0aW9uLmNocm9tYVN1YnNhbXBsaW5nID0gKmNocm9tYVN1YnNhbXBsaW5nOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCmluZGV4IGM4
OGQ2ZGQ1NTBiY2ExNjVmYjBkMjQ2YTM1OTZmZGRkMTVhNTI0YzIuLjNhZjU4NTBlNTQ0MGQyYWZj
ZjllYWNkZTJjODVlMGIzZDMxMThmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCkBAIC0zMCwxMyArMzAsNDIgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCituYW1lc3BhY2UgVlBDb25maWd1cmF0aW9uTGV2ZWwgeworY29uc3RleHBy
IHVpbnQ4X3QgTGV2ZWxfMSAgID0gMTA7Citjb25zdGV4cHIgdWludDhfdCBMZXZlbF8xXzEgPSAx
MTsKK2NvbnN0ZXhwciB1aW50OF90IExldmVsXzIgICA9IDIwOworY29uc3RleHByIHVpbnQ4X3Qg
TGV2ZWxfMl8xID0gMjE7Citjb25zdGV4cHIgdWludDhfdCBMZXZlbF8zICAgPSAzMDsKK2NvbnN0
ZXhwciB1aW50OF90IExldmVsXzNfMSA9IDMxOworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfNCAg
ID0gNDA7Citjb25zdGV4cHIgdWludDhfdCBMZXZlbF80XzEgPSA0MTsKK2NvbnN0ZXhwciB1aW50
OF90IExldmVsXzUgICA9IDUwOworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfNV8xID0gNTE7Citj
b25zdGV4cHIgdWludDhfdCBMZXZlbF81XzIgPSA1MjsKK2NvbnN0ZXhwciB1aW50OF90IExldmVs
XzYgICA9IDYwOworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfNl8xID0gNjE7Citjb25zdGV4cHIg
dWludDhfdCBMZXZlbF82XzIgPSA2MjsKK30KKworbmFtZXNwYWNlIFZQQ29uZmlndXJhdGlvbkNo
cm9tYVN1YnNhbXBsaW5nIHsKK2NvbnN0ZXhwciB1aW50OF90IFN1YnNhbXBsaW5nXzQyMF9WZXJ0
aWNhbCA9IDA7Citjb25zdGV4cHIgdWludDhfdCBTdWJzYW1wbGluZ180MjBfQ29sb2NhdGVkID0g
MTsKK2NvbnN0ZXhwciB1aW50OF90IFN1YnNhbXBsaW5nXzQyMiA9IDI7Citjb25zdGV4cHIgdWlu
dDhfdCBTdWJzYW1wbGluZ180NDQgPSAzOworfQorCituYW1lc3BhY2UgVlBDb25maWd1cmF0aW9u
UmFuZ2UgeworY29uc3RleHByIHVpbnQ4X3QgVmlkZW9SYW5nZSA9IDA7Citjb25zdGV4cHIgdWlu
dDhfdCBGdWxsUmFuZ2UgPSAxOworfQorCiBzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNv
cmQgewogICAgIFN0cmluZyBjb2RlY05hbWU7CiAgICAgdWludDhfdCBwcm9maWxlIHsgMCB9Owot
ICAgIHVpbnQ4X3QgbGV2ZWwgeyAwIH07Ci0gICAgdWludDhfdCBiaXREZXB0aCB7IDAgfTsKLSAg
ICB1aW50OF90IGNocm9tYVN1YnNhbXBsaW5nIHsgMSB9OwotICAgIHVpbnQ4X3QgdmlkZW9GdWxs
UmFuZ2VGbGFnIHsgMCB9OworICAgIHVpbnQ4X3QgbGV2ZWwgeyBWUENvbmZpZ3VyYXRpb25MZXZl
bDo6TGV2ZWxfMSB9OworICAgIHVpbnQ4X3QgYml0RGVwdGggeyA4IH07CisgICAgdWludDhfdCBj
aHJvbWFTdWJzYW1wbGluZyB7IFZQQ29uZmlndXJhdGlvbkNocm9tYVN1YnNhbXBsaW5nOjpTdWJz
YW1wbGluZ180MjBfQ29sb2NhdGVkIH07CisgICAgdWludDhfdCB2aWRlb0Z1bGxSYW5nZUZsYWcg
eyBWUENvbmZpZ3VyYXRpb25SYW5nZTo6VmlkZW9SYW5nZSB9OwogICAgIHVpbnQ4X3QgY29sb3JQ
cmltYXJpZXMgeyAxIH07CiAgICAgdWludDhfdCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyB7IDEg
fTsKICAgICB1aW50OF90IG1hdHJpeENvZWZmaWNpZW50cyB7IDEgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3RvcnlDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCmluZGV4IDk4YTUz
YzQyZjMwNWI5Mjg0ZWNlYTc4YjVlMzZhNDcwZDc1MGRkZmIuLjdjZGZlODY0MjMwNzQyMjA5N2Mx
YzVmOTY5MjA3MjE4MjEwNDY3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcApAQCAtMzIsMTEgKzMyLDE1IEBACiAjaW5jbHVk
ZSAiTWVkaWFDYXBhYmlsaXRpZXNEZWNvZGluZ0luZm8uaCIKICNpbmNsdWRlICJNZWRpYURlY29k
aW5nQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAi
VlA5VXRpbGl0aWVzQ29jb2EuaCIKIAogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Uga0NN
VmlkZW9Db2RlY1R5cGVfVlA5IGlzIGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorY29u
c3RleHByIENNVmlkZW9Db2RlY1R5cGUga0NNVmlkZW9Db2RlY1R5cGVfVlA5IHsgJ3ZwMDknIH07
CisKIHN0YXRpYyBDTVZpZGVvQ29kZWNUeXBlIHZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBl
KFN0cmluZyB0eXBlKQogewogICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoIm1wNHYiKSkKQEAgLTQ1
LDYgKzQ5LDggQEAgc3RhdGljIENNVmlkZW9Db2RlY1R5cGUgdmlkZW9Db2RlY1R5cGVGcm9tUkZD
NDI4MVR5cGUoU3RyaW5nIHR5cGUpCiAgICAgICAgIHJldHVybiBrQ01WaWRlb0NvZGVjVHlwZV9I
MjY0OwogICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoImh2YzEiKSB8fCB0eXBlLnN0YXJ0c1dpdGgo
ImhldjEiKSkKICAgICAgICAgcmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkM7CisgICAgaWYg
KHR5cGUuc3RhcnRzV2l0aCgidnAwOSIpKQorICAgICAgICByZXR1cm4ga0NNVmlkZW9Db2RlY1R5
cGVfVlA5OwogICAgIHJldHVybiAwOwogfQogCkBAIC05MSw2ICs5NywxMiBAQCB2b2lkIGNyZWF0
ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25maWd1cmF0aW9uQ29jb2EoTWVkaWFEZWNvZGluZ0NvbmZp
Z3VyYXRpb24mJiBjbwogICAgICAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29u
ZmlndXJhdGlvbil9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZSBpZiAodmlkZW9Db2RlY1R5cGUgPT0ga0NNVmlkZW9Db2RlY1R5cGVfVlA5
KSB7CisgICAgICAgICAgICBhdXRvIGNvZGVjQ29uZmlndXJhdGlvbiA9IHBhcnNlVlBDb2RlY1Bh
cmFtZXRlcnMoY29kZWMpOworICAgICAgICAgICAgaWYgKCFjb2RlY0NvbmZpZ3VyYXRpb24gfHwg
IXZhbGlkYXRlVlBQYXJhbWV0ZXJzKCpjb2RlY0NvbmZpZ3VyYXRpb24sIGluZm8sIHZpZGVvQ29u
ZmlndXJhdGlvbikpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKGFscGhhQ2hhbm5lbCB8fCBoZHJTdXBw
b3J0ZWQpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3Vy
YXRpb24pfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNThkN2Y5NmFjMDFiZDVm
ZGI0MDNjZjhlMGFiNWExODhiOTBhNzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KworI2luY2x1ZGUgIlZQOVV0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBNZWRpYUNhcGFiaWxpdGllc0luZm87CitzdHJ1Y3QgVmlkZW9Db25maWd1cmF0aW9uOwor
CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2Rl
ckRpc2FibGVkRm9yVGVzdGluZyhib29sKTsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHNl
dE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyhmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZXNl
dE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpOworCitleHRlcm4gYm9v
bCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYsIE1lZGlh
Q2FwYWJpbGl0aWVzSW5mbyYsIGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYpOworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
VlA5VXRpbGl0aWVzQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Njg1OTUzM2RlYjZhZWNjOTBj
NTdlMTk1MTJjZmRkOGUwZTJlNGIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTAsMCArMSwy
MDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVlA5VXRp
bGl0aWVzQ29jb2EuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJGb3VyQ0Mu
aCIKKyNpbXBvcnQgIk1lZGlhQ2FwYWJpbGl0aWVzSW5mby5oIgorI2ltcG9ydCAiUGxhdGZvcm1T
Y3JlZW4uaCIKKyNpbXBvcnQgIlNjcmVlblByb3BlcnRpZXMuaCIKKyNpbXBvcnQgIlN5c3RlbUJh
dHRlcnkuaCIKKyNpbXBvcnQgIlZpZGVvQ29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oPgorCisjaW1wb3J0IDxwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaD4KKyNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Uga0NNVmlk
ZW9Db2RlY1R5cGVfVlA5IGlzIGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorY29uc3Rl
eHByIENNVmlkZW9Db2RlY1R5cGUga0NNVmlkZW9Db2RlY1R5cGVfVlA5IHsgJ3ZwMDknIH07CisK
K3N0YXRpYyBib29sIGhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyB7IGZhbHNl
IH07CisKK3N0cnVjdCBPdmVycmlkZVNjcmVlbkRhdGEgeworICAgIGZsb2F0IHdpZHRoIHsgMCB9
OworICAgIGZsb2F0IGhlaWdodCB7IDAgfTsKKyAgICBmbG9hdCBzY2FsZSB7IDEgfTsKK307Citz
dGF0aWMgT3B0aW9uYWw8T3ZlcnJpZGVTY3JlZW5EYXRhPiBzY3JlZW5TaXplQW5kU2NhbGVGb3JU
ZXN0aW5nOworCit2b2lkIHNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JU
ZXN0aW5nKGJvb2wgZGlzYWJsZWQpCit7CisgICAgaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRG
b3JUZXN0aW5nID0gZGlzYWJsZWQ7Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxl
KQoreworICAgIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcgPSBtYWtlT3B0aW9uYWw8T3Zl
cnJpZGVTY3JlZW5EYXRhPih7IHdpZHRoLCBoZWlnaHQsIHNjYWxlIH0pOworfQorCit2b2lkIHJl
c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKCkKK3sKKyAgICBzY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nID0gV1RGOjpudWxsb3B0OworfQorCitlbnVtIGNsYXNz
IFJlc29sdXRpb25DYXRlZ29yeSA6IHVpbnQ4X3QgeworICAgIFJfNDgwcCwKKyAgICBSXzcyMHAs
CisgICAgUl8xMDgwcCwKKyAgICBSXzJLLAorICAgIFJfNEssCisgICAgUl84SywKKyAgICBSXzEy
SywKK307CisKK3N0YXRpYyBSZXNvbHV0aW9uQ2F0ZWdvcnkgcmVzb2x1dGlvbkNhdGVnb3J5KGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSkKK3sKKyAgICBhdXRvIHBpeGVscyA9IHNpemUuYXJlYSgpOwor
ICAgIGlmIChwaXhlbHMgPiA3NjgwICogNDMyMCkKKyAgICAgICAgcmV0dXJuIFJlc29sdXRpb25D
YXRlZ29yeTo6Ul8xMks7CisgICAgaWYgKHBpeGVscyA+IDQwOTYgKiAyMTYwKQorICAgICAgICBy
ZXR1cm4gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzhLOworICAgIGlmIChwaXhlbHMgPiAyMDQ4ICog
MTA4MCkKKyAgICAgICAgcmV0dXJuIFJlc29sdXRpb25DYXRlZ29yeTo6Ul80SzsKKyAgICBpZiAo
cGl4ZWxzID4gMTkyMCAqIDEwODApCisgICAgICAgIHJldHVybiBSZXNvbHV0aW9uQ2F0ZWdvcnk6
OlJfMks7CisgICAgaWYgKHBpeGVscyA+IDEyODAgKiA3MjApCisgICAgICAgIHJldHVybiBSZXNv
bHV0aW9uQ2F0ZWdvcnk6OlJfMTA4MHA7CisgICAgaWYgKHBpeGVscyA+IDY0MCAqIDQ4MCkKKyAg
ICAgICAgcmV0dXJuIFJlc29sdXRpb25DYXRlZ29yeTo6Ul83MjBwOworICAgIHJldHVybiBSZXNv
bHV0aW9uQ2F0ZWdvcnk6OlJfNDgwcDsKK30KKworYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUNhcGFi
aWxpdGllc0luZm8mIGluZm8sIGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYgdmlkZW9Db25maWd1
cmF0aW9uKQoreworICAgIE9TU3RhdHVzIHN0YXR1cyA9IFZUU2VsZWN0QW5kQ3JlYXRlVmlkZW9E
ZWNvZGVySW5zdGFuY2Uoa0NNVmlkZW9Db2RlY1R5cGVfVlA5LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAvLyBWaWRlb0NvbmZpZ3VyYXRpb24gYW5kIFZQQ29kZWNDb25m
aWd1cmF0aW9uUmVjb3JkIGNhbiBoYXZlIGNvbmZsaWN0aW5nIHZhbHVlcyBmb3IgSERSIHByb3Bl
cnRpZXMuIElmIHNvLCByZWplY3QuCisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi50cmFuc2Zl
ckZ1bmN0aW9uKSB7CisgICAgICAgIC8vIE5vdGU6IFRyYW5zZmVyIENoYXJhY3RlcmlzdGljcyBh
cmUgZGVmaW5lZCBieSBJU08vSUVDIDIzMDkxLTI6MjAxOS4KKyAgICAgICAgaWYgKCp2aWRlb0Nv
bmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpTUkdCICYm
IGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA+IDE1KQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi50cmFu
c2ZlckZ1bmN0aW9uID09IFRyYW5zZmVyRnVuY3Rpb246OlBRICYmIGNvZGVjQ29uZmlndXJhdGlv
bi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyAhPSAxNikKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBU
cmFuc2ZlckZ1bmN0aW9uOjpITEcgJiYgY29kZWNDb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFj
dGVyaXN0aWNzICE9IDE4KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uY29sb3JHYW11dCkgeworICAgICAgICBpZiAoKnZpZGVv
Q29uZmlndXJhdGlvbi5jb2xvckdhbXV0ID09IENvbG9yR2FtdXQ6OlJlYzIwMjAgJiYgY29kZWND
b25maWd1cmF0aW9uLmNvbG9yUHJpbWFyaWVzICE9IDkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUSXNIYXJkd2FyZURl
Y29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZChrQ01WaWRlb0Nv
ZGVjVHlwZV9WUDkpICYmICFoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpIHsK
KyAgICAgICAgaW5mby5wb3dlckVmZmljaWVudCA9IHRydWU7CisKKyAgICAgICAgLy8gSFcgVlA5
IERlY29kZXIgc3VwcG9ydHMgUHJvZmlsZSAwICYgMjoKKyAgICAgICAgaWYgKCFjb2RlY0NvbmZp
Z3VyYXRpb24ucHJvZmlsZSAmJiBjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAhPSAyKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cHBv
cnRzIHVwIHRvIExldmVsIDY6CisgICAgICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24ubGV2ZWwg
PiBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfNikKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBzdXBwb3J0cyA4IG9yIDEwIGJpdCBjb2xv
cjoKKyAgICAgICAgaWYgKGNvZGVjQ29uZmlndXJhdGlvbi5iaXREZXB0aCA+IDEwKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cG9ydHMg
b25seSA0MjAgY2hyb21hIHN1YnNhbXBsaW5nOgorICAgICAgICBpZiAoY29kZWNDb25maWd1cmF0
aW9uLmNocm9tYVN1YnNhbXBsaW5nID4gVlBDb25maWd1cmF0aW9uQ2hyb21hU3Vic2FtcGxpbmc6
OlN1YnNhbXBsaW5nXzQyMF9Db2xvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgLy8gSFcgVlA5IERlY29kZXIgZG9lcyBub3Qgc3VwcG9ydCBhbHBoYSBjaGFubmVs
OgorICAgICAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmFscGhhQ2hhbm5lbCAmJiAqdmlkZW9D
b25maWd1cmF0aW9uLmFscGhhQ2hhbm5lbCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBjYW4gc3VwcG9ydCB1cCB0byA0SyBAIDEyMCBvciA4
SyBAIDMwCisgICAgICAgIGF1dG8gcmVzb2x1dGlvbiA9IHJlc29sdXRpb25DYXRlZ29yeSh7IChm
bG9hdCl2aWRlb0NvbmZpZ3VyYXRpb24ud2lkdGgsIChmbG9hdCl2aWRlb0NvbmZpZ3VyYXRpb24u
aGVpZ2h0IH0pOworICAgICAgICBpZiAocmVzb2x1dGlvbiA+IFJlc29sdXRpb25DYXRlZ29yeTo6
Ul84SykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHJlc29sdXRpb24g
PT0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzhLICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJh
dGUgPiAzMCkKKyAgICAgICAgICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgICAgIGVsc2Ug
aWYgKHJlc29sdXRpb24gPD0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLICYmIHZpZGVvQ29uZmln
dXJhdGlvbi5mcmFtZXJhdGUgPiAxMjApCisgICAgICAgICAgICBpbmZvLnNtb290aCA9IGZhbHNl
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbmZvLnNtb290aCA9IHRydWU7CisKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gU1cgVlA5IERlY29kZXIgaGFzIG11Y2gg
bW9yZSB2YXJpYWJsZSBjYXBhYmlsaXRpZXMgZGVwZW5kaW5nIG9uIENQVSBjaGFyYWN0ZXJpc3Rp
Y3MuCisgICAgLy8gRklYTUU6IEFkZCBhIGxvb2t1cCB0YWJsZSBmb3IgZGV2aWNlLXRvLWNhcGFi
aWxpdGllcy4gRm9yIG5vdywgYXNzdW1lIHRoYXQgdGhlIFNXIFZQOQorICAgIC8vIGRlY29kZXIg
Y2FuIHN1cHBvcnQgNEsgQCAzMC4KKyAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA8
PSAxMDgwICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJhdGUgPiA2MCkKKyAgICAgICAgaW5m
by5zbW9vdGggPSBmYWxzZTsKKyAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA8PSAy
MTYwICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJhdGUgPiAzMCkKKyAgICAgICAgaW5mby5z
bW9vdGggPSBmYWxzZTsKKyAgICBlbHNlCisgICAgICAgIGluZm8uc21vb3RoID0gdHJ1ZTsKKwor
ICAgIC8vIEZvciB3YWxsLXBvd2VyZWQgZGV2aWNlcywgYWx3YXlzIHJlcG9ydCBWUDkgYXMgc3Vw
cG9ydGVkLCBldmVuIGlmIG5vdCBwb3dlckVmZmljaWVudC4KKyAgICBpZiAoIXN5c3RlbUhhc0Jh
dHRlcnkoKSkgeworICAgICAgICBpbmZvLnN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIC8vIEZvciBiYXR0ZXJ5LXBvd2VyZWQgZGV2aWNlcywgYWx3
YXlzIHJlcG9ydCBWUDkgYXMgc3VwcG9ydGVkIHdoZW4gcnVubmluZyBvbiBBQyBwb3dlciwKKyAg
ICAvLyBidXQgb25seSBvbiBiYXR0ZXJ5IHdoZW4gdGhlcmUgaXMgYW4gYXR0YWNoZWQgc2NyZWVu
IHdob3NlIHJlc29sdXRpb24gaXMgbGFyZ2UgZW5vdWdoCisgICAgLy8gdG8gc3VwcG9ydCA0SyB2
aWRlby4KKyAgICBpZiAoc3lzdGVtSGFzQUMoKSkgeworICAgICAgICBpbmZvLnN1cHBvcnRlZCA9
IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgaGFzNGtTY3Jl
ZW4gPSBmYWxzZTsKKworICAgIGlmIChzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKSB7Cisg
ICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0U2l6ZShzY3JlZW5TaXplQW5kU2NhbGVGb3JU
ZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+aGVpZ2h0KS5zY2Fs
ZWQoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+c2NhbGUpOworICAgICAgICBoYXM0a1Nj
cmVlbiA9IHJlc29sdXRpb25DYXRlZ29yeShzY3JlZW5TaXplKSA+PSBSZXNvbHV0aW9uQ2F0ZWdv
cnk6OlJfNEs7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChhdXRvJiBzY3JlZW5EYXRhIDog
Z2V0U2NyZWVuUHJvcGVydGllcygpLnNjcmVlbkRhdGFNYXAudmFsdWVzKCkpIHsKKyAgICAgICAg
ICAgIGlmIChyZXNvbHV0aW9uQ2F0ZWdvcnkoc2NyZWVuRGF0YS5zY3JlZW5SZWN0LnNpemUoKS5z
Y2FsZWQoc2NyZWVuRGF0YS5zY2FsZUZhY3RvcikpID49IFJlc29sdXRpb25DYXRlZ29yeTo6Ul80
SykgeworICAgICAgICAgICAgICAgIGhhczRrU2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaGFz
NGtTY3JlZW4pIHsKKyAgICAgICAgaW5mby5zdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVNjcmVlbklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybVNjcmVlbklPUy5tbQppbmRleCBjNjQ2Y2YyNDlmZjIyMjhjNTVkMDgzNWYwNDM0NzU5N2Q0
OTI4MzQ4Li40YTg1ODI5MDg1MGUwZjk3MjA0NTc3MGE5YjUwZGFkYWI1MmI4ZGY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCkBAIC0y
MDAsOCArMjAwLDEwIEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMo
KQogICAgICAgICBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQgPSBXZWJDb3JlOjpzY3JlZW5E
ZXB0aFBlckNvbXBvbmVudChudWxscHRyKTsKICAgICAgICAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4
dGVuZGVkQ29sb3IgPSBXZWJDb3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IobnVsbHB0
cik7CiAgICAgICAgIGJvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBXZWJDb3JlOjpzY3Jl
ZW5IYXNJbnZlcnRlZENvbG9ycygpOworICAgICAgICBib29sIGhkciA9IHNjcmVlblN1cHBvcnRz
SGlnaER5bmFtaWNSYW5nZShudWxscHRyKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBX
ZWJDb3JlOjpzY3JlZW5QUElGYWN0b3IoKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNj
cmVlbkRhdGFNYXAuc2V0KCsrZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxl
UmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVy
Q29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVk
Q29sb3JzIH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsr
ZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwg
Y29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBoZHIsIHNjYWxl
RmFjdG9yIH0pOwogICAgICAgICAKICAgICAgICAgaWYgKHNjcmVlbiA9PSBbUEFMOjpnZXRVSVNj
cmVlbkNsYXNzKCkgbWFpblNjcmVlbl0pCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnBy
aW1hcnlEaXNwbGF5SUQgPSBkaXNwbGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXggOGEwZTBhYWFiMmE5Y2QwNWRjY2RkODY5
MzI1ZDJjMWIxYzVhYmQxMy4uNzY3MDZiZTg4ODZjODk4MmExNjRhMmYyZjJkY2QwZGFjNjYzMTUy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVu
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1h
Yy5tbQpAQCAtMTE3LDYgKzExNyw3IEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblBy
b3BlcnRpZXMoKQogICAgICAgICB1aW50MzJfdCBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9P
cGVuR0xEaXNwbGF5TWFzayhkaXNwbGF5SUQpOwogICAgICAgICBJT1JlZ2lzdHJ5R1BVSUQgZ3B1
SUQgPSAwOwogICAgICAgICBib29sIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IGZh
bHNlOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNjcmVlbi5iYWNraW5nU2NhbGVGYWN0
b3I7CiAKICNpZiBVU0UoTUVESUFUT09MQk9YKQogICAgICAgICBpZiAoUEFMOjppc01lZGlhVG9v
bGJveEZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRT
aG91bGRQbGF5SERSVmlkZW8oKSkKQEAgLTEyNiw3ICsxMjcsNyBAQCBTY3JlZW5Qcm9wZXJ0aWVz
IGNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCkKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAg
ICAgICAgICAgZ3B1SUQgPSBncHVJREZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAg
ICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVu
RGF0YSB7IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVl
bkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENv
bG9yLCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1Jh
bmdlLCBzY3JlZW5Jc01vbm9jaHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAg
c2NyZWVuUHJvcGVydGllcy5zY3JlZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEg
eyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0
aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwg
c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwg
c2NyZWVuSXNNb25vY2hyb21lLCBkaXNwbGF5TWFzaywgZ3B1SUQsIHNjYWxlRmFjdG9yIH0pOwog
CiAgICAgICAgIGlmICghc2NyZWVuUHJvcGVydGllcy5wcmltYXJ5RGlzcGxheUlEKQogICAgICAg
ICAgICAgc2NyZWVuUHJvcGVydGllcy5wcmltYXJ5RGlzcGxheUlEID0gZGlzcGxheUlEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNlOTZiYTc2N2UwYzA1NzU4MGZlMTA1
Y2QyYjMzN2U3YTE1NDJhNTcuLmMyZmE2YzgxNGM0YjBlYjZjY2JiZWNmMTA5NjkwYjVhNjAyNjRk
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMxOSwxMCArMzE5LDYg
QEAKICNpbmNsdWRlICJXZWJYUlRlc3QuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAm
JiBVU0UoTElCV0VCUlRDKQotI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vz
c2luZ1NvZnRMaW5rLmg+Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJOU1Njcm9sbGVySW1w
RGV0YWlscy5oIgpAQCAtMzMxLDEwICszMjcsMTUgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQog
I2luY2x1ZGUgIlN5c3RlbUJhdHRlcnkuaCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5o
IgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KICNpbmNsdWRlIDx3dGYv
c3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYg
VVNFKExJQldFQlJUQykKKyNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktpdC9WaWRlb1Byb2Nlc3Np
bmdTb2Z0TGluay5oPgorI2VuZGlmCisKIHVzaW5nIEpTQzo6Q2FsbERhdGE7CiB1c2luZyBKU0M6
OkNvZGVCbG9jazsKIHVzaW5nIEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOwpAQCAtNjMwLDYgKzYz
MSwxMyBAQCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmICBFTkFCTEUoV0VCX0FVRElPKQogICAgIEF1ZGlvRGVzdGluYXRpb25D
b2NvYTo6Y3JlYXRlT3ZlcnJpZGUgPSBudWxscHRyOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBzZXRPdmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6bnVs
bG9wdCk7CisgICAgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxsb3B0
KTsKKyAgICBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhm
YWxzZSk7CisgICAgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmco
KTsKKyNlbmRpZgogfQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBj
b25zdApAQCAtNTgxOCw2ICs1ODI2LDQ0IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNCYXR0
ZXJ5KCkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQmF0
dGVyeUZvclRlc3RpbmcoYm9vbCBoYXNCYXR0ZXJ5KQoreworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIFdlYkNvcmU6OnNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoaGFzQmF0
dGVyeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYXNCYXR0ZXJ5KTsKKyNlbmRpZgorfQor
Cit2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQUNGb3JUZXN0aW5nKGJvb2wgaGFzQUMpCit7
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNB
Q0ZvclRlc3RpbmcoaGFzQUMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaGFzQUMpOworI2Vu
ZGlmCit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJD
b3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhkaXNh
YmxlZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkaXNhYmxlZCk7CisjZW5kaWYKK30KKwor
dm9pZCBJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZG91Ymxl
IHdpZHRoLCBkb3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0
aW5nKHdpZHRoLCBoZWlnaHQsIHNjYWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdpZHRo
KTsKKyAgICBVTlVTRURfUEFSQU0oaGVpZ2h0KTsKKyAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwor
I2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBT
dHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXkpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBiZWM1OWNiY2MwMThmZDZiMTliZWEy
M2U3OTkwZmNhZGEzNTJlMTZmLi44NDNlZGZhMDQ4MTQ0M2E0MWIxYTEwN2YwMmM5NWYwMDMwOGRm
MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEwMTgsNiArMTAxOCwxMiBA
QCBwdWJsaWM6CiAKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAorICAgIHZv
aWQgc2V0U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRTeXN0
ZW1IYXNBQ0ZvclRlc3RpbmcoYm9vbCk7CisKKyAgICB2b2lkIHNldEhhcmR3YXJlVlA5RGVjb2Rl
ckRpc2FibGVkRm9yVGVzdGluZyhib29sKTsKKyAgICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRT
Y2FsZUZvclRlc3RpbmcoZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisKICAgICBpbnQgcmVhZFBy
ZWZlcmVuY2VJbnRlZ2VyKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSk7
CiAgICAgU3RyaW5nIGVuY29kZWRQcmVmZXJlbmNlVmFsdWUoY29uc3QgU3RyaW5nJiBkb21haW4s
IGNvbnN0IFN0cmluZyYga2V5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmlu
ZGV4IDg4YjQ2MWU2MTNlNTgyMjI2ODNkOWFhYTIyYjQ2YTNkYmYyZWU1YzMuLmU3ZjY2NTNjYTA4
NGM0MjVhMTljMWFkYTdiNzcwZWUwNWI4YjY3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKQEAgLTkzMiw2ICs5MzIsMTIgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsK
IAogICAgIGJvb2xlYW4gc3lzdGVtSGFzQmF0dGVyeSgpOwogCisgICAgdm9pZCBzZXRTeXN0ZW1I
YXNCYXR0ZXJ5Rm9yVGVzdGluZyhib29sZWFuIGhhc0JhdHRlcnkpOworICAgIHZvaWQgc2V0U3lz
dGVtSGFzQUNGb3JUZXN0aW5nKGJvb2xlYW4gaGFzQUMpOworCisgICAgdm9pZCBzZXRIYXJkd2Fy
ZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbGVhbiBkaXNhYmxlZCk7CisgICAgdm9p
ZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKGRvdWJsZSB3aWR0aCwgZG91Ymxl
IGhlaWdodCwgZG91YmxlIHNjYWxlKTsKKwogICAgIGxvbmcgcmVhZFByZWZlcmVuY2VJbnRlZ2Vy
KERPTVN0cmluZyBkb21haW4sIERPTVN0cmluZyBrZXkpOwogICAgIERPTVN0cmluZyBlbmNvZGVk
UHJlZmVyZW5jZVZhbHVlKERPTVN0cmluZyBkb21haW4sIERPTVN0cmluZyBrZXkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCmluZGV4IDlhNDM0OWRkNDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMuLjIyZmQ0
YzhlM2UwOGQ0ZGJhM2UyNzI0ZDE5MWI5MTYwOTIwNzFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNzAs
NiArMTcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29k
ZXIgPDwgbWFwREJFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0
ZXJ5OworICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQUM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC00NTksNiArNDYwLDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0
CiAgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
cGFyYW1ldGVycy5zeXN0ZW1IYXNCYXR0ZXJ5ID0gV1RGTW92ZSgqc3lzdGVtSGFzQmF0dGVyeSk7
CisKKyAgICBPcHRpb25hbDxib29sPiBzeXN0ZW1IYXNBQzsKKyAgICBkZWNvZGVyID4+IHN5c3Rl
bUhhc0FDOworICAgIGlmICghc3lzdGVtSGFzQUMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0FDID0gV1RGTW92ZSgqc3lzdGVtSGFzQUMpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGFhMWI3YWExZmI3NmJjMDdk
YzgwNmZkMDJkM2RkMWNhMTlmYjRlMGIuLmM2NzRhM2I3MTU1YjdmOGEzMGIwNmVhYTBmM2QwNjBk
Yjk2YTNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgT3B0aW9uYWw8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHN5
c3RlbUhhc0JhdHRlcnkgeyBmYWxzZSB9OworICAgIGJvb2wgc3lzdGVtSGFzQUMgeyBmYWxzZSB9
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZmJjMWVm
MjI4MTc3YWY3MzE3MmJjNDRlNzNjZjg5MzAzZDkzNzQ2Mi4uZGM1MDE5NWUwYzcwYmUxMWRjZTlj
MmM5NmY4ZTcxZGZlOThmMzY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBp
Y3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgor
I2ltcG9ydCA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CkBAIC00MDcsNiArNDA4LDcg
QEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBzeXN0ZW1IYXNCYXR0ZXJ5KCk7CisgICAg
cGFyYW1ldGVycy5zeXN0ZW1IYXNBQyA9IHN5c3RlbUhhc0FDKCk7CiAKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgbWFwREJIYW5kbGU7CiAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5sc2QubWFwZGIiX3MsIFdURjo6bnVs
bG9wdCwgbWFwREJIYW5kbGUsIFNhbmRib3hFeHRlbnNpb246OkZsYWdzOjpOb1JlcG9ydCkpCkBA
IC02OTcsNiArNjk5LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0
aW9uT2JzZXJ2ZXJzKCkKICAgICB9XTsKICNlbmRpZgogI2VuZGlmCisKKyAgICBtX3Bvd2VyU291
cmNlTm90aWZpZXIgPSBXVEY6Om1ha2VVbmlxdWU8V2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmll
cj4oW3RoaXNdIChib29sIGhhc0FDKSB7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6UG93ZXJTb3VyY2VEaWRDaGFuZ2UoaGFzQUMpKTsKKyAgICB9KTsK
IH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVy
cygpCkBAIC03MjYsNiArNzMyLDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5v
dGlmaWNhdGlvbk9ic2VydmVycygpCiAjZW5kaWYKIAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0
KCldOworCisgICAgbV9wb3dlclNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGlj
IENGVVJMU3RvcmFnZVNlc3Npb25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmUzNTQyZWMxYmU5Njdl
NzJiOGU2NmRlMzM5NmVlODYwOTczZmQ0ZS4uYjcwMjVjMGEyMjkxYmY1ZjQ5MTFhYjMwMTgxMWE0
NzQxN2E5NThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtMTI3LDYgKzEyNyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJW
ZXJzaW9uQ2hlY2tzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCmluZGV4IDlmMDY1MDJkZTBlM2M0NTZmMzA1M2M0MmVkYzk4NTFkMjI5Y2Rl
OWMuLjNhMzQ2ZDc3MTI3MGNjZTk3YWQ4MGU1NjY1ODg0OGM1OGY2NzQ4NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtOTQsNiArOTQsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgRXZlbnRN
YWtlc0dhbWVwYWRzVmlzaWJsZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOworI2lm
IFBMQVRGT1JNKENPQ09BKQorY2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllcjsKKyNlbmRpZgogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTcxMCw2ICs3MTMsNyBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UG93
ZXJTb3VyY2VOb3RpZmllcj4gbV9wb3dlclNvdXJjZU5vdGlmaWVyOwogICAgIFJldGFpblB0cjxO
U09iamVjdD4gbV9hY3RpdmF0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBt
X2FjY2Vzc2liaWxpdHlFbmFibGVkT2JzZXJ2ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDA2MzMyNTBhYTFjYWQ1OTRmOTQ5YjU2YzAxNDVkM2NhZjZi
NzgyNzQuLjhkMmJhMjZlNDE0YmY1YWNjYWRlMzU2NTQ2NmUyMGRkMTU3NGFlYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzA3LDYgKzMwNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7
CiAgICAgdm9pZCB1bmJsb2NrUHJlZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlQXJyYXkmJik7CiAjZW5kaWYKKyAgICB2b2lkIHBvd2VyU291cmNlRGlkQ2hhbmdlKGJvb2wp
OwogI2VuZGlmCiAKICAgICBib29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDY5MGU0ZmE1ZDZjOWFhYjVkZWM2MGQxMDAxNjA2ODc2MGE3NjFkZDAuLmNkYTA1Yjk0ZmYyYWRi
NDI0NzA1OTcyMzQ0NDJhZjM5MDM3ZDdiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNzIsNiArMTcyLDcgQEAgbWVzc2FnZXMg
LT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBOb3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3Ry
aW5nPiBlbmNvZGVkVmFsdWUpCiAgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktpdDo6
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYKKyAgICBQ
b3dlclNvdXJjZURpZENoYW5nZShib29sIGhhc0FDKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShH
VEspICYmICFVU0UoR1RLNCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDMwZmYwNGY4NTA0ZGUwZWE5Njk1NDZlMTdkNmI0Mjcz
ZmRjY2VhNzQuLjRlMzkyMjdlZjEyMWMyZDRlYWY1ZGFjMWUyMjVjYWRiNzNmNTFlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpA
QCAtMzEyLDYgKzMxMiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKICAgICAK
ICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7Cisg
ICAgc2V0U3lzdGVtSGFzQUMocGFyYW1ldGVycy5zeXN0ZW1IYXNBQyk7CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOwpAQCAt
MTAyMiw2ICsxMDIzLDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1NlcnZpY2VzUmVxdWly
ZWRCeUFjY2Vzc2liaWxpdHkoY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6CiAgICAgcmVnaXN0ZXJX
aXRoQWNjZXNzaWJpbGl0eSgpOwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlk
Q2hhbmdlKGJvb2wgaGFzQUMpCit7CisgICAgc2V0U3lzdGVtSGFzQUMoaGFzQUMpOworfQorCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjVlMTc0OGJjZTc4NWViYTM3ZmZmMzNm
MTdmZGQ3N2ZkYWE0OGIwNS4uMWRhMmYyNGU4ZmNmN2JhZmEyZGMwOTIyNDMwY2RkYTQ0NThmYTU4
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVzIHN1
cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3Zw
OS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy5odG1sOiBB
ZGRlZC4KKwogMjAyMC0wNy0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBGbGFzaGVzIG9mIGluY29ycmVjdCBzY3JvbGwgcG9zaXRpb24gd2hlbiB6
b29taW5nIG9uIHF1aXAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRp
YS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2Rp
bmdJbmZvLXN3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjAxNWI0NmQxYzUxZTkwNDgyOTkz
MGIxZjQ4Nzc2YmE4ZTZhOGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1JVTihpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQmF0dGVy
eUZvclRlc3RpbmcodHJ1ZSkpCitSVU4oaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9yVGVzdGlu
Zyh0cnVlKSkKK1JVTihpbnRlcm5hbHMuc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JU
ZXN0aW5nKHRydWUpKQorUlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JU
ZXN0aW5nKDEwMjQsIDc2OCwgMSkpCisKK1Rlc3QgdGhhdCA0ayBAIDMwZnBzIGlzIHN1cHBvcnRl
ZCwgc21vb3RoLCBidXQgbm90IHBvd2VyRWZmaWNpZW50CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRv
ci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywg
dmlkZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCIn
LCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTog
MzAgfX0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9
PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBP
SworRVhQRUNURUQgKGluZm8uc21vb3RoID09ICd0cnVlJykgT0sKKworVGVzdCB0aGF0IDRrIEAg
NjBmcHMgaXMgc3VwcG9ydGVkLCBidXQgbm90IHNtb290aCBvciBwb3dlckVmZmljaWVudAorUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlw
ZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2Rl
Y3M9InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRo
OiAzMTgwLCBmcmFtZXJhdGU6IDYwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RF
RCAoaW5mby5zdXBwb3J0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZp
Y2llbnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAnZmFsc2UnKSBP
SworCitUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBiYXR0ZXJ5
IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uCitSVU4oaW50ZXJuYWxzLnNl
dFN5c3RlbUhhc0FDRm9yVGVzdGluZyhmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5t
ZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlk
ZW86IHsgY29udGVudFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBo
ZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAg
fX0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAn
ZmFsc2UnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNlJykgT0sK
K0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAnZmFsc2UnKSBPSworCitUZXN0IHRoYXQgU1cgVlA5
IGRlY29kZXIgaXMgc3VwcG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4gaXMgYXQg
bGVhc3QgNGsgcmVzb2x1dGlvbgorUlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2Nh
bGVGb3JUZXN0aW5nKDM4NDAsIDIxNjAsIDEpKQorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVk
aWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVv
OiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9InZwMDkuMDAuNDEuMDgiJywgaGVp
Z2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19
KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBwb3J0ZWQgPT0gJ3Ry
dWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNlJykgT0sKK0VY
UEVDVEVEIChpbmZvLnNtb290aCA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5
LWRlY29kaW5nSW5mby1zdy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21l
ZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2M2
OGQ3N2FkY2FjM2ZhNmZjMTliNmE5YWI0YTZiZTU0YzNiOWEzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNv
ZGluZ0luZm8tc3cuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Li4vLi4vLi4vLi4vbWVkaWEvdmlkZW8tdGVzdC5q
cz48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFy
IHByb21pc2U7CisgICAgdmFyIGluZm87CisKKyAgICBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQor
ICAgIHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWls
VGVzdCgiSW50ZXJuYWxzIGlzIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuIikKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhh
c0JhdHRlcnlGb3JUZXN0aW5nKHRydWUpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5
c3RlbUhhc0FDRm9yVGVzdGluZyh0cnVlKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRI
YXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcodHJ1ZSknKTsKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygxMDI0LCA3Njgs
IDEpJyk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRl
KCdUZXN0IHRoYXQgNGsgQCAzMGZwcyBpcyBzdXBwb3J0ZWQsIHNtb290aCwgYnV0IG5vdCBwb3dl
ckVmZmljaWVudCcpOworICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBh
YmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNv
bnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6
IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIp
OworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
aW5mby5zbW9vdGgnLCB0cnVlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAg
ICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCA0ayBAIDYwZnBzIGlzIHN1cHBvcnRlZCwgYnV0IG5v
dCBzbW9vdGggb3IgcG93ZXJFZmZpY2llbnQnKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBu
YXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNv
dXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAw
LjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZy
YW1lcmF0ZTogNjAgfX0pOyIpOworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShw
cm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zbW9vdGgnLCBmYWxzZSk7CisKKyAgICAgICAgY29uc29s
ZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgU1cgVlA5IGRlY29k
ZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0
ayByZXNvbHV0aW9uJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9y
VGVzdGluZyhmYWxzZSknKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlh
Q2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzog
eyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwiJywgaGVp
Z2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19
KTsiKTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnaW5mby5wb3dlckVmZmljaWVudCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCdpbmZvLnNtb290aCcsIGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOwor
ICAgICAgICBjb25zb2xlV3JpdGUoJ1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2RlciBpcyBzdXBwb3J0
ZWQgb24gYmF0dGVyeSBwb3dlciB3aGVuIHNjcmVlbiBpcyBhdCBsZWFzdCA0ayByZXNvbHV0aW9u
Jyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRl
c3RpbmcoMzg0MCwgMjE2MCwgMSknKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9y
Lm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2
aWRlbzogeyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwi
JywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6
IDMwIH19KTsiKTsKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVlKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCdpbmZvLnBvd2VyRWZmaWNpZW50JywgZmFsc2UpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ2luZm8uc21vb3RoJywgdHJ1ZSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiIC8+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404446</attachid>
            <date>2020-07-16 09:21:20 -0700</date>
            <delta_ts>2020-07-16 13:49:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-214316-20200716092119.patch</filename>
            <type>text/plain</type>
            <size>61894</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNjN2E4NTY0OTc0NDgz
YTVhODU4Zjk5ZjQ3ODQxY2YxMWQwOTViZS4uNzhkNWNkMjYxOWFjMDE1NTIwMzFkY2RjNWNjNTNl
NjFhZDRkNGY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIwLTA3LTE0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlh
Q2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL21hYy9tZWRpYS9t
ZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0bWwKKworICAgICAgICBBZGQg
c29tZSBmb3VuZGF0aW9uYWwgc3VwcG9ydCBmb3IgU1cgVlA5LCB3aGljaCBkdWUgdG8gcG9saWN5
IGRlY2lzaW9ucyB3aWxsIG5lZWQgaW5mb3JtYXRpb24KKyAgICAgICAgYm90aCBvbiB0aGUgc3lz
dGVtIGJhdHRlcnkgc3RhdHVzIGFuZCB0aGUgcG93ZXIgYWRhcHRlciBzdGF0dXMsIGFuZCB0aGVz
ZSBuZWVkIHRvIGJlIHNoaXBwZWQKKyAgICAgICAgaW50byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
IGZyb20gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBBZGQgc29tZSBJbnRlcm5hbCBvdmVycmlk
ZSBzZXR0aW5ncyB0byBhbGxvdyB0aGUgcG9saWNpZXMgdG8gYmUgZWZmZWN0aXZlbHkgdGVzdGVk
IHRocm91Z2gKKyAgICAgICAgTGF5b3VUZXN0cy4gVGhpcyBpbmNsdWRlcyBvdmVycmlkZXMgZm9y
IHN5c3RlbSBiYXR0ZXJ5IGFuZCBBQyBzdGF0ZSwgYXMgd2VsbCBhcyBvdmVycmlkZXMgZm9yCisg
ICAgICAgIHNjcmVlbiBzaXplIGFuZCByZXNvbHV0aW9uLgorCisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0U2NyZWVuUHJvcGVydGllcyk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmg6CisgICAgICAgIChXZWJD
b3JlOjpTY3JlZW5EYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVu
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlm
aWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBvd2VyU291cmNlTm90aWZpZXI6OlBvd2VyU291cmNlTm90aWZp
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcjo6flBvd2VyU291cmNl
Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcjo6bm90aWZ5
UG93ZXJTb3VyY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0
ZXJ5Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnkpOgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRT
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRTeXN0ZW1IYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpzeXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRl
U3lzdGVtSGFzQUNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dmlkZW9Db2RlY1R5cGVGcm9tUkZDNDI4MVR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlTWVkaWFQbGF5ZXJEZWNvZGluZ0NvbmZpZ3VyYXRpb25Db2NvYSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JU
ZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNj
YWxlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVZQUGFy
YW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Y29sbGVjdFNjcmVlblByb3BlcnRpZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxl
Y3RTY3JlZW5Qcm9wZXJ0aWVzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0JhdHRlcnkpOgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpzZXRTeXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNl
dEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAt
MDctMTUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBoYW5k
bGluZyBvZiBvdXQgb2YgbWVtb3J5IGhhbmRsaW5nIHdoaWxlIGFkZGluZyBhIHdvcmtsZXQgbW9k
dWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZTY4OTE2ZTRkMjg2N2U4M2Y2YWYxNzM1MTAzNmYy
ZjczOGVlNTc0MC4uZDFmNGVkNzI2NWJlZWIyMTI0NjM0YWJmNTI3YjEzOWJjZDZlMDNjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMTQgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZGQgTWVkaWFDYXBhYmls
aXRpZXMgc3VwcG9ydCBmb3IgU1cgVlA5IGRlY29kZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMTYKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaDoKKwog
MjAyMC0wNy0xNSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEJ1aWxk
aW5nIEFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJIHdpdGggdGhlIG1hY09TIEJpZyBTdXIgcHVibGlj
IFNESyBmYWlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNjc3MWE5OGQ2NTk0YzMzYmRhM2JkMTdkNTY3YjZlODhh
MjU4NDUyLi5iMDk5NzM5NDA3ZjZkZGFhMWNmYmJlY2IzNjVhMjdiYjg5YWUxNGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQg
Zm9yIFNXIFZQOSBkZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgIFBhc3MgdGhlIHN5c3RlbSBBQyBzdGF0ZSB0byB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIGF0IGNyZWF0aW9uIHRpbWUsIGFuZCBhbHNvIGNyZWF0ZQorICAgICAgICBhIHBvd2VyIHN0
YXRlIGxpc3RlbmVyIHNvIHRoZSBXZWJQcm9jZXNzIGNhbiBiZSB1cGRhdGVkIGR5bmFtaWNhbGx5
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2Jz
ZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlkQ2hhbmdlKToKKwogMjAyMC0w
NC0zMCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2Ug
ZGF0YSBjb3BpZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBjdXN0b20gVVJMIHNjaGVtZSBo
YW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1BT
TGliU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJLmgK
aW5kZXggNzAyYjk1NjYyMGY1MTRlNWIwMjdmOWY5ZGJmZjdiZDhjMWYwZGViOC4uNDk5OWI4ZWIy
NjRjZDE2ZDg0NGRiNzM4NDY2MTA1NGQ3NmEwNGFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvSU9QU0xpYlNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2NvY29hL0lPUFNMaWJTUEkuaApAQCAtMzYsNiArMzYsOSBAQAogCiAjZGVmaW5l
IGtJT1BTVHlwZUtleSAiVHlwZSIKICNkZWZpbmUga0lPUFNJbnRlcm5hbEJhdHRlcnlUeXBlICJJ
bnRlcm5hbEJhdHRlcnkiCisjZGVmaW5lIGtJT1BTUG93ZXJTb3VyY2VTdGF0ZUtleSAiUG93ZXIg
U291cmNlIFN0YXRlIgorI2RlZmluZSBrSU9QU0FDUG93ZXJWYWx1ZSAiQUMgUG93ZXIiCisjZGVm
aW5lIGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UgImNvbS5hcHBsZS5zeXN0ZW0ucG93ZXJzb3VyY2Vz
LnNvdXJjZSIKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDQ0ZWEwOGY2
NDIxMjM2MmRjMzExMzFkODQ2N2FlZTI3NTE3NGFmN2UuLjFkN2YyMDk4NjdjMWQ0ZTBhNDI3NDY5
NzY1NWY4ZDFiMTM2ZGFkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjQxLDYgKzI0
MSw3IEBAIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQogcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1QYXN0
ZWJvYXJkQ29jb2EubW0KIHBsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50Lm1tCitwbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJjZU5vdGlmaWVyLm1tCiBwbGF0Zm9y
bS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbQogcGxhdGZvcm0vY29jb2EvU2Nyb2xsU25hcEFuaW1hdG9yU3Rh
dGUubW0KQEAgLTM0OSw2ICszNTAsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JbnRSZWN0
Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnlDb2NvYS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1N5c3RlbUZvbnREYXRh
YmFzZUNvcmVUZXh0LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVGV4dFRyYWNrUmVwcmVz
ZW50YXRpb25Db2NvYS5tbQorcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29j
b2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJE
ZWxlZ2F0ZS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViQ29yZUNBTGF5ZXJFeHRyYXMu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5t
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE2ZTg3YjA1YTk2YzQ1YWFkZjEyMTJmYTNhN2RmZDFlMThjNTZiNzcuLjkzZTIyMGIy
Yjg5MDZiYTMyZWE3ZWUwODUzNzM4OWQ3YzQ3YzY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyMDAsNiArNDIwMCw3IEBA
CiAJCUNEQzY5REQ2MTYzMjAyNkMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlbldhcm5pbmdW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM2
OURENDE2MzIwMjZDMDA3QzM4REYgLyogV2ViQ29yZUZ1bGxTY3JlZW5XYXJuaW5nVmlldy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQzY5RERB
MTYzNzFGRDQwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNjlERDgxNjM3
MUZEMzAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RDNzM0MTUxOTc3
ODk2RDAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RDNzM0MTMxOTc3ODk2QzAwNDZCRkM1IC8qIENBUmluZ0J1
ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUNEQzc0NzA0MjRCRTJGQzcwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM3NDcwMDI0QkUyNjc5
MDBDMTg2OEIgLyogUG93ZXJTb3VyY2VOb3RpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQzhCNUEyMTgwNDYzNDcwMDE2RTY4NSAvKiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVBMDE4MDQ2MzQ3MDAxNkU2ODUgLyog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tICovOyB9OwogCQlDREM4QjVB
MzE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREM4QjVB
MTE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
LmggKi87IH07CiAJCUNEQzhCNUE2MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZh
dGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RDOEI1QTQxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0gKi87IH07CkBAIC0xNDEwNyw2ICsxNDEwOCw4IEBACiAJCUNENjQxRUIxMTgxOEY1RUQwMEVF
NEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFTb3VyY2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNENjQxRUIyMTgxOEY1RUQwMEVFNEM0MSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdXJjZUJ1ZmZlclByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2NDFFQzcxODFFRDYwMTAwRUU0QzQxIC8qIE1lZGlh
U2FtcGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENkZFNUI3MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2Nv
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWUDlVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRDZGRTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWUDlVdGlsaXRpZXNDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWUDlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWUDlVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDcyMEI0NzIyNjgyQzdFMDAwNDdGREUgLyogSVNPRmFpclBsYXlTdHJl
YW1pbmdQc3NoQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElTT0ZhaXJQbGF5U3RyZWFtaW5n
UHNzaEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDI4Myw2ICsxNDI4
Niw4IEBACiAJCUNEQzY5REQ5MTYzNzFGRDMwMDdDMzhERiAvKiBXZWJDb3JlRnVsbFNjcmVlblBs
YWNlaG9sZGVyVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDREM3MzQxMjE5Nzc4OTZDMDA0NkJGQzUgLyogQ0FSaW5nQnVmZmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENBUmluZ0J1ZmZlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQzczNDEzMTk3Nzg5NkMwMDQ2QkZDNSAvKiBD
QVJpbmdCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0FSaW5nQnVm
ZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQzc0NzAwMjRCRTI2NzkwMEMx
ODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvd2VyU291cmNl
Tm90aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RDNzQ3MDEyNEJFMjY3
OTAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQb3dlclNvdXJjZU5vdGlmaWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REM4QjVBMDE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREM4QjVBMTE4MDQ2MzQ3MDAxNkU2ODUgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREM4QjVBNDE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU291
cmNlUHJpdmF0ZUFWRk9iakMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzYz
MCw2ICsyMzYzNSw4IEBACiAJCQkJQ0RBMjlBMEExQ0JEOUE3NDAwOTAxQ0NGIC8qIFBsYXliYWNr
U2Vzc2lvbk1vZGVsLmggKi8sCiAJCQkJQ0RBMjlBMEQxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXli
YWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50LmggKi8sCiAJCQkJQ0RBMjlBMEMxQ0JEOUNGRTAw
OTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tICovLAorCQkJCUNE
Qzc0NzAwMjRCRTI2NzkwMEMxODY4QiAvKiBQb3dlclNvdXJjZU5vdGlmaWVyLmggKi8sCisJCQkJ
Q0RDNzQ3MDEyNEJFMjY3OTAwQzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIubW0gKi8sCiAJ
CQkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0Nv
Y29hLm1tICovLAogCQkJCTFBQTg0RjAzMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250cm9s
bGVyLmggKi8sCiAJCQkJMUFBODRGMDIxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xs
ZXIubW0gKi8sCkBAIC0yNTc0NCwxMSArMjU3NTEsMTEgQEAKIAkJCQkwNzZFMTFCRTFGNjgzRTBE
MDAxNzczOTUgLyogVHJhY2tQcml2YXRlQmFzZS5jcHAgKi8sCiAJCQkJQkU5MTNEN0YxODFFRjhF
NTAwRENCMDlFIC8qIFRyYWNrUHJpdmF0ZUJhc2UuaCAqLywKIAkJCQlFNEFGQ0ZBNDBEQUYyOUEz
MDBGNUY1NUMgLyogVW5pdEJlemllci5oICovLAotCQkJCUNENkZFNUJBMjRCQ0U3QjYwMDlGQ0RB
NCAvKiBWUDlVdGlsaXRpZXMuaCAqLywKLQkJCQlDRDZGRTVCQjI0QkNFN0I2MDA5RkNEQTQgLyog
VlA5VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkwRjVBNTdDQTIyOUIxOEFFMDAyNUVEQTkgLyogVmVs
b2NpdHlEYXRhLmNwcCAqLywKIAkJCQkwRjFBMEMzNjIyOUE0ODE4MDBEMzdBREIgLyogVmVsb2Np
dHlEYXRhLmggKi8sCiAJCQkJQkVGMjlFRUExNzE1REQwOTAwQzRCNEM5IC8qIFZpZGVvVHJhY2tQ
cml2YXRlLmggKi8sCisJCQkJQ0Q2RkU1QkIyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGll
cy5jcHAgKi8sCisJCQkJQ0Q2RkU1QkEyNEJDRTdCNjAwOUZDREE0IC8qIFZQOVV0aWxpdGllcy5o
ICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggKi8sCiAJ
CQkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRoSXRlcmF0b3IuY3BwICovLAogCQkJ
CTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggKi8sCkBAIC0yNTg4
Niw2ICsyNTg5Myw4IEBACiAJCQkJRTRFOEI0RUEyMTZCNzlFNTAwQjg4MzREIC8qIFN5c3RlbUZv
bnREYXRhYmFzZUNvcmVUZXh0LmggKi8sCiAJCQkJNTI2NzI0RjIxQ0IyRkRGNjAwNzU5NzREIC8q
IFRleHRUcmFja1JlcHJlc2VudGF0aW9uQ29jb2EuaCAqLywKIAkJCQk1MjY3MjRGMTFDQjJGREY2
MDA3NTk3NEQgLyogVGV4dFRyYWNrUmVwcmVzZW50YXRpb25Db2NvYS5tbSAqLywKKwkJCQlDRDZG
RTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EuaCAqLywKKwkJCQlDRDZG
RTVCODI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EubW0gKi8sCiAJCQkJMkQz
RUY0NDQxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0
ZS5oICovLAogCQkJCTJEM0VGNDQ1MTkxNzkxNUMwMDAzNDE4NCAvKiBXZWJBY3Rpb25EaXNhYmxp
bmdDQUxheWVyRGVsZWdhdGUubW0gKi8sCiAJCQkJMkQzRUY0NDYxOTE3OTE1QzAwMDM0MTg0IC8q
IFdlYkNvcmVDQUxheWVyRXh0cmFzLmggKi8sCkBAIC0zMjY0MCw2ICszMjY0OSw3IEBACiAJCQkJ
QTE0OTc4NzExQUJBRjNBNTAwQ0VGN0U0IC8qIFBsYXRmb3JtQ29udGVudEZpbHRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1Qzc2MkIxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3JtRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTI2NjAxRUJGMTRCM0I5QUQwMDEyQzBGRSAvKiBQbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RDNzQ3MDQyNEJFMkZDNzAw
QzE4NjhCIC8qIFBvd2VyU291cmNlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQUE0
ODcwMTRBMDUyNTMwMDg4RkFDNCAvKiBQbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFj
cm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTVCRTE5NTFENTRGNUZCMDBERDdDNjggLyogUGxh
dGZvcm1HYW1lcGFkLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtU2NyZWVuLmNwcAppbmRleCA5YTBkOGY1YzU3ZjU4NjQ0NWY2OTkwODM5NWU0YmMxMDdj
NmIwNjcyLi5iYTUwYjY4OGFiNmQwYmFlNWQxOTlmYTBiYWM0YjdlMjAwNGJhZjgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uY3BwCkBAIC0zOCw2ICszOCwxMSBA
QCBzdGF0aWMgU2NyZWVuUHJvcGVydGllcyYgc2NyZWVuUHJvcGVydGllcygpCiAgICAgcmV0dXJu
IHNjcmVlblByb3BlcnRpZXM7CiB9CiAKK2NvbnN0IFNjcmVlblByb3BlcnRpZXMmIGdldFNjcmVl
blByb3BlcnRpZXMoKQoreworICAgIHJldHVybiBzY3JlZW5Qcm9wZXJ0aWVzKCk7Cit9CisKIFBs
YXRmb3JtRGlzcGxheUlEIHByaW1hcnlTY3JlZW5EaXNwbGF5SUQoKQogewogICAgIHJldHVybiBz
Y3JlZW5Qcm9wZXJ0aWVzKCkucHJpbWFyeURpc3BsYXlJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVNjcmVlbi5oCmluZGV4IGI5MTNhZGQ2MjY5OWVmM2RkNzFiMGZiNmU3YzFmNThk
NzZiN2RiOTIuLjM3MzgzNmYwNTg4MzgxODUxNTc1ZjZjNjVhYTgzYzRjNWZhYjQwYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaApAQCAtOTQsNiArOTQsNyBAQCBz
dHJ1Y3QgU2NyZWVuRGF0YTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIFNjcmVlblByb3BlcnRpZXMg
Y29sbGVjdFNjcmVlblByb3BlcnRpZXMoKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2NyZWVu
UHJvcGVydGllcyhjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJik7Citjb25zdCBTY3JlZW5Qcm9wZXJ0
aWVzJiBnZXRTY3JlZW5Qcm9wZXJ0aWVzKCk7CiBjb25zdCBTY3JlZW5EYXRhKiBzY3JlZW5EYXRh
KFBsYXRmb3JtRGlzcGxheUlEIHNjcmVlbmRpc3BsYXlJRCk7CiBXRUJDT1JFX0VYUE9SVCBQbGF0
Zm9ybURpc3BsYXlJRCBwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKaW5kZXggZDUwNmVmYmQxYmNhODA2OThj
YTdmYjRjY2Y0YjNkZTczODY0YTViOS4uN2ZkYjgyZDk5NTVkZTg1ZWM2ODg1ZTI4MDhlNDQxZjRm
OWQ3MjZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVy
dGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMuaApA
QCAtNTEsNiArNTEsMTAgQEAgc3RydWN0IFNjcmVlbkRhdGEgewogICAgIElPUmVnaXN0cnlHUFVJ
RCBncHVJRCB7IDAgfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGZsb2F0IHNjYWxlRmFjdG9yIHsgMSB9OworI2VuZGlmCisKICAgICBl
bnVtIGNsYXNzIENvbG9yU3BhY2VUeXBlIDogdWludDhfdCB7IE5vbmUsIE5hbWUsIERhdGEgfTsK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPFNjcmVlbkRhdGE+
IGRlY29kZShEZWNvZGVyJik7CkBAIC05OCw2ICsxMDIsMTAgQEAgdm9pZCBTY3JlZW5EYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNjcmVlbklzTW9u
b2Nocm9tZSA8PCBkaXNwbGF5TWFzayA8PCBncHVJRDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGVuY29kZXIgPDwgc2NhbGVGYWN0b3I7
CisjZW5kaWYKKwogICAgIGlmIChjb2xvclNwYWNlKSB7CiAgICAgICAgIC8vIFRyeSB0byBlbmNv
ZGUgdGhlIG5hbWUuCiAgICAgICAgIGlmIChhdXRvIG5hbWUgPSBhZG9wdENGKENHQ29sb3JTcGFj
ZUNvcHlOYW1lKGNvbG9yU3BhY2UuZ2V0KCkpKSkgewpAQCAtMTc2LDYgKzE4NCwxMyBAQCBPcHRp
b25hbDxTY3JlZW5EYXRhPiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE9wdGlvbmFsPGZsb2F0PiBzY2FsZUZhY3RvcjsK
KyAgICBkZWNvZGVyID4+IHNjYWxlRmFjdG9yOworICAgIGlmICghc2NhbGVGYWN0b3IpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisjZW5kaWYKKwogICAgIENvbG9yU3BhY2VUeXBlIGRh
dGFUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YVR5cGUpKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtMjE5LDcgKzIzNCwxMCBAQCBPcHRpb25hbDxTY3JlZW5EYXRh
PiBTY3JlZW5EYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICNpZiBQTEFURk9STShNQUMp
CiAgICAgICAgIFdURk1vdmUoKnNjcmVlbklzTW9ub2Nocm9tZSksCiAgICAgICAgIFdURk1vdmUo
KmRpc3BsYXlNYXNrKSwKLSAgICAgICAgV1RGTW92ZSgqZ3B1SUQpCisgICAgICAgIFdURk1vdmUo
KmdwdUlEKSwKKyNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyAgICAgICAgV1RGTW92ZSgqc2NhbGVGYWN0b3IpLAogI2VuZGlmCiAgICAgfSB9OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3Rp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmll
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlkZTk2ZmY1ZTk4YWEzYzA4ZTJiZGM2NGMwZDAyNjQwM2FmMGJjYjgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNv
dXJjZU5vdGlmaWVyLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgdXNpbmcgUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrID0gV1RGOjpG
dW5jdGlvbjx2b2lkKGJvb2wgaGFzQUMpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQ
b3dlclNvdXJjZU5vdGlmaWVyKFBvd2VyU291cmNlTm90aWZpZXJDYWxsYmFjayYmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB+UG93ZXJTb3VyY2VOb3RpZmllcigpOworCisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc0xvd1Bvd2VyTW9kZUVuYWJsZWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2
b2lkIG5vdGlmeVBvd2VyU291cmNlQ2hhbmdlZCgpOworCisgICAgT3B0aW9uYWw8aW50PiBtX3Rv
a2VuSUQ7CisgICAgUG93ZXJTb3VyY2VOb3RpZmllckNhbGxiYWNrIG1fY2FsbGJhY2s7Cit9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Qb3dlclNvdXJj
ZU5vdGlmaWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VO
b3RpZmllci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTQ4MDhmNTk3ZmJmMGY4ZDg0OTE4YzVkNTA2ZDQ4YTMy
YzQ2ZjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UG93ZXJTb3VyY2VOb3RpZmllci5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBvd2VyU291cmNlTm90aWZpZXIuaCIKKworI2lt
cG9ydCAiU3lzdGVtQmF0dGVyeS5oIgorI2ltcG9ydCA8bm90aWZ5Lmg+CisjaW1wb3J0IDxwYWwv
c3BpL2NvY29hL0lPUFNMaWJTUEkuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQb3dlclNv
dXJjZU5vdGlmaWVyOjpQb3dlclNvdXJjZU5vdGlmaWVyKFBvd2VyU291cmNlTm90aWZpZXJDYWxs
YmFjayYmIGNhbGxiYWNrKQorICAgIDogbV9jYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSkKK3sK
KyAgICBpbnQgdG9rZW4gPSAwOworICAgIGF1dG8gc3RhdHVzID0gbm90aWZ5X3JlZ2lzdGVyX2Rp
c3BhdGNoKGtJT1BTTm90aWZ5UG93ZXJTb3VyY2UsICZ0b2tlbiwgZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXihpbnQpIHsKKyAgICAgICAgbm90aWZ5UG93ZXJTb3VyY2VDaGFuZ2VkKCk7Cisg
ICAgfSk7CisgICAgaWYgKHN0YXR1cyA9PSBOT1RJRllfU1RBVFVTX09LKQorICAgICAgICBtX3Rv
a2VuSUQgPSB0b2tlbjsKK30KKworUG93ZXJTb3VyY2VOb3RpZmllcjo6flBvd2VyU291cmNlTm90
aWZpZXIoKQoreworICAgIGlmIChtX3Rva2VuSUQpCisgICAgICAgIG5vdGlmeV9jYW5jZWwoKm1f
dG9rZW5JRCk7Cit9CisKK3ZvaWQgUG93ZXJTb3VyY2VOb3RpZmllcjo6bm90aWZ5UG93ZXJTb3Vy
Y2VDaGFuZ2VkKCkKK3sKKyAgICByZXNldFN5c3RlbUhhc0FDKCk7CisgICAgaWYgKG1fY2FsbGJh
Y2spCisgICAgICAgIG1fY2FsbGJhY2soc3lzdGVtSGFzQUMoKSk7Cit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaAppbmRleCA1YWRhODllNjRm
YWM0NzU2NWFmM2IxMmJhMzIxZTExMmIzYjY3NDYyLi5hZjMwZTgyYjk5NGZhY2YzNmM0NGQ2ZTEx
NmEyN2U3NDExZDY5ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TeXN0ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lz
dGVtQmF0dGVyeS5oCkBAIC0zMCw0ICszMCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCk7CiBXRUJDT1JFX0VYUE9S
VCBib29sIHN5c3RlbUhhc0JhdHRlcnkoKTsKIAorV0VCQ09SRV9FWFBPUlQgdm9pZCByZXNldFN5
c3RlbUhhc0FDKCk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wpOwor
V0VCQ09SRV9FWFBPUlQgYm9vbCBzeXN0ZW1IYXNBQygpOworCitXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJik7
CitXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKE9w
dGlvbmFsPGJvb2w+JiYpOworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U3lzdGVtQmF0dGVyeS5tbQppbmRleCA2YzEzZTVlYjcwZDhlNTE0M2VkZDI4ODFkZDI5ZTEwNzUz
MGI1OWRhLi5iMDk2ZTQyMjY2NGI3MDJhMTYxOWFiMDQ1NDg2MjA3YzdkMDc1YWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0KQEAgLTI2LDEx
ICsyNiwxNSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJTeXN0ZW1CYXR0ZXJ5Lmgi
CiAKKyNpbXBvcnQgPG5vdGlmeS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT1BTTGliU1BJ
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhhc0Jh
dHRlcnk7CitzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUM7CitzdGF0aWMgT3B0aW9uYWw8Ym9v
bD4gaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKK3N0YXRpYyBPcHRpb25hbDxib29sPiBo
YXNBQ092ZXJyaWRlRm9yVGVzdGluZzsKIAogdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wg
YmF0dGVyeSkKIHsKQEAgLTM5LDYgKzQzLDkgQEAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJv
b2wgYmF0dGVyeSkKIAogYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkKIHsKKyAgICBpZiAoaGFzQmF0
dGVyeU92ZXJyaWRlRm9yVGVzdGluZykKKyAgICAgICAgcmV0dXJuICpoYXNCYXR0ZXJ5T3ZlcnJp
ZGVGb3JUZXN0aW5nOworCiAgICAgaWYgKCFoYXNCYXR0ZXJ5Lmhhc1ZhbHVlKCkpIHsKICAgICAg
ICAgaGFzQmF0dGVyeSA9IFtdIHsKICNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdBVENI
T1MpCkBAIC02Nyw0ICs3NCw1NiBAQCBib29sIHN5c3RlbUhhc0JhdHRlcnkoKQogICAgIHJldHVy
biAqaGFzQmF0dGVyeTsKIH0KIAordm9pZCByZXNldFN5c3RlbUhhc0FDKCkKK3sKKyAgICBoYXNB
Qy5yZXNldCgpOworfQorCit2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wgYWMpCit7CisgICAgaGFz
QUMgPSBhYzsKK30KKworYm9vbCBzeXN0ZW1IYXNBQygpCit7CisgICAgaWYgKGhhc0FDT3ZlcnJp
ZGVGb3JUZXN0aW5nKQorICAgICAgICByZXR1cm4gKmhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nOwor
CisgICAgaWYgKCFoYXNBQy5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGhhc0FDID0gW10geworI2lm
IFBMQVRGT1JNKEFQUExFVFYpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAg
ICAgICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiBwb3dlclNvdXJjZXNJbmZvID0gYWRvcHRDRihJ
T1BTQ29weVBvd2VyU291cmNlc0luZm8oKSk7CisgICAgICAgICAgICBpZiAoIXBvd2VyU291cmNl
c0luZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgUmV0YWlu
UHRyPENGQXJyYXlSZWY+IHBvd2VyU291cmNlc0xpc3QgPSBhZG9wdENGKElPUFNDb3B5UG93ZXJT
b3VyY2VzTGlzdChwb3dlclNvdXJjZXNJbmZvLmdldCgpKSk7CisgICAgICAgICAgICBpZiAoIXBv
d2VyU291cmNlc0xpc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgZm9yIChDRkluZGV4IGkgPSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChwb3dlclNvdXJj
ZXNMaXN0LmdldCgpKTsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBDRkRpY3Rp
b25hcnlSZWYgZGVzY3JpcHRpb24gPSBJT1BTR2V0UG93ZXJTb3VyY2VEZXNjcmlwdGlvbihwb3dl
clNvdXJjZXNJbmZvLmdldCgpLCBDRkFycmF5R2V0VmFsdWVBdEluZGV4KHBvd2VyU291cmNlc0xp
c3QuZ2V0KCksIGkpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWUg
PSBDRkRpY3Rpb25hcnlHZXRWYWx1ZShkZXNjcmlwdGlvbiwgQ0ZTVFIoa0lPUFNQb3dlclNvdXJj
ZVN0YXRlS2V5KSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlICYmIENGRXF1YWwodmFsdWUs
IENGU1RSKGtJT1BTQUNQb3dlclZhbHVlKSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisg
ICAgICAgIH0oKTsKKyAgICB9CisKKyAgICByZXR1cm4gKmhhc0FDOworfQorCit2b2lkIHNldE92
ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBoYXNCYXR0
ZXJ5KQoreworICAgIGhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3RpbmcgPSBXVEZNb3ZlKGhhc0Jh
dHRlcnkpOworfQorCit2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKE9wdGlv
bmFsPGJvb2w+JiYgaGFzQUMpCit7CisgICAgaGFzQUNPdmVycmlkZUZvclRlc3RpbmcgPSBXVEZN
b3ZlKGhhc0FDKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1ZQOVV0aWxpdGllcy5jcHAKaW5kZXggYWQyYTY1MzFmMTUzZmIzYzljNzUwNjNhNjc1ZmMx
MDcyNjIxYzQwNC4uOWFjMzkxOTczYTQ0MDQ0N2UyZmI0ZGM3Zjg3ODA3MzU0N2Q2NDhlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuY3Bw
CkBAIC0zNCwyMCArMzQsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIGJvb2wgaXNW
YWxpZFZQTGV2ZWwodWludDhfdCBsZXZlbCkKIHsKICAgICBjb25zdGV4cHIgdWludDhfdCB2YWxp
ZExldmVsc1tdID0gewotICAgICAgICAxMCwKLSAgICAgICAgMTEsCi0gICAgICAgIDIwLAotICAg
ICAgICAyMSwKLSAgICAgICAgMzAsCi0gICAgICAgIDMxLAotICAgICAgICA0MCwKLSAgICAgICAg
NDEsCi0gICAgICAgIDUwLAotICAgICAgICA1MSwKLSAgICAgICAgNTIsCi0gICAgICAgIDYwLAot
ICAgICAgICA2MSwKLSAgICAgICAgNjIsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpM
ZXZlbF8xLAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfMV8xLAorICAgICAg
ICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfMiwKKyAgICAgICAgVlBDb25maWd1cmF0aW9u
TGV2ZWw6OkxldmVsXzJfMSwKKyAgICAgICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVsXzMs
CisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF8zXzEsCisgICAgICAgIFZQQ29u
ZmlndXJhdGlvbkxldmVsOjpMZXZlbF80LAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6
TGV2ZWxfNF8xLAorICAgICAgICBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfNSwKKyAgICAg
ICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVsXzVfMSwKKyAgICAgICAgVlBDb25maWd1cmF0
aW9uTGV2ZWw6OkxldmVsXzVfMiwKKyAgICAgICAgVlBDb25maWd1cmF0aW9uTGV2ZWw6OkxldmVs
XzYsCisgICAgICAgIFZQQ29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF82XzEsCisgICAgICAgIFZQ
Q29uZmlndXJhdGlvbkxldmVsOjpMZXZlbF82XzIsCiAgICAgfTsKIAogICAgIEFTU0VSVChzdGQ6
OmlzX3NvcnRlZChzdGQ6OmJlZ2luKHZhbGlkTGV2ZWxzKSwgc3RkOjplbmQodmFsaWRMZXZlbHMp
KSk7CkBAIC0xMzAsNyArMTMwLDcgQEAgT3B0aW9uYWw8VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNv
cmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoU3RyaW5nVmlldyBjb2RlY1ZpZXcKIAogICAgIC8v
IEZvdXJ0aCBlbGVtZW50OiBjaHJvbWFTdWJzYW1wbGluZy4gTGVnYWwgdmFsdWVzIGFyZSAwLTMu
CiAgICAgYXV0byBjaHJvbWFTdWJzYW1wbGluZyA9IHRvSW50ZWdyYWxUeXBlPHVpbnQ4X3Q+KCpu
ZXh0RWxlbWVudCk7Ci0gICAgaWYgKCFjaHJvbWFTdWJzYW1wbGluZyB8fCAqY2hyb21hU3Vic2Ft
cGxpbmcgPiAzKQorICAgIGlmICghY2hyb21hU3Vic2FtcGxpbmcgfHwgKmNocm9tYVN1YnNhbXBs
aW5nID4gVlBDb25maWd1cmF0aW9uQ2hyb21hU3Vic2FtcGxpbmc6OlN1YnNhbXBsaW5nXzQ0NCkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBjb25maWd1cmF0aW9uLmNocm9tYVN1
YnNhbXBsaW5nID0gKmNocm9tYVN1YnNhbXBsaW5nOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCmluZGV4IGM4OGQ2ZGQ1NTBiY2ExNjVmYjBk
MjQ2YTM1OTZmZGRkMTVhNTI0YzIuLjNhZjU4NTBlNTQ0MGQyYWZjZjllYWNkZTJjODVlMGIzZDMx
MThmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0
aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxp
dGllcy5oCkBAIC0zMCwxMyArMzAsNDIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCituYW1l
c3BhY2UgVlBDb25maWd1cmF0aW9uTGV2ZWwgeworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfMSAg
ID0gMTA7Citjb25zdGV4cHIgdWludDhfdCBMZXZlbF8xXzEgPSAxMTsKK2NvbnN0ZXhwciB1aW50
OF90IExldmVsXzIgICA9IDIwOworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfMl8xID0gMjE7Citj
b25zdGV4cHIgdWludDhfdCBMZXZlbF8zICAgPSAzMDsKK2NvbnN0ZXhwciB1aW50OF90IExldmVs
XzNfMSA9IDMxOworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfNCAgID0gNDA7Citjb25zdGV4cHIg
dWludDhfdCBMZXZlbF80XzEgPSA0MTsKK2NvbnN0ZXhwciB1aW50OF90IExldmVsXzUgICA9IDUw
OworY29uc3RleHByIHVpbnQ4X3QgTGV2ZWxfNV8xID0gNTE7Citjb25zdGV4cHIgdWludDhfdCBM
ZXZlbF81XzIgPSA1MjsKK2NvbnN0ZXhwciB1aW50OF90IExldmVsXzYgICA9IDYwOworY29uc3Rl
eHByIHVpbnQ4X3QgTGV2ZWxfNl8xID0gNjE7Citjb25zdGV4cHIgdWludDhfdCBMZXZlbF82XzIg
PSA2MjsKK30KKworbmFtZXNwYWNlIFZQQ29uZmlndXJhdGlvbkNocm9tYVN1YnNhbXBsaW5nIHsK
K2NvbnN0ZXhwciB1aW50OF90IFN1YnNhbXBsaW5nXzQyMF9WZXJ0aWNhbCA9IDA7Citjb25zdGV4
cHIgdWludDhfdCBTdWJzYW1wbGluZ180MjBfQ29sb2NhdGVkID0gMTsKK2NvbnN0ZXhwciB1aW50
OF90IFN1YnNhbXBsaW5nXzQyMiA9IDI7Citjb25zdGV4cHIgdWludDhfdCBTdWJzYW1wbGluZ180
NDQgPSAzOworfQorCituYW1lc3BhY2UgVlBDb25maWd1cmF0aW9uUmFuZ2UgeworY29uc3RleHBy
IHVpbnQ4X3QgVmlkZW9SYW5nZSA9IDA7Citjb25zdGV4cHIgdWludDhfdCBGdWxsUmFuZ2UgPSAx
OworfQorCiBzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgewogICAgIFN0cmluZyBj
b2RlY05hbWU7CiAgICAgdWludDhfdCBwcm9maWxlIHsgMCB9OwotICAgIHVpbnQ4X3QgbGV2ZWwg
eyAwIH07Ci0gICAgdWludDhfdCBiaXREZXB0aCB7IDAgfTsKLSAgICB1aW50OF90IGNocm9tYVN1
YnNhbXBsaW5nIHsgMSB9OwotICAgIHVpbnQ4X3QgdmlkZW9GdWxsUmFuZ2VGbGFnIHsgMCB9Owor
ICAgIHVpbnQ4X3QgbGV2ZWwgeyBWUENvbmZpZ3VyYXRpb25MZXZlbDo6TGV2ZWxfMSB9OworICAg
IHVpbnQ4X3QgYml0RGVwdGggeyA4IH07CisgICAgdWludDhfdCBjaHJvbWFTdWJzYW1wbGluZyB7
IFZQQ29uZmlndXJhdGlvbkNocm9tYVN1YnNhbXBsaW5nOjpTdWJzYW1wbGluZ180MjBfQ29sb2Nh
dGVkIH07CisgICAgdWludDhfdCB2aWRlb0Z1bGxSYW5nZUZsYWcgeyBWUENvbmZpZ3VyYXRpb25S
YW5nZTo6VmlkZW9SYW5nZSB9OwogICAgIHVpbnQ4X3QgY29sb3JQcmltYXJpZXMgeyAxIH07CiAg
ICAgdWludDhfdCB0cmFuc2ZlckNoYXJhY3RlcmlzdGljcyB7IDEgfTsKICAgICB1aW50OF90IG1h
dHJpeENvZWZmaWNpZW50cyB7IDEgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNv
bmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCmluZGV4IDk4YTUzYzQyZjMwNWI5Mjg0ZWNlYTc4
YjVlMzZhNDcwZDc1MGRkZmIuLjdjZGZlODY0MjMwNzQyMjA5N2MxYzVmOTY5MjA3MjE4MjEwNDY3
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9y
eUNvY29hLmNwcApAQCAtMzIsMTEgKzMyLDE1IEBACiAjaW5jbHVkZSAiTWVkaWFDYXBhYmlsaXRp
ZXNEZWNvZGluZ0luZm8uaCIKICNpbmNsdWRlICJNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5jbHVkZSAiVlA5VXRpbGl0aWVzQ29jb2Eu
aCIKIAogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5
IGlzIGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorY29uc3RleHByIENNVmlkZW9Db2Rl
Y1R5cGUga0NNVmlkZW9Db2RlY1R5cGVfVlA5IHsgJ3ZwMDknIH07CisKIHN0YXRpYyBDTVZpZGVv
Q29kZWNUeXBlIHZpZGVvQ29kZWNUeXBlRnJvbVJGQzQyODFUeXBlKFN0cmluZyB0eXBlKQogewog
ICAgIGlmICh0eXBlLnN0YXJ0c1dpdGgoIm1wNHYiKSkKQEAgLTQ1LDYgKzQ5LDggQEAgc3RhdGlj
IENNVmlkZW9Db2RlY1R5cGUgdmlkZW9Db2RlY1R5cGVGcm9tUkZDNDI4MVR5cGUoU3RyaW5nIHR5
cGUpCiAgICAgICAgIHJldHVybiBrQ01WaWRlb0NvZGVjVHlwZV9IMjY0OwogICAgIGlmICh0eXBl
LnN0YXJ0c1dpdGgoImh2YzEiKSB8fCB0eXBlLnN0YXJ0c1dpdGgoImhldjEiKSkKICAgICAgICAg
cmV0dXJuIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkM7CisgICAgaWYgKHR5cGUuc3RhcnRzV2l0aCgi
dnAwOSIpKQorICAgICAgICByZXR1cm4ga0NNVmlkZW9Db2RlY1R5cGVfVlA5OwogICAgIHJldHVy
biAwOwogfQogCkBAIC05MSw2ICs5NywxMiBAQCB2b2lkIGNyZWF0ZU1lZGlhUGxheWVyRGVjb2Rp
bmdDb25maWd1cmF0aW9uQ29jb2EoTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjbwogICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAo
dmlkZW9Db2RlY1R5cGUgPT0ga0NNVmlkZW9Db2RlY1R5cGVfVlA5KSB7CisgICAgICAgICAgICBh
dXRvIGNvZGVjQ29uZmlndXJhdGlvbiA9IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoY29kZWMpOwor
ICAgICAgICAgICAgaWYgKCFjb2RlY0NvbmZpZ3VyYXRpb24gfHwgIXZhbGlkYXRlVlBQYXJhbWV0
ZXJzKCpjb2RlY0NvbmZpZ3VyYXRpb24sIGluZm8sIHZpZGVvQ29uZmlndXJhdGlvbikpIHsKKyAg
ICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgaWYgKGFscGhhQ2hhbm5lbCB8fCBoZHJTdXBwb3J0ZWQpIHsKICAgICAgICAg
ICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXND
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0
aWVzQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNThkN2Y5NmFjMDFiZDVmZGI0MDNjZjhlMGFiNWExODhi
OTBhNzRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkKKworI2luY2x1ZGUgIlZQOVV0
aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBNZWRpYUNhcGFiaWxp
dGllc0luZm87CitzdHJ1Y3QgVmlkZW9Db25maWd1cmF0aW9uOworCitXRUJDT1JFX0VYUE9SVCBl
eHRlcm4gdm9pZCBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyhib29sKTsKK1dFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHNldE92ZXJyaWRlVlA5U2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBz
Y2FsZSk7CitXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZXNldE92ZXJyaWRlVlA5U2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpOworCitleHRlcm4gYm9vbCB2YWxpZGF0ZVZQUGFyYW1l
dGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYsIE1lZGlhQ2FwYWJpbGl0aWVzSW5mbyYs
IGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYpOworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXND
b2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41Njg1OTUzM2RlYjZhZWNjOTBjNTdlMTk1MTJjZmRkOGUwZTJl
NGIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTAsMCArMSwyMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVlA5VXRpbGl0aWVzQ29jb2EuaCIKKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0ICJGb3VyQ0MuaCIKKyNpbXBvcnQgIk1lZGlh
Q2FwYWJpbGl0aWVzSW5mby5oIgorI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbXBvcnQg
IlNjcmVlblByb3BlcnRpZXMuaCIKKyNpbXBvcnQgIlN5c3RlbUJhdHRlcnkuaCIKKyNpbXBvcnQg
IlZpZGVvQ29uZmlndXJhdGlvbi5oIgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVG9JbnRlZ2Vy
Q29udmVyc2lvbi5oPgorCisjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KKyNpbXBvcnQgIlZpZGVvVG9vbGJveFNvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2Uga0NNVmlkZW9Db2RlY1R5cGVfVlA5IGlz
IGFkZGVkIHRvIENNRm9ybWF0RGVzY3JpcHRpb24uaAorY29uc3RleHByIENNVmlkZW9Db2RlY1R5
cGUga0NNVmlkZW9Db2RlY1R5cGVfVlA5IHsgJ3ZwMDknIH07CisKK3N0YXRpYyBib29sIGhhcmR3
YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyB7IGZhbHNlIH07CisKK3N0cnVjdCBPdmVy
cmlkZVNjcmVlbkRhdGEgeworICAgIGZsb2F0IHdpZHRoIHsgMCB9OworICAgIGZsb2F0IGhlaWdo
dCB7IDAgfTsKKyAgICBmbG9hdCBzY2FsZSB7IDEgfTsKK307CitzdGF0aWMgT3B0aW9uYWw8T3Zl
cnJpZGVTY3JlZW5EYXRhPiBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nOworCit2b2lkIHNl
dE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlzYWJs
ZWQpCit7CisgICAgaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nID0gZGlzYWJs
ZWQ7Cit9CisKK3ZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5n
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxlKQoreworICAgIHNjcmVlblNp
emVBbmRTY2FsZUZvclRlc3RpbmcgPSBtYWtlT3B0aW9uYWw8T3ZlcnJpZGVTY3JlZW5EYXRhPih7
IHdpZHRoLCBoZWlnaHQsIHNjYWxlIH0pOworfQorCit2b2lkIHJlc2V0T3ZlcnJpZGVWUDlTY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKCkKK3sKKyAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JU
ZXN0aW5nID0gV1RGOjpudWxsb3B0OworfQorCitlbnVtIGNsYXNzIFJlc29sdXRpb25DYXRlZ29y
eSA6IHVpbnQ4X3QgeworICAgIFJfNDgwcCwKKyAgICBSXzcyMHAsCisgICAgUl8xMDgwcCwKKyAg
ICBSXzJLLAorICAgIFJfNEssCisgICAgUl84SywKKyAgICBSXzEySywKK307CisKK3N0YXRpYyBS
ZXNvbHV0aW9uQ2F0ZWdvcnkgcmVzb2x1dGlvbkNhdGVnb3J5KGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkKK3sKKyAgICBhdXRvIHBpeGVscyA9IHNpemUuYXJlYSgpOworICAgIGlmIChwaXhlbHMgPiA3
NjgwICogNDMyMCkKKyAgICAgICAgcmV0dXJuIFJlc29sdXRpb25DYXRlZ29yeTo6Ul8xMks7Cisg
ICAgaWYgKHBpeGVscyA+IDQwOTYgKiAyMTYwKQorICAgICAgICByZXR1cm4gUmVzb2x1dGlvbkNh
dGVnb3J5OjpSXzhLOworICAgIGlmIChwaXhlbHMgPiAyMDQ4ICogMTA4MCkKKyAgICAgICAgcmV0
dXJuIFJlc29sdXRpb25DYXRlZ29yeTo6Ul80SzsKKyAgICBpZiAocGl4ZWxzID4gMTkyMCAqIDEw
ODApCisgICAgICAgIHJldHVybiBSZXNvbHV0aW9uQ2F0ZWdvcnk6OlJfMks7CisgICAgaWYgKHBp
eGVscyA+IDEyODAgKiA3MjApCisgICAgICAgIHJldHVybiBSZXNvbHV0aW9uQ2F0ZWdvcnk6OlJf
MTA4MHA7CisgICAgaWYgKHBpeGVscyA+IDY0MCAqIDQ4MCkKKyAgICAgICAgcmV0dXJuIFJlc29s
dXRpb25DYXRlZ29yeTo6Ul83MjBwOworICAgIHJldHVybiBSZXNvbHV0aW9uQ2F0ZWdvcnk6OlJf
NDgwcDsKK30KKworYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlv
blJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUNhcGFiaWxpdGllc0luZm8mIGluZm8s
IGNvbnN0IFZpZGVvQ29uZmlndXJhdGlvbiYgdmlkZW9Db25maWd1cmF0aW9uKQoreworICAgIE9T
U3RhdHVzIHN0YXR1cyA9IFZUU2VsZWN0QW5kQ3JlYXRlVmlkZW9EZWNvZGVySW5zdGFuY2Uoa0NN
VmlkZW9Db2RlY1R5cGVfVlA5LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBudWxscHRy
KTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBWaWRlb0NvbmZpZ3VyYXRpb24gYW5kIFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkIGNh
biBoYXZlIGNvbmZsaWN0aW5nIHZhbHVlcyBmb3IgSERSIHByb3BlcnRpZXMuIElmIHNvLCByZWpl
Y3QuCisgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uKSB7CisgICAg
ICAgIC8vIE5vdGU6IFRyYW5zZmVyIENoYXJhY3RlcmlzdGljcyBhcmUgZGVmaW5lZCBieSBJU08v
SUVDIDIzMDkxLTI6MjAxOS4KKyAgICAgICAgaWYgKCp2aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNm
ZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpTUkdCICYmIGNvZGVjQ29uZmlndXJhdGlv
bi50cmFuc2ZlckNoYXJhY3RlcmlzdGljcyA+IDE1KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi50cmFuc2ZlckZ1bmN0aW9uID09IFRy
YW5zZmVyRnVuY3Rpb246OlBRICYmIGNvZGVjQ29uZmlndXJhdGlvbi50cmFuc2ZlckNoYXJhY3Rl
cmlzdGljcyAhPSAxNikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCp2
aWRlb0NvbmZpZ3VyYXRpb24udHJhbnNmZXJGdW5jdGlvbiA9PSBUcmFuc2ZlckZ1bmN0aW9uOjpI
TEcgJiYgY29kZWNDb25maWd1cmF0aW9uLnRyYW5zZmVyQ2hhcmFjdGVyaXN0aWNzICE9IDE4KQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICh2aWRlb0NvbmZpZ3Vy
YXRpb24uY29sb3JHYW11dCkgeworICAgICAgICBpZiAoKnZpZGVvQ29uZmlndXJhdGlvbi5jb2xv
ckdhbXV0ID09IENvbG9yR2FtdXQ6OlJlYzIwMjAgJiYgY29kZWNDb25maWd1cmF0aW9uLmNvbG9y
UHJpbWFyaWVzICE9IDkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
aWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgpICYm
IFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpICYmICFo
YXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpIHsKKyAgICAgICAgaW5mby5wb3dl
ckVmZmljaWVudCA9IHRydWU7CisKKyAgICAgICAgLy8gSFcgVlA5IERlY29kZXIgc3VwcG9ydHMg
UHJvZmlsZSAwICYgMjoKKyAgICAgICAgaWYgKCFjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAm
JiBjb2RlY0NvbmZpZ3VyYXRpb24ucHJvZmlsZSAhPSAyKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cHBvcnRzIHVwIHRvIExldmVsIDY6
CisgICAgICAgIGlmIChjb2RlY0NvbmZpZ3VyYXRpb24ubGV2ZWwgPiBWUENvbmZpZ3VyYXRpb25M
ZXZlbDo6TGV2ZWxfNikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBI
VyBWUDkgRGVjb2RlciBzdXBwb3J0cyA4IG9yIDEwIGJpdCBjb2xvcjoKKyAgICAgICAgaWYgKGNv
ZGVjQ29uZmlndXJhdGlvbi5iaXREZXB0aCA+IDEwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIHN1cG9ydHMgb25seSA0MjAgY2hyb21hIHN1
YnNhbXBsaW5nOgorICAgICAgICBpZiAoY29kZWNDb25maWd1cmF0aW9uLmNocm9tYVN1YnNhbXBs
aW5nID4gVlBDb25maWd1cmF0aW9uQ2hyb21hU3Vic2FtcGxpbmc6OlN1YnNhbXBsaW5nXzQyMF9D
b2xvY2F0ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gSFcgVlA5
IERlY29kZXIgZG9lcyBub3Qgc3VwcG9ydCBhbHBoYSBjaGFubmVsOgorICAgICAgICBpZiAodmlk
ZW9Db25maWd1cmF0aW9uLmFscGhhQ2hhbm5lbCAmJiAqdmlkZW9Db25maWd1cmF0aW9uLmFscGhh
Q2hhbm5lbCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBIVyBWUDkg
RGVjb2RlciBjYW4gc3VwcG9ydCB1cCB0byA0SyBAIDEyMCBvciA4SyBAIDMwCisgICAgICAgIGF1
dG8gcmVzb2x1dGlvbiA9IHJlc29sdXRpb25DYXRlZ29yeSh7IChmbG9hdCl2aWRlb0NvbmZpZ3Vy
YXRpb24ud2lkdGgsIChmbG9hdCl2aWRlb0NvbmZpZ3VyYXRpb24uaGVpZ2h0IH0pOworICAgICAg
ICBpZiAocmVzb2x1dGlvbiA+IFJlc29sdXRpb25DYXRlZ29yeTo6Ul84SykKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKHJlc29sdXRpb24gPT0gUmVzb2x1dGlvbkNhdGVn
b3J5OjpSXzhLICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJhdGUgPiAzMCkKKyAgICAgICAg
ICAgIGluZm8uc21vb3RoID0gZmFsc2U7CisgICAgICAgIGVsc2UgaWYgKHJlc29sdXRpb24gPD0g
UmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLICYmIHZpZGVvQ29uZmlndXJhdGlvbi5mcmFtZXJhdGUg
PiAxMjApCisgICAgICAgICAgICBpbmZvLnNtb290aCA9IGZhbHNlOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBpbmZvLnNtb290aCA9IHRydWU7CisKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgLy8gU1cgVlA5IERlY29kZXIgaGFzIG11Y2ggbW9yZSB2YXJpYWJsZSBjYXBh
YmlsaXRpZXMgZGVwZW5kaW5nIG9uIENQVSBjaGFyYWN0ZXJpc3RpY3MuCisgICAgLy8gRklYTUU6
IEFkZCBhIGxvb2t1cCB0YWJsZSBmb3IgZGV2aWNlLXRvLWNhcGFiaWxpdGllcy4gRm9yIG5vdywg
YXNzdW1lIHRoYXQgdGhlIFNXIFZQOQorICAgIC8vIGRlY29kZXIgY2FuIHN1cHBvcnQgNEsgQCAz
MC4KKyAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA8PSAxMDgwICYmIHZpZGVvQ29u
ZmlndXJhdGlvbi5mcmFtZXJhdGUgPiA2MCkKKyAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsK
KyAgICBpZiAodmlkZW9Db25maWd1cmF0aW9uLmhlaWdodCA8PSAyMTYwICYmIHZpZGVvQ29uZmln
dXJhdGlvbi5mcmFtZXJhdGUgPiAzMCkKKyAgICAgICAgaW5mby5zbW9vdGggPSBmYWxzZTsKKyAg
ICBlbHNlCisgICAgICAgIGluZm8uc21vb3RoID0gdHJ1ZTsKKworICAgIC8vIEZvciB3YWxsLXBv
d2VyZWQgZGV2aWNlcywgYWx3YXlzIHJlcG9ydCBWUDkgYXMgc3VwcG9ydGVkLCBldmVuIGlmIG5v
dCBwb3dlckVmZmljaWVudC4KKyAgICBpZiAoIXN5c3RlbUhhc0JhdHRlcnkoKSkgeworICAgICAg
ICBpbmZvLnN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwor
ICAgIC8vIEZvciBiYXR0ZXJ5LXBvd2VyZWQgZGV2aWNlcywgYWx3YXlzIHJlcG9ydCBWUDkgYXMg
c3VwcG9ydGVkIHdoZW4gcnVubmluZyBvbiBBQyBwb3dlciwKKyAgICAvLyBidXQgb25seSBvbiBi
YXR0ZXJ5IHdoZW4gdGhlcmUgaXMgYW4gYXR0YWNoZWQgc2NyZWVuIHdob3NlIHJlc29sdXRpb24g
aXMgbGFyZ2UgZW5vdWdoCisgICAgLy8gdG8gc3VwcG9ydCA0SyB2aWRlby4KKyAgICBpZiAoc3lz
dGVtSGFzQUMoKSkgeworICAgICAgICBpbmZvLnN1cHBvcnRlZCA9IHRydWU7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgaGFzNGtTY3JlZW4gPSBmYWxzZTsKKworICAg
IGlmIChzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKSB7CisgICAgICAgIGF1dG8gc2NyZWVu
U2l6ZSA9IEZsb2F0U2l6ZShzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2Ny
ZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+aGVpZ2h0KS5zY2FsZWQoc2NyZWVuU2l6ZUFuZFNj
YWxlRm9yVGVzdGluZy0+c2NhbGUpOworICAgICAgICBoYXM0a1NjcmVlbiA9IHJlc29sdXRpb25D
YXRlZ29yeShzY3JlZW5TaXplKSA+PSBSZXNvbHV0aW9uQ2F0ZWdvcnk6OlJfNEs7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgZm9yIChhdXRvJiBzY3JlZW5EYXRhIDogZ2V0U2NyZWVuUHJvcGVydGll
cygpLnNjcmVlbkRhdGFNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgICAgIGlmIChyZXNvbHV0aW9u
Q2F0ZWdvcnkoc2NyZWVuRGF0YS5zY3JlZW5SZWN0LnNpemUoKS5zY2FsZWQoc2NyZWVuRGF0YS5z
Y2FsZUZhY3RvcikpID49IFJlc29sdXRpb25DYXRlZ29yeTo6Ul80SykgeworICAgICAgICAgICAg
ICAgIGhhczRrU2NyZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghaGFzNGtTY3JlZW4pIHsKKyAgICAg
ICAgaW5mby5zdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiB0cnVlOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQpp
bmRleCBjNjQ2Y2YyNDlmZjIyMjhjNTVkMDgzNWYwNDM0NzU5N2Q0OTI4MzQ4Li40YTg1ODI5MDg1
MGUwZjk3MjA0NTc3MGE5YjUwZGFkYWI1MmI4ZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCkBAIC0yMDAsOCArMjAwLDEwIEBAIFNj
cmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAgICBpbnQgc2Ny
ZWVuRGVwdGhQZXJDb21wb25lbnQgPSBXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChu
dWxscHRyKTsKICAgICAgICAgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IgPSBXZWJD
b3JlOjpzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IobnVsbHB0cik7CiAgICAgICAgIGJvb2wg
c2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBXZWJDb3JlOjpzY3JlZW5IYXNJbnZlcnRlZENvbG9y
cygpOworICAgICAgICBib29sIGhkciA9IHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZShu
dWxscHRyKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBXZWJDb3JlOjpzY3JlZW5QUElG
YWN0b3IoKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsr
ZGlzcGxheUlELCBTY3JlZW5EYXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwg
Y29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzIH0pOworICAgICAg
ICBzY3JlZW5Qcm9wZXJ0aWVzLnNjcmVlbkRhdGFNYXAuc2V0KCsrZGlzcGxheUlELCBTY3JlZW5E
YXRhIHsgc2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVu
RGVwdGgsIHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50LCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IsIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzLCBoZHIsIHNjYWxlRmFjdG9yIH0pOwogICAgICAg
ICAKICAgICAgICAgaWYgKHNjcmVlbiA9PSBbUEFMOjpnZXRVSVNjcmVlbkNsYXNzKCkgbWFpblNj
cmVlbl0pCiAgICAgICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnByaW1hcnlEaXNwbGF5SUQgPSBk
aXNwbGF5SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1TY3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3Jl
ZW5NYWMubW0KaW5kZXggOGEwZTBhYWFiMmE5Y2QwNWRjY2RkODY5MzI1ZDJjMWIxYzVhYmQxMy4u
NzY3MDZiZTg4ODZjODk4MmExNjRhMmYyZjJkY2QwZGFjNjYzMTUyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQpAQCAtMTE3LDYgKzEx
Nyw3IEBAIFNjcmVlblByb3BlcnRpZXMgY29sbGVjdFNjcmVlblByb3BlcnRpZXMoKQogICAgICAg
ICB1aW50MzJfdCBkaXNwbGF5TWFzayA9IENHRGlzcGxheUlEVG9PcGVuR0xEaXNwbGF5TWFzayhk
aXNwbGF5SUQpOwogICAgICAgICBJT1JlZ2lzdHJ5R1BVSUQgZ3B1SUQgPSAwOwogICAgICAgICBi
b29sIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSA9IGZhbHNlOworICAgICAgICBmbG9h
dCBzY2FsZUZhY3RvciA9IHNjcmVlbi5iYWNraW5nU2NhbGVGYWN0b3I7CiAKICNpZiBVU0UoTUVE
SUFUT09MQk9YKQogICAgICAgICBpZiAoUEFMOjppc01lZGlhVG9vbGJveEZyYW1ld29ya0F2YWls
YWJsZSgpICYmIFBBTDo6Y2FuTG9hZF9NZWRpYVRvb2xib3hfTVRTaG91bGRQbGF5SERSVmlkZW8o
KSkKQEAgLTEyNiw3ICsxMjcsNyBAQCBTY3JlZW5Qcm9wZXJ0aWVzIGNvbGxlY3RTY3JlZW5Qcm9w
ZXJ0aWVzKCkKICAgICAgICAgaWYgKGRpc3BsYXlNYXNrKQogICAgICAgICAgICAgZ3B1SUQgPSBn
cHVJREZvckRpc3BsYXlNYXNrKGRpc3BsYXlNYXNrKTsKIAotICAgICAgICBzY3JlZW5Qcm9wZXJ0
aWVzLnNjcmVlbkRhdGFNYXAuc2V0KGRpc3BsYXlJRCwgU2NyZWVuRGF0YSB7IHNjcmVlbkF2YWls
YWJsZVJlY3QsIHNjcmVlblJlY3QsIGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0
aFBlckNvbXBvbmVudCwgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yLCBzY3JlZW5IYXNJbnZl
cnRlZENvbG9ycywgc2NyZWVuU3VwcG9ydHNIaWdoRHluYW1pY1JhbmdlLCBzY3JlZW5Jc01vbm9j
aHJvbWUsIGRpc3BsYXlNYXNrLCBncHVJRCB9KTsKKyAgICAgICAgc2NyZWVuUHJvcGVydGllcy5z
Y3JlZW5EYXRhTWFwLnNldChkaXNwbGF5SUQsIFNjcmVlbkRhdGEgeyBzY3JlZW5BdmFpbGFibGVS
ZWN0LCBzY3JlZW5SZWN0LCBjb2xvclNwYWNlLCBzY3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJD
b21wb25lbnQsIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvciwgc2NyZWVuSGFzSW52ZXJ0ZWRD
b2xvcnMsIHNjcmVlblN1cHBvcnRzSGlnaER5bmFtaWNSYW5nZSwgc2NyZWVuSXNNb25vY2hyb21l
LCBkaXNwbGF5TWFzaywgZ3B1SUQsIHNjYWxlRmFjdG9yIH0pOwogCiAgICAgICAgIGlmICghc2Ny
ZWVuUHJvcGVydGllcy5wcmltYXJ5RGlzcGxheUlEKQogICAgICAgICAgICAgc2NyZWVuUHJvcGVy
dGllcy5wcmltYXJ5RGlzcGxheUlEID0gZGlzcGxheUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGNlOTZiYTc2N2UwYzA1NzU4MGZlMTA1Y2QyYjMzN2U3YTE1NDJhNTcu
LmMyZmE2YzgxNGM0YjBlYjZjY2JiZWNmMTA5NjkwYjVhNjAyNjRkYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMxOSwxMCArMzE5LDYgQEAKICNpbmNsdWRlICJXZWJY
UlRlc3QuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQot
I2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+Ci0j
ZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJOU1Njcm9sbGVySW1wRGV0YWlscy5oIgpAQCAtMzMx
LDEwICszMjcsMTUgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlN5c3RlbUJh
dHRlcnkuaCIKKyNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgogI2luY2x1ZGUgPHBhbC9z
cGkvY29jb2EvQ29yZVRleHRTUEkuaD4KICNpbmNsdWRlIDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94
U1BJLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKExJQldFQlJUQykKKyNp
bmNsdWRlIDx3ZWJydGMvc2RrL1dlYktpdC9WaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oPgorI2Vu
ZGlmCisKIHVzaW5nIEpTQzo6Q2FsbERhdGE7CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKIHVzaW5n
IEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOwpAQCAtNjMwLDYgKzYzMSwxMyBAQCBJbnRlcm5hbHM6
OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmICBF
TkFCTEUoV0VCX0FVRElPKQogICAgIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6Y3JlYXRlT3ZlcnJp
ZGUgPSBudWxscHRyOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzZXRPdmVy
cmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7CisgICAgc2V0T3Zl
cnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBzZXRPdmVycmlk
ZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhmYWxzZSk7CisgICAgcmVzZXRP
dmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKKyNlbmRpZgogfQogCiBE
b2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBjb25zdApAQCAtNTgxOCw2ICs1
ODI2LDQ0IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgY29uc3QKICNlbmRp
ZgogfQogCit2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoYm9v
bCBoYXNCYXR0ZXJ5KQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFdlYkNvcmU6OnNldE92
ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoaGFzQmF0dGVyeSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShoYXNCYXR0ZXJ5KTsKKyNlbmRpZgorfQorCit2b2lkIEludGVybmFsczo6
c2V0U3lzdGVtSGFzQUNGb3JUZXN0aW5nKGJvb2wgaGFzQUMpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoaGFzQUMp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaGFzQUMpOworI2VuZGlmCit9CisKK3ZvaWQgSW50
ZXJuYWxzOjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNh
YmxlZCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQ
OUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhkaXNhYmxlZCk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShkaXNhYmxlZCk7CisjZW5kaWYKK30KKwordm9pZCBJbnRlcm5hbHM6OnNl
dFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZG91YmxlIHdpZHRoLCBkb3VibGUgaGVp
Z2h0LCBkb3VibGUgc2NhbGUpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgV2ViQ29yZTo6
c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKHdpZHRoLCBoZWlnaHQs
IHNjYWxlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdpZHRoKTsKKyAgICBVTlVTRURfUEFS
QU0oaGVpZ2h0KTsKKyAgICBVTlVTRURfUEFSQU0oc2NhbGUpOworI2VuZGlmCit9CisKIGludCBJ
bnRlcm5hbHM6OnJlYWRQcmVmZXJlbmNlSW50ZWdlcihjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29u
c3QgU3RyaW5nJiBrZXkpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCBiZWM1OWNiY2MwMThmZDZiMTliZWEyM2U3OTkwZmNhZGEzNTJlMTZm
Li44NDNlZGZhMDQ4MTQ0M2E0MWIxYTEwN2YwMmM5NWYwMDMwOGRmMGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEwMTgsNiArMTAxOCwxMiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0U3lzdGVtSGFzQmF0
dGVyeUZvclRlc3RpbmcoYm9vbCk7CisgICAgdm9pZCBzZXRTeXN0ZW1IYXNBQ0ZvclRlc3Rpbmco
Ym9vbCk7CisKKyAgICB2b2lkIHNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyhib29sKTsKKyAgICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZG91
YmxlLCBkb3VibGUsIGRvdWJsZSk7CisKICAgICBpbnQgcmVhZFByZWZlcmVuY2VJbnRlZ2VyKGNv
bnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSk7CiAgICAgU3RyaW5nIGVuY29k
ZWRQcmVmZXJlbmNlVmFsdWUoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg4YjQ2MWU2MTNlNTgy
MjI2ODNkOWFhYTIyYjQ2YTNkYmYyZWU1YzMuLmU3ZjY2NTNjYTA4NGM0MjVhMTljMWFkYTdiNzcw
ZWUwNWI4YjY3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkzMiw2
ICs5MzIsMTIgQEAgZW51bSBDb250ZW50U2l6ZUNhdGVnb3J5IHsKIAogICAgIGJvb2xlYW4gc3lz
dGVtSGFzQmF0dGVyeSgpOwogCisgICAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGlu
Zyhib29sZWFuIGhhc0JhdHRlcnkpOworICAgIHZvaWQgc2V0U3lzdGVtSGFzQUNGb3JUZXN0aW5n
KGJvb2xlYW4gaGFzQUMpOworCisgICAgdm9pZCBzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxl
ZEZvclRlc3RpbmcoYm9vbGVhbiBkaXNhYmxlZCk7CisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKGRvdWJsZSB3aWR0aCwgZG91YmxlIGhlaWdodCwgZG91YmxlIHNj
YWxlKTsKKwogICAgIGxvbmcgcmVhZFByZWZlcmVuY2VJbnRlZ2VyKERPTVN0cmluZyBkb21haW4s
IERPTVN0cmluZyBrZXkpOwogICAgIERPTVN0cmluZyBlbmNvZGVkUHJlZmVyZW5jZVZhbHVlKERP
TVN0cmluZyBkb21haW4sIERPTVN0cmluZyBrZXkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDlhNDM0OWRk
NDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMuLjIyZmQ0YzhlM2UwOGQ0ZGJhM2UyNzI0
ZDE5MWI5MTYwOTIwNzFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNzAsNiArMTcwLDcgQEAgdm9pZCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgbWFwREJFeHRlbnNp
b25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OworICAgIGVuY29kZXIg
PDwgc3lzdGVtSGFzQUM7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC00
NTksNiArNDYwLDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgaWYgKCFzeXN0ZW1I
YXNCYXR0ZXJ5KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcGFyYW1ldGVycy5zeXN0ZW1I
YXNCYXR0ZXJ5ID0gV1RGTW92ZSgqc3lzdGVtSGFzQmF0dGVyeSk7CisKKyAgICBPcHRpb25hbDxi
b29sPiBzeXN0ZW1IYXNBQzsKKyAgICBkZWNvZGVyID4+IHN5c3RlbUhhc0FDOworICAgIGlmICgh
c3lzdGVtSGFzQUMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLnN5c3Rl
bUhhc0FDID0gV1RGTW92ZSgqc3lzdGVtSGFzQUMpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IGFhMWI3YWExZmI3NmJjMDdkYzgwNmZkMDJkM2RkMWNhMTlm
YjRlMGIuLmM2NzRhM2I3MTU1YjdmOGEzMGIwNmVhYTBmM2QwNjBkYjk2YTNlMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTIxNCw2ICsyMTQsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkgeyBm
YWxzZSB9OworICAgIGJvb2wgc3lzdGVtSGFzQUMgeyBmYWxzZSB9OwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggZmJjMWVmMjI4MTc3YWY3MzE3MmJjNDRl
NzNjZjg5MzAzZDkzNzQ2Mi4uZGM1MDE5NWUwYzcwYmUxMWRjZTljMmM5NmY4ZTcxZGZlOThmMzY4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCkBAIC01NSw2ICs1NSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
b3dlclNvdXJjZU5vdGlmaWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVVRJVXRpbGl0aWVzLmg+CkBAIC00MDcsNiArNDA4LDcgQEAgdm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJhbWV0ZXJzLnN5c3Rl
bUhhc0JhdHRlcnkgPSBzeXN0ZW1IYXNCYXR0ZXJ5KCk7CisgICAgcGFyYW1ldGVycy5zeXN0ZW1I
YXNBQyA9IHN5c3RlbUhhc0FDKCk7CiAKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWFw
REJIYW5kbGU7CiAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS5sc2QubWFwZGIiX3MsIFdURjo6bnVsbG9wdCwgbWFwREJIYW5kbGUs
IFNhbmRib3hFeHRlbnNpb246OkZsYWdzOjpOb1JlcG9ydCkpCkBAIC02OTcsNiArNjk5LDEwIEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKICAg
ICB9XTsKICNlbmRpZgogI2VuZGlmCisKKyAgICBtX3Bvd2VyU291cmNlTm90aWZpZXIgPSBXVEY6
Om1ha2VVbmlxdWU8V2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcj4oW3RoaXNdIChib29sIGhh
c0FDKSB7CisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6
UG93ZXJTb3VyY2VEaWRDaGFuZ2UoaGFzQUMpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVycygpCkBAIC03MjYsNiArNzMy
LDggQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3Rlck5vdGlmaWNhdGlvbk9ic2VydmVy
cygpCiAjZW5kaWYKIAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cmVtb3ZlT2JzZXJ2ZXI6bV9hY3RpdmF0aW9uT2JzZXJ2ZXIuZ2V0KCldOworCisgICAgbV9wb3dl
clNvdXJjZU5vdGlmaWVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIENGVVJMU3RvcmFnZVNlc3Np
b25SZWYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmUzNTQyZWMxYmU5NjdlNzJiOGU2NmRlMzM5NmVlODYw
OTczZmQ0ZS4uYjcwMjVjMGEyMjkxYmY1ZjQ5MTFhYjMwMTgxMWE0NzQxN2E5NThmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTI3LDYgKzEyNyw3
IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJWZXJzaW9uQ2hlY2tzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Qb3dlclNvdXJjZU5vdGlmaWVyLmg+CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IDlmMDY1MDJkZTBlM2M0NTZmMzA1M2M0MmVkYzk4NTFkMjI5Y2RlOWMuLjNhMzQ2ZDc3MTI3MGNj
ZTk3YWQ4MGU1NjY1ODg0OGM1OGY2NzQ4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtOTQsNiArOTQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgRXZlbnRNYWtlc0dhbWVwYWRzVmlzaWJs
ZSA6IGJvb2w7CiBzdHJ1Y3QgTW9ja01lZGlhRGV2aWNlOworI2lmIFBMQVRGT1JNKENPQ09BKQor
Y2xhc3MgUG93ZXJTb3VyY2VOb3RpZmllcjsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTcxMCw2ICs3MTMsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UG93ZXJTb3VyY2VOb3RpZmllcj4g
bV9wb3dlclNvdXJjZU5vdGlmaWVyOwogICAgIFJldGFpblB0cjxOU09iamVjdD4gbV9hY3RpdmF0
aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2FjY2Vzc2liaWxpdHlFbmFi
bGVkT2JzZXJ2ZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDA2MzMyNTBhYTFjYWQ1OTRmOTQ5YjU2YzAxNDVkM2NhZjZiNzgyNzQuLjhkMmJhMjZlNDE0
YmY1YWNjYWRlMzU2NTQ2NmUyMGRkMTU3NGFlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaApAQCAtMzA3LDYgKzMwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7CiAgICAgdm9pZCB1bmJsb2Nr
UHJlZmVyZW5jZVNlcnZpY2UoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmJik7CiAjZW5k
aWYKKyAgICB2b2lkIHBvd2VyU291cmNlRGlkQ2hhbmdlKGJvb2wpOwogI2VuZGlmCiAKICAgICBi
b29sIGFyZUFsbFBhZ2VzVGhyb3R0bGVhYmxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY5MGU0ZmE1ZDZjOWFhYjVk
ZWM2MGQxMDAxNjA2ODc2MGE3NjFkZDAuLmNkYTA1Yjk0ZmYyYWRiNDI0NzA1OTcyMzQ0NDJhZjM5
MDM3ZDdiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0xNzIsNiArMTcyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
U3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwgT3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUp
CiAgICAgVW5ibG9ja1ByZWZlcmVuY2VTZXJ2aWNlKFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlQXJyYXkgaGFuZGxlQXJyYXkpCiAjZW5kaWYKKyAgICBQb3dlclNvdXJjZURpZENoYW5n
ZShib29sIGhhc0FDKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspICYmICFVU0UoR1RLNCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CmluZGV4IDMwZmYwNGY4NTA0ZGUwZWE5Njk1NDZlMTdkNmI0MjczZmRjY2VhNzQuLjRlMzkyMjdl
ZjEyMWMyZDRlYWY1ZGFjMWUyMjVjYWRiNzNmNTFlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMzEyLDYgKzMxMiw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjZW5kaWYKICAgICAKICAgICBzZXRTeXN0ZW1IYXNC
YXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7CisgICAgc2V0U3lzdGVtSGFzQUMo
cGFyYW1ldGVycy5zeXN0ZW1IYXNBQyk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoV1RGTW92ZShwYXJh
bWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOwpAQCAtMTAyMiw2ICsxMDIzLDExIEBA
IHZvaWQgV2ViUHJvY2Vzczo6dW5ibG9ja1NlcnZpY2VzUmVxdWlyZWRCeUFjY2Vzc2liaWxpdHko
Y29uc3QgU2FuZGJveEV4dGVuc2lvbjo6CiAgICAgcmVnaXN0ZXJXaXRoQWNjZXNzaWJpbGl0eSgp
OwogfQogCit2b2lkIFdlYlByb2Nlc3M6OnBvd2VyU291cmNlRGlkQ2hhbmdlKGJvb2wgaGFzQUMp
Cit7CisgICAgc2V0U3lzdGVtSGFzQUMoaGFzQUMpOworfQorCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMzYyNDFhZGIyMWRiYWUzZmQ0NzlhNTliMzc2ODY1NmRmMWZhZTk5YS4u
ODdjNjQ1YmNlOGYzOTBiZTQ4YWQ4N2FlMzNiYWRlYWQ5ZjI0NjkyZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA3LTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gQWRkIE1lZGlhQ2FwYWJpbGl0aWVzIHN1cHBvcnQgZm9yIFNXIFZQOSBk
ZWNvZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE0MzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICog
cGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFj
YXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1zdy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNy0x
NSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGhhbmRsaW5n
IG9mIG91dCBvZiBtZW1vcnkgaGFuZGxpbmcgd2hpbGUgYWRkaW5nIGEgd29ya2xldCBtb2R1bGUu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA0NjFhM2Ew
YTgyOTQ4OGM2MGQ3MTMzNGU2ZTU1NWU4YWVmYmE1ZDUuLjQ5YTY1NTE2MWUxMDVmYTA1YjU4MjNl
Y2ZjOTcxYzc2NjVmZDU3NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xOTIwLDMgKzE5MjAsNiBAQCB3ZWJraXQub3JnL2IvMjEyNTY1IFsgQ2F0YWxp
bmEgTW9qYXZlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9lbmNvZGluZwogZmFz
dC90ZXh0L3RleHQtc3R5bGVzLy1hcHBsZS1zeXN0ZW0gWyBQYXNzIF0KIAogd2Via2l0Lm9yZy9i
LzIxNDE1NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvY3Jvc3Mtb3JpZ2lu
LWVtYmVkZGVyLXBvbGljeS9ibG9iLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCisjIFRo
aXMgdGVzdCByZXF1aXJlcyBzeXN0ZW0gcGxhdGZvcm0gc3VwcG9ydC4KK3BsYXRmb3JtL21hYy9t
ZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3Lmh0bWwgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxp
dGllcy92cDktZGVjb2RpbmdJbmZvLXN3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVjb2RpbmdJbmZvLXN3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yMjAxNWI0NmQxYzUxZTkwNDgyOTkzMGIxZjQ4Nzc2YmE4ZTZh
OGViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21l
ZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMzYgQEAKK1JVTihpbnRlcm5hbHMuc2V0U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcodHJ1
ZSkpCitSVU4oaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyh0cnVlKSkKK1JVTihp
bnRlcm5hbHMuc2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKHRydWUpKQor
UlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKDEwMjQsIDc2
OCwgMSkpCisKK1Rlc3QgdGhhdCA0ayBAIDMwZnBzIGlzIHN1cHBvcnRlZCwgc21vb3RoLCBidXQg
bm90IHBvd2VyRWZmaWNpZW50CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxp
dGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsgY29udGVu
dFR5cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBoZWlnaHQ6IDEwODAs
IGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOykKK1Byb21p
c2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAndHJ1ZScpIE9LCitF
WFBFQ1RFRCAoaW5mby5wb3dlckVmZmljaWVudCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKGlu
Zm8uc21vb3RoID09ICd0cnVlJykgT0sKKworVGVzdCB0aGF0IDRrIEAgNjBmcHMgaXMgc3VwcG9y
dGVkLCBidXQgbm90IHNtb290aCBvciBwb3dlckVmZmljaWVudAorUlVOKHByb21pc2UgPSBuYXZp
Z2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJj
ZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9InZwMDkuMDAuNDEu
MDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJh
dGU6IDYwIH19KTspCitQcm9taXNlIHJlc29sdmVkIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBwb3J0
ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNl
JykgT0sKK0VYUEVDVEVEIChpbmZvLnNtb290aCA9PSAnZmFsc2UnKSBPSworCitUZXN0IHRoYXQg
U1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBvcnRlZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2Ny
ZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uCitSVU4oaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9y
VGVzdGluZyhmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGll
cy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnbWVkaWEtc291cmNlJywgdmlkZW86IHsgY29udGVudFR5
cGU6ICd2aWRlby9tcDQ7IGNvZGVjcz0idnAwOS4wMC40MS4wOCInLCBoZWlnaHQ6IDEwODAsIGJp
dHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOykKK1Byb21pc2Ug
cmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAnZmFsc2UnKSBPSworRVhQ
RUNURUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZv
LnNtb290aCA9PSAnZmFsc2UnKSBPSworCitUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgc3Vw
cG9ydGVkIG9uIGJhdHRlcnkgcG93ZXIgd2hlbiBzY3JlZW4gaXMgYXQgbGVhc3QgNGsgcmVzb2x1
dGlvbgorUlVOKGludGVybmFscy5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKDM4
NDAsIDIxNjAsIDEpKQorUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMu
ZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBl
OiAndmlkZW8vbXA0OyBjb2RlY3M9InZwMDkuMDAuNDEuMDgiJywgaGVpZ2h0OiAxMDgwLCBiaXRy
YXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19KTspCitQcm9taXNlIHJl
c29sdmVkIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBwb3J0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNU
RUQgKGluZm8ucG93ZXJFZmZpY2llbnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEIChpbmZvLnNt
b290aCA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5nSW5mby1z
dy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVz
L3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40M2M2OGQ3N2FkY2FjM2ZhNmZj
MTliNmE5YWI0YTZiZTU0YzNiOWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGluZ0luZm8tc3cuaHRt
bApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Li4vLi4vLi4vLi4vbWVkaWEvdmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgdmFyIHByb21pc2U7CisgICAg
dmFyIGluZm87CisKKyAgICBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQorICAgIHsKKyAgICAgICAg
aWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgiSW50ZXJuYWxz
IGlzIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuIikKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0
aW5nKHRydWUpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9yVGVz
dGluZyh0cnVlKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXRIYXJkd2FyZVZQOURlY29k
ZXJEaXNhYmxlZEZvclRlc3RpbmcodHJ1ZSknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
VlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygxMDI0LCA3NjgsIDEpJyk7CisKKyAgICAg
ICAgY29uc29sZVdyaXRlKCcnKTsKKyAgICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgNGsg
QCAzMGZwcyBpcyBzdXBwb3J0ZWQsIHNtb290aCwgYnV0IG5vdCBwb3dlckVmZmljaWVudCcpOwor
ICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2Rp
bmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7IGNvbnRlbnRUeXBlOiAndmlk
ZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWlnaHQ6IDEwODAsIGJpdHJhdGU6
IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogMzAgfX0pOyIpOworICAgICAgICBpbmZv
ID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdp
bmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8ucG93ZXJF
ZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zbW9vdGgnLCB0
cnVlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xlV3JpdGUo
J1Rlc3QgdGhhdCA0ayBAIDYwZnBzIGlzIHN1cHBvcnRlZCwgYnV0IG5vdCBzbW9vdGggb3IgcG93
ZXJFZmZpY2llbnQnKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFD
YXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ21lZGlhLXNvdXJjZScsIHZpZGVvOiB7
IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0OyBjb2RlY3M9XCJ2cDA5LjAwLjQxLjA4XCInLCBoZWln
aHQ6IDEwODAsIGJpdHJhdGU6IDgwMDAwMCwgd2lkdGg6IDMxODAsIGZyYW1lcmF0ZTogNjAgfX0p
OyIpOworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ2luZm8ucG93ZXJFZmZpY2llbnQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW5mby5zbW9vdGgnLCBmYWxzZSk7CisKKyAgICAgICAgY29uc29sZVdyaXRlKCcnKTsKKyAg
ICAgICAgY29uc29sZVdyaXRlKCdUZXN0IHRoYXQgU1cgVlA5IGRlY29kZXIgaXMgbm90IHN1cHBv
cnRlZCBvbiBiYXR0ZXJ5IHBvd2VyIHdoZW4gc2NyZWVuIGlzIG5vdCA0ayByZXNvbHV0aW9uJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyhmYWxzZSkn
KTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRl
Y29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50VHlwZTog
J3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwiJywgaGVpZ2h0OiAxMDgwLCBiaXRy
YXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19KTsiKTsKKyAgICAgICAg
aW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW5mby5zdXBwb3J0ZWQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5w
b3dlckVmZmljaWVudCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnNtb290
aCcsIGZhbHNlKTsKKworICAgICAgICBjb25zb2xlV3JpdGUoJycpOworICAgICAgICBjb25zb2xl
V3JpdGUoJ1Rlc3QgdGhhdCBTVyBWUDkgZGVjb2RlciBpcyBzdXBwb3J0ZWQgb24gYmF0dGVyeSBw
b3dlciB3aGVuIHNjcmVlbiBpcyBhdCBsZWFzdCA0ayByZXNvbHV0aW9uJyk7CisgICAgICAgIHJ1
bignaW50ZXJuYWxzLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoMzg0MCwgMjE2
MCwgMSknKTsKKyAgICAgICAgcnVuKCJwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0
aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdtZWRpYS1zb3VyY2UnLCB2aWRlbzogeyBjb250ZW50
VHlwZTogJ3ZpZGVvL21wNDsgY29kZWNzPVwidnAwOS4wMC40MS4wOFwiJywgaGVpZ2h0OiAxMDgw
LCBiaXRyYXRlOiA4MDAwMDAsIHdpZHRoOiAzMTgwLCBmcmFtZXJhdGU6IDMwIH19KTsiKTsKKyAg
ICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdp
bmZvLnBvd2VyRWZmaWNpZW50JywgZmFsc2UpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8u
c21vb3RoJywgdHJ1ZSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiIC8+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>