<?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>174083</bug_id>
          
          <creation_ts>2017-07-02 20:31:28 -0700</creation_ts>
          <short_desc>[WebIDL] Remove more unnecessary uses of the preprocessor in idl files</short_desc>
          <delta_ts>2017-07-06 15:16:08 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324993</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-02 20:31:28 -0700</bug_when>
    <thetext>[WebIDL] Remove more unnecessary uses of the preprocessor in idl files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324994</commentid>
    <comment_count>1</comment_count>
      <attachid>314439</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-02 20:37:59 -0700</bug_when>
    <thetext>Created attachment 314439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324995</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-02 20:40:35 -0700</bug_when>
    <thetext>Attachment 314439 did not pass style-queue:


ERROR: Source/WebKit/mac/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig). Use sync-feature-defines if possible.  [featuredefines/equality] [5]
ERROR: Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig). Use sync-feature-defines if possible.  [featuredefines/equality] [5]
ERROR: Source/WebCore/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig). Use sync-feature-defines if possible.  [featuredefines/equality] [5]
ERROR: Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig). Use sync-feature-defines if possible.  [featuredefines/equality] [5]
ERROR: Source/WebKit2/Configurations/FeatureDefines.xcconfig:0:  Any changes made to FeatureDefines should be made to all of them (changed file does not match Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig). Use sync-feature-defines if possible.  [featuredefines/equality] [5]
Total errors found: 5 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324998</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-02 20:43:05 -0700</bug_when>
    <thetext>Only 4 uses of the preprocessor for IDLs remain:
- DeviceOrientationEvent has an #if defined(WTF_PLATFORM_IOS).
    We should see if we can merge the iOS and standards track implementations. This would require adding support for the &apos;absolute&apos; property.

- Document.idl has a union, RenderingContext, that has items that are conditionally supported. 
- CanvasRenderingContext2D.idl has a union, CanvasImageSource, that has items that are conditionally supported.
- HTMLMediaElement has has a union, MediaProvider, that has items that are conditionally supported.
    Solving these three are more difficult, as we don&apos;t have a good model of this conditionality. We should look into extended attributes on the union members for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325251</commentid>
    <comment_count>4</comment_count>
      <attachid>314439</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-07-03 14:20:59 -0700</bug_when>
    <thetext>Comment on attachment 314439
Patch

Let&apos;s definitely stop running all these files through the C preprocessor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325268</commentid>
    <comment_count>5</comment_count>
      <attachid>314439</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-03 14:49:09 -0700</bug_when>
    <thetext>Comment on attachment 314439
Patch

Clearing flags on attachment: 314439

Committed r219097: &lt;http://trac.webkit.org/changeset/219097&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325269</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-03 14:49:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326189</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-06 14:27:25 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1326190</commentid>
    <comment_count>8</comment_count>
      <attachid>314757</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-07-06 14:27:25 -0700</bug_when>
    <thetext>Created attachment 314757
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314439</attachid>
            <date>2017-07-02 20:37:59 -0700</date>
            <delta_ts>2017-07-06 14:27:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174083-20170702203920.patch</filename>
            <type>text/plain</type>
            <size>45565</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MDYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE3LTA3LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dl
YklETF0gUmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNlcyBvZiB0aGUgcHJlcHJvY2Vzc29yIGlu
IGlkbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgQWRk
IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKwogMjAxNy0wNy0wMiAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBXVEY6OlRocmVhZCBzaG91bGQg
aGF2ZSB0aGUgdGhyZWFkcyBzdGFjayBib3VuZHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCShyZXZpc2lvbiAyMTkwNjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsx
NTEsNyBAQCBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFW3Nkaz1t
YWNvc3gqXSA9IEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU7CiBFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMgPSA7CiBFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kgPSBFTkFCTEVf
TkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1k7CitFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVbc2Rr
PWlwaG9uZSpdID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PU05JRkYg
PSBFTkFCTEVfTk9TTklGRjsKIEVOQUJMRV9OT1RJRklDQVRJT05TW3Nkaz1tYWNvc3gqXSA9IEVO
QUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BERktJVF9QTFVHSU5bc2RrPW1hY29zeCpdID0g
RU5BQkxFX1BERktJVF9QTFVHSU47CkBAIC0yNDksNCArMjUwLDQgQEAgRU5BQkxFX0RSQUdfU1VQ
UE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMQogRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05bc2RrPWlw
aG9uZW9zMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwogRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT05bc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsK
IAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJ
TkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQo
RU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJM
RV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5W
QVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJ
TFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxF
X0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxF
X0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNPUl9W
SVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9F
TEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9S
VCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9O
UykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJF
Q0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9O
X09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQo
RU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRf
S0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxF
X0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVT
UykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NP
TlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQo
RU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FV
VE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNF
UlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQo
RU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9S
RVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZG
X0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19Q
QVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxf
MikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9T
SVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NT
X1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9S
U19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQp
ICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRM
RVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9O
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9G
QVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkg
JChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9B
VFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9M
RUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAk
KEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFD
X0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAk
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTkFWSUdBVE9S
X1NUQU5EQUxPTkUpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFJP
WElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09NUExF
VEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX1VT
QUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykg
JChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxF
X1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05V
TUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hf
RVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1Rf
QUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9X
RUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZKSAk
KEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIp
ICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVO
QUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA2MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA3
LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVt
b3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNlcyBvZiB0aGUgcHJlcHJvY2Vzc29yIGluIGlkbCBmaWxl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDgz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHVyZ2Ug
YXMgbXVjaCBwcmVwcm9jZXNzb3IgdXNlIGFzIHBvc3NpYmxlLgorCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgIEFkZCBFTkFCTEVfTkFW
SUdBVE9SX1NUQU5EQUxPTkUuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGw6
CisgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjaGVjayBmb3IgTEFOR1VBR0VfT0JKRUNUSVZF
X0MuIFdlIG5vIGxvbmdlciBnZW5lcmF0ZSB0aG9zZSBiaW5kaW5ncy4KKworICAgICAgICAqIGh0
bWwvTWVkaWFFcnJvci5pZGw6CisgICAgICAgIFVzZSBbQ29uZGl0aW9uYWxdIHJhdGhlciB0aGFu
IHRoZSBwcmVwcm9jZXNzb3IuCisKKyAgICAgICAgKiBwYWdlL05hdmlnYXRvci5pZGw6CisgICAg
ICAgIFVzZSBbQ29uZGl0aW9uYWxdIHJhdGhlciB0aGFuIHRoZSBwcmVwcm9jZXNzb3Igd2l0aCB0
aGUgbmV3IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKworICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICBF
eHBvc2Ugc2V0UXVpY2tMb29rUGFzc3dvcmQgb24gYWxsIHBsYXRmb3JtcywgYXMgaXQgZG9lc24n
dCBodXJ0IHNpbmNlIGl0IGlzIG9ubHkgZm9yIHRlc3RpbmcsCisgICAgICAgIGJ1dCBtYWtlIHRo
ZSBpbXBsZW1lbnRhdGlvbiBkbyBub3RoaW5nLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaWRsOgorICAgICAgICBVc2UgW0NvbmRpdGlvbmFsXSByYXRoZXIgdGhhbiB0aGUgcHJlcHJv
Y2Vzc29yLgorCiAyMDE3LTA3LTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2Ugc2hvdWxkIHBhc3MgZnJhbWUg
dGltZXN0YW1wCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dl
YkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MSw2ICsxNTEsNyBAQCBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTU9VU0VfQ1VS
U09SX1NDQUxFW3Nkaz1tYWNvc3gqXSA9IEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU7CiBFTkFC
TEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMgPSA7CiBFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VS
UkVOQ1kgPSBFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1k7CitFTkFCTEVfTkFWSUdBVE9S
X1NUQU5EQUxPTkVbc2RrPWlwaG9uZSpdID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwog
RU5BQkxFX05PU05JRkYgPSBFTkFCTEVfTk9TTklGRjsKIEVOQUJMRV9OT1RJRklDQVRJT05TW3Nk
az1tYWNvc3gqXSA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BERktJVF9QTFVHSU5b
c2RrPW1hY29zeCpdID0gRU5BQkxFX1BERktJVF9QTFVHSU47CkBAIC0yNDksNCArMjUwLDQgQEAg
RU5BQkxFX0RSQUdfU1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMQogRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT05bc2RrPWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwogRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT05bc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfREFU
QV9JTlRFUkFDVElPTjsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JN
UykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9P
VkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NB
UFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRI
KSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVO
QUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09S
SUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JF
R0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19M
RVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQo
RU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIp
ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAk
KEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNU
X0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xF
VkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5f
V09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFC
TEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChF
TkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRS
SUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVO
QUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dF
U1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQo
RU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVO
QUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
KSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9J
TlRFUl9MT0NLKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VG
RklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVO
QUJMRV9SRVFVRVNUX0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJM
RV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChF
TkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9Y
KSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9E
RV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVO
VCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQo
RU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FO
SU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVO
QUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFC
TEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVO
QUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNU
T01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
QVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAk
KEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVf
SU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRM
KSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVf
S0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRD
SCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVf
TUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQo
RU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklH
QVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05P
VElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9D
SykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNU
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVR
VUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5B
QkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VS
VklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFN
U19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykg
JChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5B
QkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01F
RElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAk
KEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNp
b24gMjE5MDYwKQorKysgU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNlcyBvZiB0
aGUgcHJlcHJvY2Vzc29yIGluIGlkbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZzoKKyAgICAgICAgQWRkIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKwogMjAxNy0w
Ny0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJl
bW92ZSBjb2RlIG9ubHkgbmVlZGVkIHdoZW4gYnVpbGRpbmcgZm9yIGlPUyA5LngKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcJKHJldmlzaW9uIDIxOTA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL1BBTC9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAt
MTUxLDYgKzE1MSw3IEBAIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NB
TEVbc2RrPW1hY29zeCpdID0gRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRTsKIEVOQUJMRV9OQVZJ
R0FUT1JfQ09OVEVOVF9VVElMUyA9IDsKIEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSA9
IEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWTsKK0VOQUJMRV9OQVZJR0FUT1JfU1RBTkRB
TE9ORVtzZGs9aXBob25lKl0gPSBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkU7CiBFTkFCTEVf
Tk9TTklGRiA9IEVOQUJMRV9OT1NOSUZGOwogRU5BQkxFX05PVElGSUNBVElPTlNbc2RrPW1hY29z
eCpdID0gRU5BQkxFX05PVElGSUNBVElPTlM7CiBFTkFCTEVfUERGS0lUX1BMVUdJTltzZGs9bWFj
b3N4Kl0gPSBFTkFCTEVfUERGS0lUX1BMVUdJTjsKQEAgLTI0OSw0ICsyNTAsNCBAQCBFTkFCTEVf
RFJBR19TVVBQT1JUW3Nkaz1pcGhvbmVzaW11bGF0b3IxCiBFTkFCTEVfREFUQV9JTlRFUkFDVElP
TltzZGs9aXBob25lb3MxMSpdID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CiBFTkFCTEVfREFU
QV9JTlRFUkFDVElPTltzZGs9aXBob25lc2ltdWxhdG9yMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVS
QUNUSU9OOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lP
Tl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMp
ICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5B
QkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9OU19MRVZFTF8yKSAkKEVOQUJM
RV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykg
JChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkg
JChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJB
R19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0ZBU1RfSklUX1BF
Uk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQ
QURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJT
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxF
X0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlRF
UlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VW
RU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfSklUKSAkKEVOQUJMRV9L
RVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkg
JChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9FTkNS
WVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xF
VFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVf
TUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NU
UkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5B
QkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xP
Q0spICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElT
VCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JF
UVVFU1RfQVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVO
QUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NF
UlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVB
TVNfQVBJKSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVO
QUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9W
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSkgJChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlC
QUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVO
QUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVf
Q0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1NfQU5JTUFUSU9O
U19MRVZFTF8yKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NT
U19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9D
U1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVO
QUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1Nf
U0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NT
UzNfVEVYVCkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hF
TUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT04pICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RBVEFDVUVf
VkFMVUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQo
RU5BQkxFX0ZBU1RfSklUX1BFUk1JU1NJT05TKSAkKEVOQUJMRV9GRVRDSF9BUEkpICQoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlRMX0pJVCkgJChFTkFCTEVfRlVMTFNDUkVFTl9B
UEkpICQoRU5BQkxFX0dBTUVQQURfREVQUkVDQVRFRCkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBM
RVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9X
RUVLKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lOVEwpICQoRU5B
QkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfSklUKSAkKEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRUUklCVVRFKSAkKEVOQUJMRV9LRVlCT0FS
RF9DT0RFX0FUVFJJQlVURSkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
Q0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9T
RVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVf
TUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZKSAkKEVOQUJMRV9O
QVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNUX0FV
VE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNFX0NP
TlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkg
JChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxF
UEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJM
RV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNF
UlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9fUFJF
U0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQo
RU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9S
RVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1h
dGFibGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRh
YmxlLmlkbAkocmV2aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Fu
aW1hdGFibGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJBbmltYXRpb25zLAogICAgIE5vSW50ZXJmYWNlT2JqZWN0CiBdIGludGVy
ZmFjZSBBbmltYXRhYmxlIHsKLSNpZiAhZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwg
IUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgLy8gRklYTUU6IEluY29tcGxldGUgaW50ZXJmYWNl
IChpbXBsZW1lbnQgYW5pbWF0ZSkuCiAgICAgc2VxdWVuY2U8V2ViQW5pbWF0aW9uPiBnZXRBbmlt
YXRpb25zKCk7Ci0jZW5kaWYKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRXJy
b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5pZGwJ
KHJldmlzaW9uIDIxOTA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE1FRElBX0VSUl9ORVRXT1JLID0gMjsKICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE1F
RElBX0VSUl9ERUNPREUgPSAzOwogICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTUVESUFfRVJS
X1NSQ19OT1RfU1VQUE9SVEVEID0gNDsKLSNpZiAoZGVmaW5lZChFTkFCTEVfTEVHQUNZX0VOQ1JZ
UFRFRF9NRURJQSkgJiYgRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpCi0gICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBNRURJQV9FUlJfRU5DUllQVEVEID0gNTsKLSNlbmRpZgorICAgICAg
W0NvbmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBURURfTUVESUFdIGNvbnN0IHVuc2lnbmVkIHNob3J0
IE1FRElBX0VSUl9FTkNSWVBURUQgPSA1OwogICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIHNob3J0IGNvZGU7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbAkocmV2
aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29s
ZWFuIGNvb2tpZUVuYWJsZWQ7CiAgICAgYm9vbGVhbiBqYXZhRW5hYmxlZCgpOwogCi0gICAgLy8g
RklYTUU6IENvbnZlcnQgdGhpcyAjaWYnZGVmIHRvIGFuIElETCBjb25kaXRpb25hbCBhdHRyaWJ1
dGUuCi0jaWYgZGVmaW5lZChXVEZfUExBVEZPUk1fSU9TKSAmJiBXVEZfUExBVEZPUk1fSU9TCi0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3RhbmRhbG9uZTsKLSNlbmRpZgorICAgIFtD
b25kaXRpb25hbD1OQVZJR0FUT1JfU1RBTkRBTE9ORV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gc3RhbmRhbG9uZTsKIAogICAgIHZvaWQgZ2V0U3RvcmFnZVVwZGF0ZXMoKTsgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBvciByZW5hbWUgdG8geWllbGRGb3JTdG9yYWdlVXBkYXRlcy4K
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyMTkw
NjApCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwMjIsMTAgKzQwMjIsOSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OmFjY2Vz
c0tleU1vZGlmCiAgICAgcmV0dXJuIGFjY2Vzc0tleU1vZGlmaWVyU3RyaW5nczsKIH0KIAotI2lm
IFBMQVRGT1JNKElPUykKIHZvaWQgSW50ZXJuYWxzOjpzZXRRdWlja0xvb2tQYXNzd29yZChjb25z
dCBTdHJpbmcmIHBhc3N3b3JkKQogewotI2lmIFVTRShRVUlDS19MT09LKQorI2lmIFBMQVRGT1JN
KElPUykgJiYgVVNFKFFVSUNLX0xPT0spCiAgICAgYXV0byYgcXVpY2tMb29rSGFuZGxlQ2xpZW50
ID0gTW9ja1ByZXZpZXdMb2FkZXJDbGllbnQ6OnNpbmdsZXRvbigpOwogICAgIFByZXZpZXdMb2Fk
ZXI6OnNldENsaWVudEZvclRlc3RpbmcoJnF1aWNrTG9va0hhbmRsZUNsaWVudCk7CiAgICAgcXVp
Y2tMb29rSGFuZGxlQ2xpZW50LnNldFBhc3N3b3JkKHBhc3N3b3JkKTsKQEAgLTQwMzMsNyArNDAz
Miw2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRRdWlja0xvb2tQYXNzd29yZChjb24KICAgICBVTlVT
RURfUEFSQU0ocGFzc3dvcmQpOwogI2VuZGlmCiB9Ci0jZW5kaWYKIAogdm9pZCBJbnRlcm5hbHM6
OnNldEFzUnVubmluZ1VzZXJTY3JpcHRzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNTY4LDkgKzU2OCw3
IEBAIHB1YmxpYzoKIAogICAgIFZlY3RvcjxTdHJpbmc+IGFjY2Vzc0tleU1vZGlmaWVycygpIGNv
bnN0OwogCi0jaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0UXVpY2tMb29rUGFzc3dvcmQo
Y29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKIAogICAgIHZvaWQgc2V0QXNSdW5uaW5nVXNlclNjcmlw
dHMoRG9jdW1lbnQmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAko
cmV2aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsOSArMzAwLDcgQEAgZW51bSBFdmVudFRocm90dGxpbmdC
ZWhhdmlvciB7CiAgICAgdm9pZCBiZWdpblNpbXVsYXRlZE1lbW9yeVByZXNzdXJlKCk7CiAgICAg
dm9pZCBlbmRTaW11bGF0ZWRNZW1vcnlQcmVzc3VyZSgpOwogCi0jaWYgZGVmaW5lZChFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUykgJiYgRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMKLSAgICBbTWF5VGhy
b3dFeGNlcHRpb25dIHZvaWQgc2V0RGV2aWNlUHJveGltaXR5KERPTVN0cmluZyBldmVudFR5cGUs
IHVucmVzdHJpY3RlZCBkb3VibGUgdmFsdWUsIHVucmVzdHJpY3RlZCBkb3VibGUgbWluLCB1bnJl
c3RyaWN0ZWQgZG91YmxlIG1heCk7Ci0jZW5kaWYKKyAgICBbQ29uZGl0aW9uYWw9UFJPWElNSVRZ
X0VWRU5UUywgTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0RGV2aWNlUHJveGltaXR5KERPTVN0
cmluZyBldmVudFR5cGUsIHVucmVzdHJpY3RlZCBkb3VibGUgdmFsdWUsIHVucmVzdHJpY3RlZCBk
b3VibGUgbWluLCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heCk7CiAKICAgICB1bnNpZ25lZCBsb25n
IG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1
bWVudHMoKTsKQEAgLTMzNSwxMiArMzMzLDEwIEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogCiAgICAgdm9pZCBzZXRUb3BDb250ZW50SW5zZXQodW5yZXN0cmljdGVkIGZsb2F0IGNv
bnRlbnRJbnNldCk7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJCi0gICAgdm9pZCB3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwotICAgIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwotICAgIHZvaWQgd2Via2l0V2lsbEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwotICAgIHZvaWQgd2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQgZWxlbWVudCk7Ci0jZW5kaWYKKyAgICBb
Q29uZGl0aW9uYWw9RlVMTFNDUkVFTl9BUEldIHZvaWQgd2Via2l0V2lsbEVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCBlbGVtZW50KTsKKyAgICBbQ29uZGl0aW9uYWw9RlVMTFNDUkVF
Tl9BUEldIHZvaWQgd2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50IGVs
ZW1lbnQpOworICAgIFtDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gdm9pZCB3ZWJraXRXaWxs
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQgZWxlbWVudCk7CisgICAgW0NvbmRpdGlv
bmFsPUZVTExTQ1JFRU5fQVBJXSB2b2lkIHdlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChFbGVtZW50IGVsZW1lbnQpOwogCiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKIApAQCAtNDg1LDEwICs0ODEsOCBAQCBl
bnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAogICAgIFtDb25kaXRpb25hbD1DT05URU5U
X0ZJTFRFUklOR10gcmVhZG9ubHkgYXR0cmlidXRlIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mg
bW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczsKIAotI2lmIGRlZmluZWQoRU5BQkxFX0NTU19TQ1JP
TExfU05BUCkgJiYgRU5BQkxFX0NTU19TQ1JPTExfU05BUAotICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gRE9NU3RyaW5nIHNjcm9sbFNuYXBPZmZzZXRzKEVsZW1lbnQgZWxlbWVudCk7Ci0gICAgdm9p
ZCBzZXRQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5nUHJlZGljdGlvbkVuYWJsZWQoYm9vbGVhbiBl
bmFibGVkKTsKLSNlbmRpZgorICAgIFtDb25kaXRpb25hbD1DU1NfU0NST0xMX1NOQVAsIE1heVRo
cm93RXhjZXB0aW9uXSBET01TdHJpbmcgc2Nyb2xsU25hcE9mZnNldHMoRWxlbWVudCBlbGVtZW50
KTsKKyAgICBbQ29uZGl0aW9uYWw9Q1NTX1NDUk9MTF9TTkFQXSB2b2lkIHNldFBsYXRmb3JtTW9t
ZW50dW1TY3JvbGxpbmdQcmVkaWN0aW9uRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogCiAgICAg
W01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcGF0aFN0cmluZ1dpdGhTaHJpbmtXcmFwcGVk
UmVjdHMoc2VxdWVuY2U8ZG91YmxlPiByZWN0Q29tcG9uZW50cywgZG91YmxlIHJhZGl1cyk7CiAK
QEAgLTUyNSw5ICs1MTksNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKIAogICAg
IHNlcXVlbmNlPERPTVN0cmluZz4gYWNjZXNzS2V5TW9kaWZpZXJzKCk7CiAKLSNpZiBkZWZpbmVk
KFdURl9QTEFURk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKICAgICB2b2lkIHNldFF1aWNr
TG9va1Bhc3N3b3JkKERPTVN0cmluZyBwYXNzd29yZCk7Ci0jZW5kaWYKIAogICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gdm9pZCBzZXRBc1J1bm5pbmdVc2VyU2NyaXB0cygpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMTkwNjApCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNy0wMiAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlbW92ZSBtb3JlIHVubmVjZXNzYXJ5IHVz
ZXMgb2YgdGhlIHByZXByb2Nlc3NvciBpbiBpZGwgZmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDA4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgIEFkZCBFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUuCisK
IDIwMTctMDctMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBb
aU9TXSBSZW1vdmUgY29kZSBvbmx5IG5lZWRlZCB3aGVuIGJ1aWxkaW5nIGZvciBpT1MgOS54Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMjE5MDYwKQorKysgU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2
ICsxNTEsNyBAQCBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFW3Nk
az1tYWNvc3gqXSA9IEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEU7CiBFTkFCTEVfTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMgPSA7CiBFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kgPSBFTkFC
TEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1k7CitFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkVb
c2RrPWlwaG9uZSpdID0gRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FOwogRU5BQkxFX05PU05J
RkYgPSBFTkFCTEVfTk9TTklGRjsKIEVOQUJMRV9OT1RJRklDQVRJT05TW3Nkaz1tYWNvc3gqXSA9
IEVOQUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BERktJVF9QTFVHSU5bc2RrPW1hY29zeCpd
ID0gRU5BQkxFX1BERktJVF9QTFVHSU47CkBAIC0yNDksNCArMjUwLDQgQEAgRU5BQkxFX0RSQUdf
U1VQUE9SVFtzZGs9aXBob25lc2ltdWxhdG9yMQogRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05bc2Rr
PWlwaG9uZW9zMTEqXSA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwogRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT05bc2RrPWlwaG9uZXNpbXVsYXRvcjExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElP
TjsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JP
TExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMp
ICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVO
QUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9D
QU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05URU5U
X0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVWRUxfMikgJChFTkFCTEVfQ1NT
X0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxF
X0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5B
QkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5B
QkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVUlNP
Ul9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQ
UE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9GQVNUX0pJVF9QRVJNSVNT
SU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5B
QkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEX0RF
UFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5URVJTRUNU
SU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMp
ICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJVCkgJChFTkFCTEVfS0VZQk9B
UkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpICQoRU5B
QkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRVRURVJQ
UkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9D
VVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9O
QVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTk9TTklGRikgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAk
KEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVFVRVNU
X0FVVE9DT01QTEVURSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVf
UkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TRVJWSUNF
X0NPTlRST0xTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQ
SSkgJChFTkFCTEVfU1VCVExFX0NSWVBUTykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU9f
UFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX01BQ19WSURFT19UT09MQk9YKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEp
ICQoRU5BQkxFX1dFQl9BTklNQVRJT05TKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9SRVBMQVkpICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XRUJBU1NFTUJMWSkgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJB
TlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVf
QVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZB
U19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
KSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTX0FOSU1BVElPTlNfTEVW
RUxfMikgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09N
UE9TSVRJTkcpICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1MzX1RF
WFQpICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hB
TkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNU
SU9OKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVF
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9GQVNUX0pJVF9QRVJNSVNTSU9OUykgJChFTkFCTEVfRkVUQ0hfQVBJKSAkKEVOQUJMRV9GSUxU
RVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZUTF9KSVQpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAk
KEVOQUJMRV9HQU1FUEFEX0RFUFJFQ0FURUQpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JTlRMKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0pJ
VCkgJChFTkFCTEVfS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkgJChFTkFCTEVfS0VZQk9BUkRfQ09E
RV9BVFRSSUJVVEUpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
TUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRV
UkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lP
TikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1M
KSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5U
X1VUSUxTKSAkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkgJChFTkFCTEVfTkFWSUdB
VE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxFX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVRVUVTVF9BVVRPQ09N
UExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNF
X1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0VSVklDRV9DT05UUk9M
UykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5B
QkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05F
X05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9V
Q0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxF
Q1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJM
RV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfUkVQTEFZ
KSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJH
TDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAk
KEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxOTA2MCkKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEz
IEBACisyMDE3LTA3LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
W1dlYklETF0gUmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNlcyBvZiB0aGUgcHJlcHJvY2Vzc29y
IGluIGlkbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc0MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAg
QWRkIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKwogMjAxNy0wNy0wMSAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugdmlld3BvcnQt
Zml0IHZhbHVlIHRvIFVJS2l0IHZpYSB2aWV3cG9ydCBhcmd1bWVudHMgZGljdGlvbmFyeQpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDIxOTA2MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTEsNiArMTUxLDcgQEAgRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01PVVNFX0NVUlNPUl9T
Q0FMRVtzZGs9bWFjb3N4Kl0gPSBFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFOwogRU5BQkxFX05B
VklHQVRPUl9DT05URU5UX1VUSUxTID0gOwogRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
ID0gRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZOworRU5BQkxFX05BVklHQVRPUl9TVEFO
REFMT05FW3Nkaz1pcGhvbmUqXSA9IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORTsKIEVOQUJM
RV9OT1NOSUZGID0gRU5BQkxFX05PU05JRkY7CiBFTkFCTEVfTk9USUZJQ0FUSU9OU1tzZGs9bWFj
b3N4Kl0gPSBFTkFCTEVfTk9USUZJQ0FUSU9OUzsKIEVOQUJMRV9QREZLSVRfUExVR0lOW3Nkaz1t
YWNvc3gqXSA9IEVOQUJMRV9QREZLSVRfUExVR0lOOwpAQCAtMjQ5LDQgKzI1MCw0IEBAIEVOQUJM
RV9EUkFHX1NVUFBPUlRbc2RrPWlwaG9uZXNpbXVsYXRvcjEKIEVOQUJMRV9EQVRBX0lOVEVSQUNU
SU9OW3Nkaz1pcGhvbmVvczExKl0gPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKIEVOQUJMRV9E
QVRBX0lOVEVSQUNUSU9OW3Nkaz1pcGhvbmVzaW11bGF0b3IxMSpdID0gRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT047CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNT
SU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9O
UykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChF
TkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJT05TX0xFVkVMXzIpICQoRU5B
QkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRB
VElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05T
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
UkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRkFTVF9KSVRf
UEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFCTEVfRklMVEVSU19MRVZFTF8y
KSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FN
RVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikg
JChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktF
UlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jf
UE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lO
VEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChFTkFCTEVfSU9TX0dFU1RVUkVf
RVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9KSVQpICQoRU5BQkxF
X0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJPQVJEX0NPREVfQVRUUklCVVRF
KSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BQ19HRVNUVVJF
X0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAkKEVOQUJM
RV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVESUFf
U1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVf
TU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChF
TkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxFX05PU05JRkYpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJf
TE9DSykgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVf
UkVRVUVTVF9BVVRPQ09NUExFVEUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQo
RU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVf
U0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RS
RUFNU19BUEkpICQoRU5BQkxFX1NVQlRMRV9DUllQVE8pICQoRU5BQkxFX1NWR19GT05UUykgJChF
TkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklO
RykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxF
X1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9NQUNfVklERU9fVE9PTEJPWCkgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NT
X01FRElBKSAkKEVOQUJMRV9XRUJfQU5JTUFUSU9OUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfUkVQTEFZKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XRUJfU09DS0VUUykg
JChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV0VCQVNTRU1CTFkpICQoRU5BQkxFX1dFQkdM
KSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxF
XzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQo
RU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJM
RV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTU19BTklNQVRJ
T05TX0xFVkVMXzIpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVf
Q1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTM19URVhUKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1ND
SEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQV9J
TlRFUkFDVElPTikgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREFUQUNV
RV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkg
JChFTkFCTEVfRkFTVF9KSVRfUEVSTUlTU0lPTlMpICQoRU5BQkxFX0ZFVENIX0FQSSkgJChFTkFC
TEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVExfSklUKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0FNRVBBRF9ERVBSRUNBVEVEKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09N
UExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X1dFRUspICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU5UTCkgJChF
TkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9KSVQpICQoRU5BQkxFX0tFWUJPQVJEX0tFWV9BVFRSSUJVVEUpICQoRU5BQkxFX0tFWUJP
QVJEX0NPREVfQVRUUklCVVRFKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJ
QV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElB
X1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
Q09OVEVOVF9VVElMUykgJChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpICQoRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9OT1NOSUZGKSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQo
RU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFUVVFU1Rf
QVVUT0NPTVBMRVRFKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9S
RVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJ
KSAkKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RF
TEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5B
QkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9V
U0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfTUFDX1ZJREVPX1RPT0xCT1gpICQoRU5BQkxFX1ZJ
REVPX1RSQUNLKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkg
JChFTkFCTEVfV0VCX0FOSU1BVElPTlMpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1JFUExBWSkgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxF
X1dFQl9USU1JTkcpICQoRU5BQkxFX1dFQkFTU0VNQkxZKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkgJChFTkFCTEVfWFNMVCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>314757</attachid>
            <date>2017-07-06 14:27:25 -0700</date>
            <delta_ts>2017-07-06 15:16:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-174083-20170706142856.patch</filename>
            <type>text/plain</type>
            <size>76019</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5MjAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE3LTA3LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dl
YklETF0gUmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNlcyBvZiB0aGUgcHJlcHJvY2Vzc29yIGlu
IGlkbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc0MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgQWRk
IEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKwogMjAxNy0wNy0wNiAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzdXBwcmVz
cyB3YXJuaW5ncyBpbiBHQ0MgZW52aXJvbm1lbnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIx
OTIxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEwMiBAQAorMjAxNy0wNy0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFtXZWJJRExdIENvbnZlcnQgTXV0YXRpb25DYWxsYmFjayB0byBiZSBhIG5vcm1hbCBn
ZW5lcmF0ZSBjYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc0MTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVG8gbWFrZSB0aGlzIHdvcmsgbW9yZSBuaWNlbHksIEk6CisgICAgICAgIC0gQWRk
ZWQgdGhlIGFiaWxpdHkgdG8gZm9yIG5vbi1udWxsYWJsZSBpbnRlcmZhY2VzIGluIHNlcXVlbmNl
cyB0byBiZSBwYXNzZWQKKyAgICAgICAgICB2aWEgYSBSZWY8PiByYXRoZXIgdGhhbiBhIFJlZlB0
cjw+IGFzIGEgcGFyYW1ldGVyIHRvIGEgY2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICAgICAgKGUu
Zy4gY2FsbGJhY2sgTXlDYWxsYmFjayA9IHZvaWQgKHNlcXVlbmNlPEZvbz4gZm9vcykgd2lsbCBu
b3cgaGF2ZSB0aGUgCisgICAgICAgICAgc2lnbmF0dXJlLCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBo
YW5kbGVFdmVudChjb25zdCBWZWN0b3I8UmVmPEZvbz4+JikgcmF0aGVyCisgICAgICAgICAgdGhh
biBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChjb25zdCBWZWN0b3I8UmVmUHRyPEZv
bz4+JikuCisgICAgICAgIC0gQWRkZWQgYSBuZXcgZXh0ZW5kZWQgYXR0cmlidXRlIGZvciBjYWxs
YmFjayBmdW5jdGlvbnMgY2FsbGVkIFtDYWxsYmFja05lZWRzQ2FuSW52b2tlXQorICAgICAgICAg
IHRoYXQgYWRkcyBhIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIGNhbkludm9rZSgpIHRvIHRoZSBn
ZW5lcmF0ZWQgY2FsbGJhY2suCisgICAgICAgICAgQWxsIGl0IGRvZXMgaXMgZm9yd2FyZCB0byBB
Y3RpdmVET01DYWxsYmFjaydzIGNhbkludm9rZUNhbGxiYWNrLCBidXQgaXQKKyAgICAgICAgICBh
bGxvd3MgdGhlIGltcGxlbWVudGF0aW9uIHRvIGdldCB0byBpdC4gV2UgbWF5IG9uZSBkYXkgd2Fu
dCB0byBtb3ZlIHRoZSAKKyAgICAgICAgICBpbmhlcml0YW5jZSBvZiBBY3RpdmVET01DYWxsYmFj
ayBmcm9tIHRoZSBnZW5lcmF0ZWQgc291cmNlIHRvIHRoZSBiYXNlIGNsYXNzLgorICAgICAgICAt
IEFkZGVkIGEgbmV3IGV4dGVuZGVkIGF0dHJpYnV0ZSBmb3IgY2FsbGJhY2sgZnVuY3Rpb25zIGNh
bGxlZCBbQ2FsbGJhY2tUaGlzT2JqZWN0PVR5cGVdCisgICAgICAgICAgd2hpY2ggYWxsb3dzIHlv
dSB0byBzcGVjaWZ5IHRoYXQgdGhlIGNhbGxiYWNrIG5lZWRzIGEgdGhpcyBvYmplY3QgaW4gYWRk
aXRpb24KKyAgICAgICAgICB0byBpdHMgYXJndW1lbnRzLiBXaGVuIHNwZWNpZmllZCwgdGhlIGZp
cnN0IGFyZ3VtZW50IG9mIHRoZSBDKysgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICBmdW5jdGlv
biB3aWxsIG5vdyBjb3JyZXNwb25kIHRvIHRoZSB0aGlzIG9iamVjdCwgd2l0aCB0aGUgcmVtYWlu
aW5nIGFyZ3VtZW50cworICAgICAgICAgIHNoaWZ0ZWQgb3ZlciBvbmUuCisKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICBBZGQgTXV0YXRpb25DYWxsYmFjay4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgUmVtb3Zl
IG5vbi1nZW5lcmF0ZWQgSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCwgYW5kIGFkZCBnZW5lcmF0ZWQg
SlNNdXRhdGlvbkNhbGxiYWNrLmNwcC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXNS
ZXF1ZXN0OjpmaWx0ZXJEZXZpY2VMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRGV2aWNl
c1JlcXVlc3Q6OnN0YXJ0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2
aWNlc1JlcXVlc3QuaDoKKyAgICAgICAgU3dpdGNoIHRvIHVzaW5nIFJlZi4KKworICAgICAgICAq
IGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAgICAgIEFkZCBJbm5lclBhcmFtZXRlclR5cGUgYW5k
IE51bGxhYmxlSW5uZXJQYXJhbWV0ZXJUeXBlIHR5cGUgaG9va3MKKyAgICAgICAgYW5kIHNwZWNp
YWxpemUgd3JhcHBlcnMgdG8gdXNlIFJlZiBmb3IgSW5uZXJQYXJhbWV0ZXJUeXBlLCBhbmQgUmVm
UHRyCisgICAgICAgIGZvciBOdWxsYWJsZUlubmVyUGFyYW1ldGVyVHlwZS4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0NhbGxiYWNrRGF0YS5oOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFzc2luZyBhIHRoaXMg
b2JqZWN0LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaDogUmVt
b3ZlZC4KKyAgICAgICAgUmVtb3ZlIGN1c3RvbSBjYWxsYmFjayBjb2RlLgorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnN0cnVjdEpTTXV0YXRpb25PYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIFJlbW92
ZSBubyBsb25nZXIgbmVlZGVkIGN1c3RvbSBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKFBhcnNlVHlwZSk6CisgICAg
ICAgIEFkZCBoZWxwZXIgdG8gcGFyc2UgYSB0eXBlIGFuZCBjYWNoZSB0aGUgcmVzdWx0LgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUNhbGxiYWNrSGVhZGVyQ29udGVudCk6CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNr
SW1wbGVtZW50YXRpb25Db250ZW50KToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFtDYWxsYmFj
a05lZWRzQ2FuSW52b2tlXSBhbmQgW0NhbGxiYWNrVGhpc09iamVjdF0uIFdoZW4gW0NhbGxiYWNr
VGhpc09iamVjdF0KKyAgICAgICAgaXMgbm90IHNwZWNpZmllZCwgdXNlIGpzVW5kZWZpbmVkKCkg
YXMgdGhlIHRoaXMgb2JqZWN0IGFzIHNwZWNpZmllZCBieSBXZWJJREwuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgQWRkIFtDYWxsYmFj
a05lZWRzQ2FuSW52b2tlXSBhbmQgW0NhbGxiYWNrVGhpc09iamVjdF0uCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKFBhcnNlVHlwZSk6CisgICAg
ICAgIEFkZCBlbnRyeSBwb2ludCB0byBwYXJzZSBhIHNpbmdsZSB0eXBlLgorCisgICAgICAgICog
Y3NzL0ZvbnRGYWNlU2V0Lmg6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBSZWYuCisKKyAgICAg
ICAgKiBkb20vTXV0YXRpb25DYWxsYmFjay5oOgorICAgICAgICBVcGRhdGUgc2lnbmF0dXJlcy4K
KworICAgICAgICAqIGRvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbDogQWRkZWQuCisgICAgCisgICAg
ICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TXV0YXRp
b25PYnNlcnZlcjo6Y2FuRGVsaXZlcik6CisgICAgICAgIChXZWJDb3JlOjpNdXRhdGlvbk9ic2Vy
dmVyOjpkZWxpdmVyKToKKyAgICAgICAgU3dpdGNoIHRvIG5ldyBzaWduYXR1cmVzLgorCisgICAg
ICAgICogZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsOgorICAgICAgICBSZW1vdmUgQ3VzdG9tQ29u
c3RydWN0b3IuCisKKyAgICAgICAgKiBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2su
aDoKKyAgICAgICAgU3dpdGNoIHRvIHVzaW5nIFJlZi4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvblJldGhyb3cuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9u
V2l0aFRoaXNPYmplY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUaGlzT2JqZWN0Lmg6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0
aFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbi5jcHA6CisgICAgICAgIEFkZCAvIHVw
ZGF0ZSBiaW5kaW5ncyB0ZXN0cy4KKwogMjAxNy0wNy0wNiAgTWF0dCBMZXdpcyAgPGpsZXdpczNA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTkxOTMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIxOTIwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM5OSw2
ICszOTksNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vTWVzc2Fn
ZVBvcnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Nb3VzZUV2ZW50LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9kb20vTW91c2VFdmVudEluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9NdXRh
dGlvbkNhbGxiYWNrLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25FdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvblJlY29yZC5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXNSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuY3BwCShy
ZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhRGV2aWNlc1JlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHZv
aWQgTWVkaWFEZXZpY2VzUmVxdWVzdDo6Y29udGV4dERlc3Ryb3kKICAgICBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwogfQogCi12b2lkIE1lZGlhRGV2aWNl
c1JlcXVlc3Q6OmZpbHRlckRldmljZUxpc3QoVmVjdG9yPFJlZlB0cjxNZWRpYURldmljZUluZm8+
PiYgZGV2aWNlcykKK3ZvaWQgTWVkaWFEZXZpY2VzUmVxdWVzdDo6ZmlsdGVyRGV2aWNlTGlzdChW
ZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+JiBkZXZpY2VzKQogewogI2lmICFQTEFURk9STShD
T0NPQSkKICAgICBVTlVTRURfUEFSQU0oZGV2aWNlcyk7CkBAIC05NSw3ICs5NSw3IEBAIHZvaWQg
TWVkaWFEZXZpY2VzUmVxdWVzdDo6ZmlsdGVyRGV2aWNlTGkKIAogICAgIGludCBjYW1lcmFDb3Vu
dCA9IDA7CiAgICAgaW50IG1pY3JvcGhvbmVDb3VudCA9IDA7Ci0gICAgZGV2aWNlcy5yZW1vdmVB
bGxNYXRjaGluZyhbJl0oY29uc3QgUmVmUHRyPE1lZGlhRGV2aWNlSW5mbz4mIGRldmljZSkgLT4g
Ym9vbCB7CisgICAgZGV2aWNlcy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgUmVmPE1lZGlh
RGV2aWNlSW5mbz4mIGRldmljZSkgLT4gYm9vbCB7CiAgICAgICAgIGlmIChkZXZpY2UtPmtpbmQo
KSA9PSBNZWRpYURldmljZUluZm86OktpbmQ6OlZpZGVvaW5wdXQgJiYgKytjYW1lcmFDb3VudCA+
IGRlZmF1bHRDYW1lcmFDb3VudCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBp
ZiAoZGV2aWNlLT5raW5kKCkgPT0gTWVkaWFEZXZpY2VJbmZvOjpLaW5kOjpBdWRpb2lucHV0ICYm
ICsrbWljcm9waG9uZUNvdW50ID4gZGVmYXVsdE1pY3JvcGhvbmVDb3VudCkKQEAgLTEyMCw3ICsx
MjAsNyBAQCB2b2lkIE1lZGlhRGV2aWNlc1JlcXVlc3Q6OnN0YXJ0KCkKICAgICAgICAgRG9jdW1l
bnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogICAgICAgICBkb2N1bWVudC5zZXREZXZpY2VJREhhc2hTYWx0KGRldmljZUlkZW50aWZp
ZXJIYXNoU2FsdCk7CiAKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxNZWRpYURldmljZUluZm8+PiBk
ZXZpY2VzOworICAgICAgICBWZWN0b3I8UmVmPE1lZGlhRGV2aWNlSW5mbz4+IGRldmljZXM7CiAg
ICAgICAgIGZvciAoYXV0byYgZGV2aWNlSW5mbyA6IGNhcHR1cmVEZXZpY2VzKSB7CiAgICAgICAg
ICAgICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIGlmIChvcmlnaW5I
YXNQZXJzaXN0ZW50QWNjZXNzIHx8IGRvY3VtZW50Lmhhc0hhZEFjdGl2ZU1lZGlhU3RyZWFtVHJh
Y2soKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZp
Y2VzUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFEZXZpY2VzUmVxdWVzdC5oCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlc1JlcXVlc3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCkgZmluYWw7CiAKLSAgICB2b2lkIGZpbHRlckRldmljZUxpc3QoVmVjdG9yPFJlZlB0
cjxNZWRpYURldmljZUluZm8+PiYpOworICAgIHZvaWQgZmlsdGVyRGV2aWNlTGlzdChWZWN0b3I8
UmVmPE1lZGlhRGV2aWNlSW5mbz4+Jik7CiAKICAgICBNZWRpYURldmljZXM6OkVudW1lcmF0ZURl
dmljZXNQcm9taXNlIG1fcHJvbWlzZTsKICAgICBSZWZQdHI8TWVkaWFEZXZpY2VzUmVxdWVzdD4g
bV9wcm90ZWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMyNjIs
NiArMzI2Miw4IEBACiAJCTdDOURCRkVFMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2ht
ZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0M5REJGRUMxQTlDNDlCMTAwMEQ2QjI1IC8qIEpTSFRNTEF0dGFjaG1lbnRFbGVtZW50Lmgg
Ki87IH07CiAJCTdDQjVDQTNGMUU1MjVDNzEwMEZBRUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0I1
Q0EzRDFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICovOyB9Owog
CQk3Q0I1Q0E0MDFFNTI1QzczMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjVDQTNFMUU1MjVD
NkMwMEZBRUYxMyAvKiBNZWRpYVF1ZXJ5RXhwcmVzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdDQkE1QkI0MUYwQjU2RUIwMDM0RDc0NSAv
KiBKU011dGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDQkE1QkIyMUYwQjU2RUEwMDM0RDc0NSAvKiBKU011dGF0aW9uQ2FsbGJh
Y2suaCAqLzsgfTsKKwkJN0NCQTVCQjUxRjBCNTZFQjAwMzRENzQ1IC8qIEpTTXV0YXRpb25DYWxs
YmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0JBNUJCMzFGMEI1NkVBMDAzNEQ3NDUgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsK
IAkJN0NDMDFEMEExRTRBN0IwNDAwRTUyOUNDIC8qIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yQmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzBD
RUYyRTFFNEE1ODMyMDA4REVCODAgLyogSlNET01CdWlsdGluQ29uc3RydWN0b3JCYXNlLmNwcCAq
LzsgfTsKIAkJN0NDMDFEMEIxRTRBN0IwNDAwRTUyOUNDIC8qIEpTRE9NQ29uc3RydWN0b3JCYXNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMENF
RjJGMUU0QTU4QUQwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAgKi87IH07CiAJ
CTdDQzAxRDBDMUU0QTdCMDQwMEU1MjlDQyAvKiBKU0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMENF
RjMwMUU0QTU4RjEwMDhERUI4MCAvKiBKU0RPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50LmNwcCAq
LzsgfTsKQEAgLTYwOTAsOCArNjA5Miw2IEBACiAJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzZGMDkwMjQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNl
cnZlci5jcHAgKi87IH07CiAJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9u
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuaCAqLzsgfTsK
IAkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkYwOTE3
RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCAqLzsgfTsK
LQkJQzZGNDIwQTIxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MjBBMDE2Qjcx
NjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLzsgfTsKLQkJQzZGNDIwQTMx
NkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDIwQTExNkI3MTY0RTAwNTJBOUYyIC8q
IEpTTXV0YXRpb25DYWxsYmFjay5oICovOyB9OwogCQlDOTAyNkI2NTFCMUNGNUZFMDAxRDk5QTcg
LyogSlNNZWRpYVJlbW90ZUNvbnRyb2xzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM5MDI2QjYzMUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVt
b3RlQ29udHJvbHMuY3BwICovOyB9OwogCQlDOTAyN0Y0MTFCMUQwQUQyMDBCRkJGRUYgLyogTWVk
aWFTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM5MDI3RjNGMUIxRDBBRDIwMEJGQkZFRiAvKiBNZWRpYVNlc3Npb24uY3BwICovOyB9Owog
CQlDOTAyN0Y0MjFCMUQwQUQyMDBCRkJGRUYgLyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOTAyN0Y0MDFCMUQwQUQyMDBCRkJG
RUYgLyogTWVkaWFTZXNzaW9uLmggKi87IH07CkBAIC0xMTM3MCw2ICsxMTM3MCw5IEBACiAJCTdD
OURCRkVDMUE5QzQ5QjEwMDBENkIyNSAvKiBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxBdHRhY2htZW50RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0I1Q0EzRDFFNTI1QzZDMDBGQUVGMTMgLyog
TWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0I1Q0EzRTFFNTI1QzZDMDBGQUVGMTMgLyogTWVkaWFRdWVyeUV4cHJlc3Npb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFRdWVyeUV4cHJlc3Npb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NCQTVCQUIxRjBCNTM5QjAwMzRENzQ1IC8q
IE11dGF0aW9uQ2FsbGJhY2suaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE11dGF0aW9uQ2FsbGJhY2suaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JBNUJCMjFGMEI1NkVBMDAzNEQ3NDUgLyogSlNNdXRh
dGlvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTXV0YXRp
b25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3Q0JBNUJCMzFGMEI1
NkVBMDAzNEQ3NDUgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDQzJEREY4MUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NDMkRERkExRUM5NDE1QTAwMjdCNzc0IC8qIE5v
dGlmaWNhdGlvblBlcm1pc3Npb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0MyRERGRTFFQzk1QTQ0MDAyN0I3NzQg
LyogSlNOb3RpZmljYXRpb25QZXJtaXNzaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTm90aWZpY2F0aW9uUGVybWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNDYzOSw4ICsxNDY0Miw2IEBACiAJCUM2RjA5MDI0MTQzMjdENEYw
MDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbk9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzZGMDkwMjUxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5
IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlDNkY0MjBBMDE2QjcxNjRFMDA1MkE5RjIgLyogSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRp
b25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM2RjQyMEExMTZC
NzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNNdXRhdGlvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM5MDI2QjYzMUIxQ0Y1QUIwMDFEOTlBNyAvKiBKU01lZGlhUmVtb3RlQ29udHJv
bHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZWRpYVJlbW90
ZUNvbnRyb2xzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzkwMjZCNjQxQjFD
RjVBQjAwMUQ5OUE3IC8qIEpTTWVkaWFSZW1vdGVDb250cm9scy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU01lZGlhUmVtb3RlQ29udHJvbHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzkwMjdGM0UxQjFEMEFCOTAwQkZCRkVGIC8qIE1lZGlhU2Vzc2lvbi5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gTWVkaWFTZXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMTQ5LDYgKzIyMTUwLDggQEAKIAkJCQlCQzY0NjQ5NjExRDgyMzQ5MDA2NDU1QjAgLyogSlNE
T01TdHJpbmdNYXAuaCAqLywKIAkJCQk2NURGMzFFNTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVt
ZW50LmNwcCAqLywKIAkJCQk2NURGMzFFNjA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50Lmgg
Ki8sCisJCQkJN0NCQTVCQjMxRjBCNTZFQTAwMzRENzQ1IC8qIEpTTXV0YXRpb25DYWxsYmFjay5j
cHAgKi8sCisJCQkJN0NCQTVCQjIxRjBCNTZFQTAwMzRENzQ1IC8qIEpTTXV0YXRpb25DYWxsYmFj
ay5oICovLAogCQkJCUM2RjA5MDI0MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2JzZXJ2
ZXIuY3BwICovLAogCQkJCUM2RjA5MDI1MTQzMjdENEYwMDY4NTg0OSAvKiBKU011dGF0aW9uT2Jz
ZXJ2ZXIuaCAqLywKIAkJCQlDNkYwOEZDNzE0MzEwMDBEMDA2ODU4NDkgLyogSlNNdXRhdGlvblJl
Y29yZC5jcHAgKi8sCkBAIC0yNDA0MCw4ICsyNDA0Myw2IEBACiAJCQkJOTNCNzBENEUwOUVCMEM3
QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oICovLAogCQkJCTkzNUY0NTQwMEY3QzNCNUYw
MEQ3QzFGQiAvKiBKU0xhenlFdmVudExpc3RlbmVyLmNwcCAqLywKIAkJCQk5MzVGNDU0MTBGN0Mz
QjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5oICovLAotCQkJCUM2RjQyMEEwMTZC
NzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovLAotCQkJCUM2RjQyMEEx
MTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2suaCAqLywKIAkJCQlCQ0EzNzhC
QTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLywKIAkJCQlCQ0EzNzhC
QjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi8sCiAJCQkpOwpAQCAtMjU4
OTksNiArMjU5MDAsNyBAQAogCQkJCTg1MDMxQjMxMEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZVJl
bGF0ZWRFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzIwQTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNl
UmVsYXRlZEV2ZW50LmggKi8sCiAJCQkJQzZGMDkwMDExNDMyN0I2MTAwNjg1ODQ5IC8qIE11dGF0
aW9uQ2FsbGJhY2suaCAqLywKKwkJCQk3Q0JBNUJBQjFGMEI1MzlCMDAzNEQ3NDUgLyogTXV0YXRp
b25DYWxsYmFjay5pZGwgKi8sCiAJCQkJODUwMzFCMzMwQTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0
aW9uRXZlbnQuY3BwICovLAogCQkJCTg1MDMxQjM0MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlv
bkV2ZW50LmggKi8sCiAJCQkJOTNFRUMxRjMwOUMyODc3NzAwQzUxNUQxIC8qIE11dGF0aW9uRXZl
bnQuaWRsICovLApAQCAtMjgyMjYsNyArMjgyMjgsNiBAQAogCQkJCTJENkYzRTk1MUMxRjg1NTUw
MDYxREJENCAvKiBKU01vY2tQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5
RDEwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODMwQTM2QkQxREFDNUZBRDAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUM2RjQyMEEzMTZCNzE2NEUwMDUyQTlGMiAvKiBKU011dGF0aW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMUZDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA5MDJEMTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA4RkNBMTQzMTAw
MEQwMDY4NTg0OSAvKiBKU011dGF0aW9uUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTI4Mjk4
LDYgKzI4Mjk5LDcgQEAKIAkJCQk1N0ZFREQ0MTFEQjZENzNBMDBFQjk2RjUgLyogSlNSc2FLZXlH
ZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MDZBNjk4MURERTVFNDYwMEEwM0IxNCAv
KiBKU1JzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTIzMzVEMURDN0Q2MDgw
MEYyOEQwMSAvKiBKU1JzYU90aGVyUHJpbWVzSW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0NC
QTVCQjQxRjBCNTZFQjAwMzRENzQ1IC8qIEpTTXV0YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTc1NDcxOUYxRUNFNjI4MzAwREQ2M0IyIC8qIEpTUnNhUHNzUGFyYW1zLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzM3OTRFNjE5RUUyRkYyMDBFNUEwNDUgLyogSlNSVENDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzk2OURBQzE3RDE0MTUxMDA3RkY4NDIgLyog
SlNSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjIzNSw3ICszMjIzNyw2IEBA
CiAJCQkJRTFBREVENDcwRTc2QjhERDAwNEExQTVFIC8qIEpTTWVzc2FnZVBvcnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDIwOURBMkI0ODAwOTYzM0E1IC8qIEpTTW91c2VF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzBBMzZCQzFEQUM1RkFEMDA2RDdEMDkgLyog
SlNNb3VzZUV2ZW50SW5pdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNkY0MjBBMjE2QjcxNjRF
MDA1MkE5RjIgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1
REYzMUZCMDlEMUNDNjAwMDBCRTMyNSAvKiBKU011dGF0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzZGMDkwMkMxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRh
dGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzMxOTUsNiArMzMxOTYs
NyBAQAogCQkJCTk5Q0MwQjUzMThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk5Q0MwQjU1MThCRTk4NDkwMDZDRUJDQyAvKiBSZXBsYXlp
bmdJbnB1dEN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OUNDMEI1NzE4QkU5ODRBMDA2
Q0VCQ0MgLyogUmVwbGF5SW5wdXRDcmVhdGlvbk1ldGhvZHMuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJN0NCQTVCQjUxRjBCNTZFQjAwMzRENzQ1IC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5OUNDMEI1ODE4QkU5ODRBMDA2Q0VCQ0MgLyogUmVwbGF5SW5wdXRE
aXNwYXRjaE1ldGhvZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDQzBCNTkxOEJFOTg0QTAw
NkNFQkNDIC8qIFJlcGxheVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTlDQzBCNUIx
OEJFOTg0QTAwNkNFQkNDIC8qIFJlcGxheVNlc3Npb25TZWdtZW50LmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCShyZXZpc2lvbiAyMTkyMDEpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw2ICs1OCw5IEBAIHN0cnVjdCBJRExUeXBlIHsKICAgICB1c2luZyBQYXJhbWV0ZXJUeXBlID0g
VDsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBzdGQ6Om9wdGlvbmFsPEltcGxl
bWVudGF0aW9uVHlwZT47CiAKKyAgICB1c2luZyBJbm5lclBhcmFtZXRlclR5cGUgPSBUOworICAg
IHVzaW5nIE51bGxhYmxlSW5uZXJQYXJhbWV0ZXJUeXBlID0gc3RkOjpvcHRpb25hbDxJbXBsZW1l
bnRhdGlvblR5cGU+OworCiAgICAgdXNpbmcgTnVsbGFibGVUeXBlID0gc3RkOjpvcHRpb25hbDxJ
bXBsZW1lbnRhdGlvblR5cGU+OwogICAgIHN0YXRpYyBOdWxsYWJsZVR5cGUgbnVsbFZhbHVlKCkg
eyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CiAgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoY29u
c3QgTnVsbGFibGVUeXBlJiB2YWx1ZSkgeyByZXR1cm4gIXZhbHVlOyB9CkBAIC0xNDksNiArMTUy
LDkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFdyYXBwZXIgOgogICAgIHVzaW5n
IFBhcmFtZXRlclR5cGUgPSBUJjsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBU
KjsKIAorICAgIHVzaW5nIElubmVyUGFyYW1ldGVyVHlwZSA9IFJlZjxUPjsKKyAgICB1c2luZyBO
dWxsYWJsZUlubmVyUGFyYW1ldGVyVHlwZSA9IFJlZlB0cjxUPjsKKwogICAgIHVzaW5nIE51bGxh
YmxlVHlwZSA9IFJlZlB0cjxUPjsKICAgICBzdGF0aWMgaW5saW5lIHN0ZDo6bnVsbHB0cl90IG51
bGxWYWx1ZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBz
dGF0aWMgaW5saW5lIGJvb2wgaXNOdWxsVmFsdWUoVSYmIHZhbHVlKSB7IHJldHVybiAhdmFsdWU7
IH0KQEAgLTE3Miw2ICsxNzgsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSURMTnVs
bGFibGUgCiAgICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IHR5cGVuYW1lIFQ6Ok51bGxhYmxlUGFy
YW1ldGVyVHlwZTsKICAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSB0eXBlbmFtZSBU
OjpOdWxsYWJsZVBhcmFtZXRlclR5cGU7CiAKKyAgICB1c2luZyBJbm5lclBhcmFtZXRlclR5cGUg
PSB0eXBlbmFtZSBUOjpOdWxsYWJsZUlubmVyUGFyYW1ldGVyVHlwZTsKKyAgICB1c2luZyBOdWxs
YWJsZUlubmVyUGFyYW1ldGVyVHlwZSA9IHR5cGVuYW1lIFQ6Ok51bGxhYmxlSW5uZXJQYXJhbWV0
ZXJUeXBlOworCiAgICAgdXNpbmcgTnVsbGFibGVUeXBlID0gdHlwZW5hbWUgVDo6TnVsbGFibGVU
eXBlOwogICAgIHN0YXRpYyBpbmxpbmUgYXV0byBudWxsVmFsdWUoKSAtPiBkZWNsdHlwZShUOjpu
dWxsVmFsdWUoKSkgeyByZXR1cm4gVDo6bnVsbFZhbHVlKCk7IH0KICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBzdGF0aWMgaW5saW5lIGJvb2wgaXNOdWxsVmFsdWUoVSYmIHZhbHVlKSB7IHJldHVy
biBUOjppc051bGxWYWx1ZShzdGQ6OmZvcndhcmQ8VT4odmFsdWUpKTsgfQpAQCAtMTgxLDggKzE5
MCw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExOdWxsYWJsZSAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExTZXF1ZW5jZSA6IElETFR5cGU8VmVjdG9yPHR5cGVuYW1l
IFQ6OkltcGxlbWVudGF0aW9uVHlwZT4+IHsKICAgICB1c2luZyBJbm5lclR5cGUgPSBUOwogCi0g
ICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IGNvbnN0IFZlY3Rvcjx0eXBlbmFtZSBUOjpJbXBsZW1l
bnRhdGlvblR5cGU+JjsKLSAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3Rvcjx0eXBlbmFtZSBUOjpJbXBsZW1lbnRhdGlvblR5cGU+PiY7Cisg
ICAgdXNpbmcgUGFyYW1ldGVyVHlwZSA9IGNvbnN0IFZlY3Rvcjx0eXBlbmFtZSBUOjpJbm5lclBh
cmFtZXRlclR5cGU+JjsKKyAgICB1c2luZyBOdWxsYWJsZVBhcmFtZXRlclR5cGUgPSBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3Rvcjx0eXBlbmFtZSBUOjpJbm5lclBhcmFtZXRlclR5cGU+PiY7CiB9
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSURMRnJvemVuQXJyYXkgOiBJRExUeXBl
PFZlY3Rvcjx0eXBlbmFtZSBUOjpJbXBsZW1lbnRhdGlvblR5cGU+PiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuY3BwCShyZXZpc2lvbiAyMTky
MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKICAgICAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2Fs
bGJhY2soSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGNhbGxiYWNr
LCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgQ2FsbGJhY2tUeXBlIG1ldGhvZCwgUHJvcGVy
dHlOYW1lIGZ1bmN0aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4
Y2VwdGlvbikKK0pTVmFsdWUgSlNDYWxsYmFja0RhdGE6Omludm9rZUNhbGxiYWNrKEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBjYWxsYmFjaywgSlNWYWx1ZSB0aGlz
VmFsdWUsIE1hcmtlZEFyZ3VtZW50QnVmZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgbWV0aG9kLCBQ
cm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVy
bmVkRXhjZXB0aW9uKQogewogICAgIEFTU0VSVChjYWxsYmFjayk7CiAKQEAgLTc5LDggKzc5LDgg
QEAgSlNWYWx1ZSBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soSgogCiAgICAgcmV0dXJu
ZWRFeGNlcHRpb24gPSBudWxscHRyOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gY29udGV4dC0+aXNE
b2N1bWVudCgpCi0gICAgICAgID8gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpwcm9maWxlZENhbGwo
ZXhlYywgSlNDOjpQcm9maWxpbmdSZWFzb246Ok90aGVyLCBmdW5jdGlvbiwgY2FsbFR5cGUsIGNh
bGxEYXRhLCBjYWxsYmFjaywgYXJncywgcmV0dXJuZWRFeGNlcHRpb24pCi0gICAgICAgIDogSlND
Ojpwcm9maWxlZENhbGwoZXhlYywgSlNDOjpQcm9maWxpbmdSZWFzb246Ok90aGVyLCBmdW5jdGlv
biwgY2FsbFR5cGUsIGNhbGxEYXRhLCBjYWxsYmFjaywgYXJncywgcmV0dXJuZWRFeGNlcHRpb24p
OworICAgICAgICA/IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6cHJvZmlsZWRDYWxsKGV4ZWMsIEpT
Qzo6UHJvZmlsaW5nUmVhc29uOjpPdGhlciwgZnVuY3Rpb24sIGNhbGxUeXBlLCBjYWxsRGF0YSwg
dGhpc1ZhbHVlLCBhcmdzLCByZXR1cm5lZEV4Y2VwdGlvbikKKyAgICAgICAgOiBKU0M6OnByb2Zp
bGVkQ2FsbChleGVjLCBKU0M6OlByb2ZpbGluZ1JlYXNvbjo6T3RoZXIsIGZ1bmN0aW9uLCBjYWxs
VHlwZSwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJncywgcmV0dXJuZWRFeGNlcHRpb24pOwogCiAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oY29va2llLCBjb250
ZXh0KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0
YS5oCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Nh
bGxiYWNrRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHByb3RlY3RlZDoK
ICNlbmRpZgogICAgIH0KICAgICAKLSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGludm9rZUNhbGxi
YWNrKEpTRE9NR2xvYmFsT2JqZWN0JiwgSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTQzo6TWFy
a2VkQXJndW1lbnRCdWZmZXImLCBDYWxsYmFja1R5cGUsIEpTQzo6UHJvcGVydHlOYW1lIGZ1bmN0
aW9uTmFtZSwgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+JiByZXR1cm5lZEV4Y2VwdGlvbik7Cisg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBpbnZva2VDYWxsYmFjayhKU0RPTUdsb2JhbE9iamVjdCYs
IEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBKU0M6Ok1h
cmtlZEFyZ3VtZW50QnVmZmVyJiwgQ2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5TmFtZSBmdW5j
dGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRpb24pOwog
CiBwcml2YXRlOgogICAgIEpTQzo6V2VhazxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmpl
Y3Q7CkBAIC04MywxMyArODMsMTMgQEAgcHVibGljOgogCiAgICAgSlNDOjpKU09iamVjdCogY2Fs
bGJhY2soKSB7IHJldHVybiBtX2NhbGxiYWNrLmdldCgpOyB9CiAKLSAgICBKU0M6OkpTVmFsdWUg
aW52b2tlQ2FsbGJhY2soSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgQ2FsbGJhY2tU
eXBlIGNhbGxiYWNrVHlwZSwgSlNDOjpQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtlZFB0
cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKQorICAgIEpTQzo6SlNWYWx1ZSBp
bnZva2VDYWxsYmFjayhKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBKU0M6Ok1hcmtlZEFyZ3VtZW50
QnVmZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgY2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5TmFt
ZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNlcHRp
b24pCiAgICAgewogICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB0aGlzLT5nbG9iYWxPYmpl
Y3QoKTsKICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgICAgIHJldHVybiBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soKmdsb2Jh
bE9iamVjdCwgY2FsbGJhY2soKSwgYXJncywgY2FsbGJhY2tUeXBlLCBmdW5jdGlvbk5hbWUsIHJl
dHVybmVkRXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuIEpTQ2FsbGJhY2tEYXRhOjppbnZva2VD
YWxsYmFjaygqZ2xvYmFsT2JqZWN0LCBjYWxsYmFjaygpLCB0aGlzVmFsdWUsIGFyZ3MsIGNhbGxi
YWNrVHlwZSwgZnVuY3Rpb25OYW1lLCByZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAgfQogCiBwcml2
YXRlOgpAQCAtMTA2LDEzICsxMDYsMTMgQEAgcHVibGljOgogCiAgICAgSlNDOjpKU09iamVjdCog
Y2FsbGJhY2soKSB7IHJldHVybiBtX2NhbGxiYWNrLmdldCgpOyB9CiAKLSAgICBKU0M6OkpTVmFs
dWUgaW52b2tlQ2FsbGJhY2soSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncywgQ2FsbGJh
Y2tUeXBlIGNhbGxiYWNrVHlwZSwgSlNDOjpQcm9wZXJ0eU5hbWUgZnVuY3Rpb25OYW1lLCBOYWtl
ZFB0cjxKU0M6OkV4Y2VwdGlvbj4mIHJldHVybmVkRXhjZXB0aW9uKQorICAgIEpTQzo6SlNWYWx1
ZSBpbnZva2VDYWxsYmFjayhKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBKU0M6Ok1hcmtlZEFyZ3Vt
ZW50QnVmZmVyJiBhcmdzLCBDYWxsYmFja1R5cGUgY2FsbGJhY2tUeXBlLCBKU0M6OlByb3BlcnR5
TmFtZSBmdW5jdGlvbk5hbWUsIE5ha2VkUHRyPEpTQzo6RXhjZXB0aW9uPiYgcmV0dXJuZWRFeGNl
cHRpb24pCiAgICAgewogICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB0aGlzLT5nbG9iYWxP
YmplY3QoKTsKICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgICAgIHJldHVybiBKU0NhbGxiYWNrRGF0YTo6aW52b2tlQ2FsbGJhY2soKmds
b2JhbE9iamVjdCwgY2FsbGJhY2soKSwgYXJncywgY2FsbGJhY2tUeXBlLCBmdW5jdGlvbk5hbWUs
IHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuIEpTQ2FsbGJhY2tEYXRhOjppbnZv
a2VDYWxsYmFjaygqZ2xvYmFsT2JqZWN0LCBjYWxsYmFjaygpLCB0aGlzVmFsdWUsIGFyZ3MsIGNh
bGxiYWNrVHlwZSwgZnVuY3Rpb25OYW1lLCByZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAgfQogCiBw
cml2YXRlOgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0
aW9uQ2FsbGJhY2suY3BwCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suY3BwCShub25leGlzdGVudCkKQEAgLTEsMTAxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNN
dXRhdGlvbkNhbGxiYWNrLmgiCi0KLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKLSNpbmNsdWRlICJKU0RPTUdsb2Jh
bE9iamVjdC5oIgotI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgotI2luY2x1ZGUg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkpTTXV0
YXRpb25PYnNlcnZlci5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25SZWNvcmQuaCIKLSNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8aGVhcC9XZWFrSW5saW5lcy5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNNdXRhdGlvbkNhbGxiYWNrOjpKU011dGF0aW9uQ2Fs
bGJhY2soSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQotICAgIDogQWN0aXZlRE9NQ2FsbGJhY2soZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCi0gICAgLCBtX2NhbGxiYWNrKGNhbGxiYWNrKQotICAgICwgbV9pc29sYXRlZFdv
cmxkKGdsb2JhbE9iamVjdC0+d29ybGQoKSkKLXsKLX0KLQotSlNNdXRhdGlvbkNhbGxiYWNrOjp+
SlNNdXRhdGlvbkNhbGxiYWNrKCkKLXsKLX0KLQotdm9pZCBKU011dGF0aW9uQ2FsbGJhY2s6OmNh
bGwoY29uc3QgVmVjdG9yPFJlZjxNdXRhdGlvblJlY29yZD4+JiBtdXRhdGlvbnMsIE11dGF0aW9u
T2JzZXJ2ZXIqIG9ic2VydmVyKQotewotICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUmVmPEpTTXV0YXRpb25DYWxsYmFjaz4gcHJvdGVjdGVkVGhp
cygqdGhpcyk7Ci0KLSAgICBKU0xvY2tIb2xkZXIgbG9jayhtX2lzb2xhdGVkV29ybGQtPnZtKCkp
OwotCi0gICAgaWYgKCFtX2NhbGxiYWNrKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU1ZhbHVl
IGNhbGxiYWNrID0gbV9jYWxsYmFjay5nZXQoKTsKLSAgICBDYWxsRGF0YSBjYWxsRGF0YTsKLSAg
ICBDYWxsVHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGNhbGxiYWNrLCBjYWxsRGF0YSk7Ci0g
ICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlOjpOb25lKSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNv
bnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoY29udGV4dC0+aXNEb2N1bWVudCgp
KTsKLQotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFs
T2JqZWN0KGNvbnRleHQsIG1faXNvbGF0ZWRXb3JsZCk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0g
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7Ci0KLSAgICBKU1ZhbHVlIGpzT2JzZXJ2ZXIgPSB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgb2JzZXJ2ZXIpOwotCi0gICAgTWFya2VkQXJndW1lbnRC
dWZmZXIgYXJnczsKLSAgICBhcmdzLmFwcGVuZCh0b0pTPElETFNlcXVlbmNlPElETEludGVyZmFj
ZTxNdXRhdGlvblJlY29yZD4+PigqZXhlYywgKmdsb2JhbE9iamVjdCwgbXV0YXRpb25zKSk7Ci0g
ICAgYXJncy5hcHBlbmQoanNPYnNlcnZlcik7Ci0KLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgY29va2llID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rp
b25DYWxsKGNvbnRleHQsIGNhbGxUeXBlLCBjYWxsRGF0YSk7Ci0KLSAgICBOYWtlZFB0cjxKU0M6
OkV4Y2VwdGlvbj4gZXhjZXB0aW9uOwotICAgIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6cHJvZmls
ZWRDYWxsKGV4ZWMsIEpTQzo6UHJvZmlsaW5nUmVhc29uOjpPdGhlciwgY2FsbGJhY2ssIGNhbGxU
eXBlLCBjYWxsRGF0YSwganNPYnNlcnZlciwgYXJncywgZXhjZXB0aW9uKTsKLQotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKGNvb2tpZSwgY29udGV4dCk7Ci0K
LSAgICBpZiAoZXhjZXB0aW9uKQotICAgICAgICByZXBvcnRFeGNlcHRpb24oZXhlYywgZXhjZXB0
aW9uKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDIxOTIwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFjay5oCShub25l
eGlzdGVudCkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxk
LmgiCi0jaW5jbHVkZSAiTXV0YXRpb25DYWxsYmFjay5oIgotI2luY2x1ZGUgPGhlYXAvV2Vhay5o
PgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKLQotY2xhc3MgSlNNdXRhdGlvbkNhbGxiYWNrIGZp
bmFsIDogcHVibGljIE11dGF0aW9uQ2FsbGJhY2ssIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7
Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxKU011dGF0aW9uQ2FsbGJhY2s+IGNyZWF0ZShKU0M6
OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEpTTXV0YXRpb25DYWxsYmFjayhjYWxs
YmFjaywgZ2xvYmFsT2JqZWN0KSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB+SlNNdXRhdGlvbkNh
bGxiYWNrKCk7Ci0KLSAgICB2b2lkIGNhbGwoY29uc3QgVmVjdG9yPFJlZjxNdXRhdGlvblJlY29y
ZD4+JiwgTXV0YXRpb25PYnNlcnZlciopIG92ZXJyaWRlOwotICAgIGJvb2wgY2FuSW52b2tlQ2Fs
bGJhY2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01DYWxsYmFjazo6Y2FuSW52
b2tlQ2FsbGJhY2soKTsgfQotCi1wcml2YXRlOgotICAgIEpTTXV0YXRpb25DYWxsYmFjayhKU0M6
OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsKLQotICAgIG11dGFibGUg
SlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fY2FsbGJhY2s7Ci0gICAgUmVmPERPTVdyYXBwZXJX
b3JsZD4gbV9pc29sYXRlZFdvcmxkOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MiwzOSArMzIsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU011dGF0aW9u
T2JzZXJ2ZXIuaCIKIAotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnN0cnVjdG9yQmFzZS5oIgotI2luY2x1ZGUgIkpTTXV0YXRpb25DYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIkpTTm9kZUN1c3RvbS5oIgotI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKLSNp
bmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9Qcml2YXRlTmFtZS5o
PgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNNdXRhdGlvbk9ic2VydmVyKEV4ZWNT
dGF0ZSYgZXhlYykKLXsKLSAgICBWTSYgdm0gPSBleGVjLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKGV4ZWMuYXJndW1lbnRDb3VudCgp
IDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcigmZXhlYywgc2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKCZleGVjKSk7Ci0KLSAgICBKU09iamVjdCogb2JqZWN0ID0g
ZXhlYy51bmNoZWNrZWRBcmd1bWVudCgwKS5nZXRPYmplY3QoKTsKLSAgICBDYWxsRGF0YSBjYWxs
RGF0YTsKLSAgICBpZiAoIW9iamVjdCB8fCBvYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldENhbGxE
YXRhKG9iamVjdCwgY2FsbERhdGEpID09IENhbGxUeXBlOjpOb25lKQotICAgICAgICByZXR1cm4g
dGhyb3dBcmd1bWVudFR5cGVFcnJvcihleGVjLCBzY29wZSwgMCwgImNhbGxiYWNrIiwgIk11dGF0
aW9uT2JzZXJ2ZXIiLCBudWxscHRyLCAiTXV0YXRpb25DYWxsYmFjayIpOwotCi0gICAgYXV0byog
anNDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU0RPTUNvbnN0cnVjdG9yQmFzZSo+KGV4ZWMuanNDYWxs
ZWUoKSk7Ci0gICAgYXV0byBjYWxsYmFjayA9IEpTTXV0YXRpb25DYWxsYmFjazo6Y3JlYXRlKG9i
amVjdCwganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCkpOwotICAgIEpTT2JqZWN0KiBqc09i
c2VydmVyID0gYXNPYmplY3QodG9KU05ld2x5Q3JlYXRlZCgmZXhlYywganNDb25zdHJ1Y3Rvci0+
Z2xvYmFsT2JqZWN0KCksIE11dGF0aW9uT2JzZXJ2ZXI6OmNyZWF0ZShXVEZNb3ZlKGNhbGxiYWNr
KSkpKTsKLSAgICBQcml2YXRlTmFtZSBwcm9wZXJ0eU5hbWU7Ci0gICAganNPYnNlcnZlci0+cHV0
RGlyZWN0KHZtLCBwcm9wZXJ0eU5hbWUsIG9iamVjdCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc09ic2VydmVyKTsKLX0KLQogYm9vbCBKU011dGF0aW9uT2JzZXJ2ZXJPd25lcjo6aXNS
ZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBmb3IgKGF1dG8qIG5vZGUgOiBq
c0Nhc3Q8SlNNdXRhdGlvbk9ic2VydmVyKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpLT53cmFw
cGVkKCkub2JzZXJ2ZWROb2RlcygpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTEyMCw2ICsxMjAsNyBAQCBteSAkaWRsRmlsZXM7CiBteSAkY2FjaGVkSW50ZXJmYWNl
cyA9IHt9OwogbXkgJGNhY2hlZEV4dGVybmFsRGljdGlvbmFyaWVzID0ge307CiBteSAkY2FjaGVk
RXh0ZXJuYWxFbnVtZXJhdGlvbnMgPSB7fTsKK215ICRjYWNoZWRUeXBlcyA9IHt9OwogCiBzdWIg
YXNzZXJ0CiB7CkBAIC0zNjksNiArMzcwLDIwIEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgIGRp
ZSgiQ291bGQgTk9UIGZpbmQgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yICRpbnRlcmZhY2VOYW1l
IGluICRmaWxlbmFtZSIpOwogfQogCitzdWIgUGFyc2VUeXBlCit7CisgICAgbXkgKCRvYmplY3Qs
ICR0eXBlU3RyaW5nKSA9IEBfOworCisgICAgcmV0dXJuICRjYWNoZWRUeXBlcy0+eyR0eXBlU3Ry
aW5nfSBpZiBleGlzdHMoJGNhY2hlZFR5cGVzLT57JHR5cGVTdHJpbmd9KTsKKworICAgIG15ICRw
YXJzZXIgPSBJRExQYXJzZXItPm5ldygxKTsKKyAgICBteSAkdHlwZSA9ICRwYXJzZXItPlBhcnNl
VHlwZSgkdHlwZVN0cmluZywgJGlkbEF0dHJpYnV0ZXMpOworCisgICAgJGNhY2hlZFR5cGVzLT57
JHR5cGVTdHJpbmd9ID0gJHR5cGU7CisKKyAgICByZXR1cm4gJHR5cGU7Cit9CisKICMgSGVscGVy
cyBmb3IgYWxsIENvZGVHZW5lcmF0b3IqKioucG0gbW9kdWxlcwogCiBzdWIgSXNOdW1lcmljVHlw
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxOTIwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC01OTksMTAgKzU5
OSwxMCBAQCBzdWIgR2VuZXJhdGVOYW1lZEdldHRlckxhbWJkYQogCiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gJHtyZXR1cm5UeXBlfSB7XG4iKTsKIAotICAgIG15IEBhcmdz
ID0gR2VuZXJhdGVDYWxsV2l0aFVzaW5nUmVmZXJlbmNlcygkbmFtZWRHZXR0ZXJPcGVyYXRpb24t
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxXaXRofSwgJG91dHB1dEFycmF5LCAic3RkOjpudWxs
b3B0IiwgInRoaXNPYmplY3QiLCAiICAgICAgICAiKTsKLSAgICBwdXNoKEBhcmdzLCAicHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSIpOworICAgIG15IEBhcmd1bWVudHMg
PSBHZW5lcmF0ZUNhbGxXaXRoVXNpbmdSZWZlcmVuY2VzKCRuYW1lZEdldHRlck9wZXJhdGlvbi0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbFdpdGh9LCAkb3V0cHV0QXJyYXksICJzdGQ6Om51bGxv
cHQiLCAidGhpc09iamVjdCIsICIgICAgICAgICIpOworICAgIHB1c2goQGFyZ3VtZW50cywgInBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkiKTsKIAotICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS4k
e25hbWVkR2V0dGVyRnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJncykgLiAiKTtcbiIp
OworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS4ke25hbWVkR2V0dGVyRnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBA
YXJndW1lbnRzKSAuICIpO1xuIik7CiAgICAgCiAgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259KSB7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSlcbiIp
OwpAQCAtNTc3Nyw2ICs1Nzc3LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXJDb250ZW50
CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25z
dHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIikgaWYgQHsk
Y29uc3RhbnRzfTsKIAogICAgIHB1c2goQCRjb250ZW50UmVmLCAiICAgIHZpcnR1YWwgYm9vbCBv
cGVyYXRvcj09KGNvbnN0ICR7bmFtZX0mKSBjb25zdCBvdmVycmlkZTtcblxuIikgaWYgJGludGVy
ZmFjZU9yQ2FsbGJhY2stPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxiYWNrTmVlZHNPcGVyYXRv
ckVxdWFsfTsKKyAgICBwdXNoKEAkY29udGVudFJlZiwgIiAgICB2aXJ0dWFsIGJvb2wgY2FuSW52
b2tlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NQ2FsbGJhY2s6OmNhbkludm9r
ZUNhbGxiYWNrKCk7IH1cblxuIikgaWYgJGludGVyZmFjZU9yQ2FsbGJhY2stPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0NhbGxiYWNrTmVlZHNDYW5JbnZva2V9OwogCiAgICAgIyBPcGVyYXRpb25zCiAg
ICAgbXkgJG51bU9wZXJhdGlvbnMgPSBAeyRvcGVyYXRpb25zfTsKQEAgLTU3ODQsNiArNTc4NSwx
NCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlckNvbnRlbnQKICAgICAgICAgcHVzaChAJGNv
bnRlbnRSZWYsICJcbiAgICAvLyBGdW5jdGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRv
cGVyYXRpb24gKEB7JG9wZXJhdGlvbnN9KSB7CiAgICAgICAgICAgICBteSBAYXJndW1lbnRzID0g
KCk7CisKKyAgICAgICAgICAgIG15ICRjYWxsYmFja1RoaXNPYmplY3QgPSAkb3BlcmF0aW9uLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsYmFja1RoaXNPYmplY3R9OworICAgICAgICAgICAgaWYg
KCRjYWxsYmFja1RoaXNPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBteSAkdGhpc09iamVjdFR5
cGUgPSAkY29kZUdlbmVyYXRvci0+UGFyc2VUeXBlKCRjYWxsYmFja1RoaXNPYmplY3QpOworICAg
ICAgICAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlT3JDYWxsYmFj
aywgJHRoaXNPYmplY3RUeXBlKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJ0
eXBlbmFtZSAke0lETFR5cGV9OjpQYXJhbWV0ZXJUeXBlIHRoaXNPYmplY3QiKTsKKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgZm9yZWFjaCBteSAkYXJndW1lbnQgKEB7JG9wZXJhdGlvbi0+
YXJndW1lbnRzfSkgewogICAgICAgICAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgk
aW50ZXJmYWNlT3JDYWxsYmFjaywgJGFyZ3VtZW50LT50eXBlKTsKICAgICAgICAgICAgICAgICBw
dXNoKEBhcmd1bWVudHMsICJ0eXBlbmFtZSAke0lETFR5cGV9OjpQYXJhbWV0ZXJUeXBlICIgLiAk
YXJndW1lbnQtPm5hbWUpOwpAQCAtNTkxNSwxNSArNTkyNCwzMSBAQCBzdWIgR2VuZXJhdGVDYWxs
YmFja0ltcGxlbWVudGF0aW9uQ29udGVuCiAgICAgICAgICAgICAjIEZJWE1FOiBDaGFuZ2UgdGhl
IGRlZmF1bHQgbmFtZSAodXNlZCBmb3IgY2FsbGJhY2sgZnVuY3Rpb25zKSB0byBzb21ldGhpbmcg
b3RoZXIgdGhhbiBoYW5kbGVFdmVudC4gSXQgbWFrZXMgbGl0dGxlIHNlbnNlLgogICAgICAgICAg
ICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRvcGVyYXRpb24tPm5hbWUgfHwgImhhbmRsZUV2ZW50IjsK
IAotICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKKyAgICAgICAgICAgIG15IEBhcmd1bWVudHMg
PSAoKTsKKworICAgICAgICAgICAgbXkgJHRoaXNWYWx1ZSA9ICJqc1VuZGVmaW5lZCgpIjsKKwor
ICAgICAgICAgICAgbXkgJGNhbGxiYWNrVGhpc09iamVjdCA9ICRvcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NhbGxiYWNrVGhpc09iamVjdH07CisgICAgICAgICAgICBpZiAoJGNhbGxi
YWNrVGhpc09iamVjdCkgeworICAgICAgICAgICAgICAgIG15ICR0aGlzT2JqZWN0VHlwZSA9ICRj
b2RlR2VuZXJhdG9yLT5QYXJzZVR5cGUoJGNhbGxiYWNrVGhpc09iamVjdCk7CisKKyAgICAgICAg
ICAgICAgICBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSgkdGhpc09iamVjdFR5cGUsICRpbmNsdWRl
c1JlZiwgMSk7CisgICAgICAgICAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRl
cmZhY2VPckNhbGxiYWNrLCAkdGhpc09iamVjdFR5cGUpOworICAgICAgICAgICAgICAgIHB1c2go
QGFyZ3VtZW50cywgInR5cGVuYW1lICR7SURMVHlwZX06OlBhcmFtZXRlclR5cGUgdGhpc09iamVj
dCIpOworCisgICAgICAgICAgICAgICAgbXkgJHRoaXNPYmplY3RBcmd1bWVudCA9IElETEFyZ3Vt
ZW50LT5uZXcoKTsKKyAgICAgICAgICAgICAgICAkdGhpc09iamVjdEFyZ3VtZW50LT50eXBlKCR0
aGlzT2JqZWN0VHlwZSk7CisKKyAgICAgICAgICAgICAgICAkdGhpc1ZhbHVlID0gTmF0aXZlVG9K
U1ZhbHVlVXNpbmdSZWZlcmVuY2VzKCR0aGlzT2JqZWN0QXJndW1lbnQsICRpbnRlcmZhY2VPckNh
bGxiYWNrLCAidGhpc09iamVjdCIsICJnbG9iYWxPYmplY3QiKTsKKyAgICAgICAgICAgIH0KKwog
ICAgICAgICAgICAgZm9yZWFjaCBteSAkYXJndW1lbnQgKEB7JG9wZXJhdGlvbi0+YXJndW1lbnRz
fSkgewogICAgICAgICAgICAgICAgIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKCRhcmd1bWVudC0+
dHlwZSwgJGluY2x1ZGVzUmVmLCAxKTsKLQogICAgICAgICAgICAgICAgIG15ICRJRExUeXBlID0g
R2V0SURMVHlwZSgkaW50ZXJmYWNlT3JDYWxsYmFjaywgJGFyZ3VtZW50LT50eXBlKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEBhcmdzLCAidHlwZW5hbWUgJHtJRExUeXBlfTo6UGFyYW1ldGVyVHlw
ZSAiIC4gJGFyZ3VtZW50LT5uYW1lKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMs
ICJ0eXBlbmFtZSAke0lETFR5cGV9OjpQYXJhbWV0ZXJUeXBlICIgLiAkYXJndW1lbnQtPm5hbWUp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBwdXNoKEAkY29udGVu
dFJlZiwgIiR7bmF0aXZlUmV0dXJuVHlwZX0gJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0o
IiAuIGpvaW4oIiwgIiwgQGFyZ3MpIC4gIilcbiIpOworICAgICAgICAgICAgcHVzaChAJGNvbnRl
bnRSZWYsICIke25hdGl2ZVJldHVyblR5cGV9ICR7Y2xhc3NOYW1lfTo6JHtmdW5jdGlvbk5hbWV9
KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIilcbiIpOwogICAgICAgICAgICAgcHVzaChA
JGNvbnRlbnRSZWYsICJ7XG4iKTsKIAogICAgICAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBuZWVk
ZWQgZm9yIE5vZGVGaWx0ZXIsIHdoaWNoIHdvcmtzIGV2ZW4gZm9yIGRpc2Nvbm5lY3RlZCBpZnJh
bWVzLiBXZSBzaG91bGQgaW52ZXN0aWdhdGUKQEAgLTU5MzksNiArNTk2NCw4IEBAIHN1YiBHZW5l
cmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb25Db250ZW4KICAgICAgICAgICAgIHB1c2goQCRjb250
ZW50UmVmLCAiICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTtcbiIpOwogCiAgICAgICAgICAgICBw
dXNoKEAkY29udGVudFJlZiwgIiAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QuZ2xvYmFs
RXhlYygpO1xuIik7CisKKyAgICAgICAgICAgIHB1c2goQCRjb250ZW50UmVmLCAiICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0gJHt0aGlzVmFsdWV9O1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkY29u
dGVudFJlZiwgIiAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzO1xuIik7CiAKICAgICAgICAg
ICAgIGZvcmVhY2ggbXkgJGFyZ3VtZW50IChAeyRvcGVyYXRpb24tPmFyZ3VtZW50c30pIHsKQEAg
LTU5NDksMTAgKzU5NzYsMTAgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbkNv
bnRlbgogCiAgICAgICAgICAgICBteSAkY2FsbGJhY2tJbnZvY2F0aW9uOwogICAgICAgICAgICAg
aWYgKHJlZigkaW50ZXJmYWNlT3JDYWxsYmFjaykgZXEgIklETENhbGxiYWNrRnVuY3Rpb24iKSB7
Ci0gICAgICAgICAgICAgICAgJGNhbGxiYWNrSW52b2NhdGlvbiA9ICJtX2RhdGEtPmludm9rZUNh
bGxiYWNrKGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6OkZ1bmN0aW9uLCBJZGVu
dGlmaWVyKCksIHJldHVybmVkRXhjZXB0aW9uKSI7CisgICAgICAgICAgICAgICAgJGNhbGxiYWNr
SW52b2NhdGlvbiA9ICJtX2RhdGEtPmludm9rZUNhbGxiYWNrKHRoaXNWYWx1ZSwgYXJncywgSlND
YWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb24sIElkZW50aWZpZXIoKSwgcmV0dXJu
ZWRFeGNlcHRpb24pIjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgbXkg
JGNhbGxiYWNrVHlwZSA9ICRudW1PcGVyYXRpb25zID4gMSA/ICJPYmplY3QiIDogIkZ1bmN0aW9u
T3JPYmplY3QiOwotICAgICAgICAgICAgICAgICRjYWxsYmFja0ludm9jYXRpb24gPSAibV9kYXRh
LT5pbnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjoke2Nh
bGxiYWNrVHlwZX0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBcIiR7ZnVuY3Rpb25OYW1l
fVwiKSwgcmV0dXJuZWRFeGNlcHRpb24pIjsKKyAgICAgICAgICAgICAgICAkY2FsbGJhY2tJbnZv
Y2F0aW9uID0gIm1fZGF0YS0+aW52b2tlQ2FsbGJhY2sodGhpc1ZhbHVlLCBhcmdzLCBKU0NhbGxi
YWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjoke2NhbGxiYWNrVHlwZX0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCBcIiR7ZnVuY3Rpb25OYW1lfVwiKSwgcmV0dXJuZWRFeGNlcHRpb24pIjsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKCRvcGVyYXRpb24tPnR5cGUtPm5hbWUgZXEg
InZvaWQiKSB7CkBAIC01OTg3LDEyICs2MDE0LDExIEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSW1w
bGVtZW50YXRpb25Db250ZW4KICAgICAgICAgfQogICAgIH0KIAotICAgICMgdG9KUygpIGltcGxl
bWVudGF0aW9uLgogICAgIHB1c2goQCRjb250ZW50UmVmLCAiSlNDOjpKU1ZhbHVlIHRvSlMoJHtu
YW1lfSYgaW1wbClcbiIpOwogICAgIHB1c2goQCRjb250ZW50UmVmLCAie1xuIik7CiAgICAgcHVz
aChAJGNvbnRlbnRSZWYsICIgICAgaWYgKCFzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0mPihpbXBs
KS5jYWxsYmFja0RhdGEoKSlcbiIpOwogICAgIHB1c2goQCRjb250ZW50UmVmLCAiICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7XG5cbiIpOwotICAgIHB1c2goQCRjb250ZW50UmVmLCAiICAgIHJldHVy
biBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX0mPihpbXBsKS5jYWxsYmFja0RhdGEoKS0+Y2FsbGJh
Y2soKTtcblxuIik7CisgICAgcHVzaChAJGNvbnRlbnRSZWYsICIgICAgcmV0dXJuIHN0YXRpY19j
YXN0PCR7Y2xhc3NOYW1lfSY+KGltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpO1xuIik7
CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJ9XG5cbiIpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNp
b24gMjE5MjAxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDE1IEBACiAgICAgICAgICJDYWNo
ZWRBdHRyaWJ1dGUiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1
dGUiXQogICAgICAgICB9LAorICAgICAgICAiQ2FsbGJhY2tOZWVkc0Nhbkludm9rZSI6IHsKKyAg
ICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImNhbGxiYWNrLWZ1bmN0aW9uIl0KKyAgICAg
ICAgfSwKICAgICAgICAgIkNhbGxiYWNrTmVlZHNPcGVyYXRvckVxdWFsIjogewogICAgICAgICAg
ICAgImNvbnRleHRzQWxsb3dlZCI6IFsiY2FsbGJhY2stZnVuY3Rpb24iXQogICAgICAgICB9LAor
ICAgICAgICAiQ2FsbGJhY2tUaGlzT2JqZWN0IjogeworICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiY2FsbGJhY2stZnVuY3Rpb24iLCAib3BlcmF0aW9uIl0KKyAgICAgICAgfSwKICAg
ICAgICAgIkNhbGxXaXRoIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0
cmlidXRlIiwgIm9wZXJhdGlvbiJdLAogICAgICAgICAgICAgInZhbHVlcyI6IFsiRG9jdW1lbnQi
LCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIsICJTY3JpcHRTdGF0ZSIsICJHbG9iYWxPYmplY3Qi
LCAiQWN0aXZlV2luZG93IiwgIkZpcnN0V2luZG93IiwgIlJlc3BvbnNpYmxlRG9jdW1lbnQiLCAi
V29ybGQiXQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJz
ZXIucG0JKHJldmlzaW9uIDIxOTIwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMUGFyc2VyLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsNiArMzQ2LDMwIEBAIHN1YiBQ
YXJzZQogICAgIHJldHVybiAkZG9jdW1lbnQ7CiB9CiAKK3N1YiBQYXJzZVR5cGUKK3sKKyAgICBt
eSAoJHNlbGYsICR0eXBlLCAkaWRsQXR0cmlidXRlcykgPSBAXzsKKworICAgICRzZWxmLT57TGlu
ZX0gPSAkdHlwZTsKKyAgICAkc2VsZi0+e0RvY3VtZW50Q29udGVudH0gPSAkdHlwZTsKKyAgICAk
c2VsZi0+e0V4dGVuZGVkQXR0cmlidXRlTWFwfSA9ICRpZGxBdHRyaWJ1dGVzOworCisgICAgYWRk
QnVpbHRpblR5cGVkZWZzKCk7CisKKyAgICBteSAkcmVzdWx0OworCisgICAgJHNlbGYtPmdldFRv
a2VuKCk7CisgICAgZXZhbCB7CisgICAgICAgICRyZXN1bHQgPSAkc2VsZi0+cGFyc2VUeXBlKCk7
CisKKyAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblR5cGUoJG5leHQsIEVtcHR5VG9rZW4pOworICAgIH07CisgICAgYXNzZXJ0
ICRAIC4gIiBwYXJzaW5nIHR5cGUgJHt0eXBlfSIgaWYgJEA7CisKKyAgICByZXR1cm4gJHJlc3Vs
dDsKK30KKwogc3ViIG5leHRUb2tlbgogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdENhbGxiYWNrRnVuY3Rpb25X
aXRoVGhpc09iamVjdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QuaWRsCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q2Fs
bGJhY2tGdW5jdGlvbldpdGhUaGlzT2JqZWN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisg
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBDYWxsYmFja1RoaXNPYmplY3Q9VGVzdE5vZGUKK10gY2FsbGJhY2sgVGVzdENhbGxiYWNr
RnVuY3Rpb25XaXRoVGhpc09iamVjdCA9IHZvaWQgKHNlcXVlbmNlPFRlc3ROb2RlPiBwYXJhbWV0
ZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RDYWxs
YmFja0ludGVyZmFjZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RDYWxsYmFja0ludGVyZmFjZS5pZGwJKHJldmlzaW9uIDIxOTIwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q2FsbGJhY2tJbnRl
cmZhY2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0ICs1Miw1IEBAIGRpY3Rpb25hcnkgVGVz
dENhbGxiYWNrSW50ZXJmYWNlRGljdGlvbmEKICAgICBET01TdHJpbmcgY2FsbGJhY2tXaXRoQVJl
dHVyblZhbHVlKCk7CiAgICAgW1JldGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyBjYWxsYmFja1Ro
YXRSZXRocm93c0V4Y2VwdGlvbnMoVGVzdENhbGxiYWNrSW50ZXJmYWNlRW51bSBlbnVtUGFyYW0p
OwogICAgIFtTa2lwQ2FsbGJhY2tJbnZva2VDaGVja10gRE9NU3RyaW5nIGNhbGxiYWNrVGhhdFNr
aXBzSW52b2tlQ2hlY2soVGVzdENhbGxiYWNrSW50ZXJmYWNlRGljdGlvbmFyeSBkaWN0aW9uYXJ5
UGFyYW0pOworICAgIFtDYWxsYmFja1RoaXNPYmplY3Q9VGVzdE5vZGVdIERPTVN0cmluZyBjYWxs
YmFja1dpdGhUaGlzT2JqZWN0KFRlc3RPYmogdGVzdE9ialBhcmFtKTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlv
bi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCwxMiBAQCBDYWxsYmFja1Jlc3VsdDx0
eXBlbmFtZSBJRExET01TdHJpbmc6OkltCiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgYXV0byYgc3RhdGUgPSAqZ2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVl
IHRoaXNWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJn
czsKICAgICBhcmdzLmFwcGVuZCh0b0pTPElETExvbmc+KGFyZ3VtZW50KSk7CiAKICAgICBOYWtl
ZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247Ci0gICAgYXV0byBqc1Jlc3Vs
dCA9IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNr
VHlwZTo6RnVuY3Rpb24sIElkZW50aWZpZXIoKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIGF1
dG8ganNSZXN1bHQgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKHRoaXNWYWx1ZSwgYXJncywgSlND
YWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb24sIElkZW50aWZpZXIoKSwgcmV0dXJu
ZWRFeGNlcHRpb24pOwogICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgewogICAgICAgICByZXBv
cnRFeGNlcHRpb24oJnN0YXRlLCByZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAgICAgIHJldHVybiBD
YWxsYmFja1Jlc3VsdFR5cGU6OkV4Y2VwdGlvblRocm93bjsKQEAgLTg2LDcgKzg3LDYgQEAgSlND
OjpKU1ZhbHVlIHRvSlMoVGVzdENhbGxiYWNrRnVuY3Rpb24mIAogICAgICAgICByZXR1cm4ganNO
dWxsKCk7CiAKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNUZXN0Q2FsbGJhY2tGdW5jdGlvbiY+
KGltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFjaygpOwotCiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDYWxsYmFja0Z1bmN0aW9uUmV0aHJvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRo
cm93LmNwcAkocmV2aXNpb24gMjE5MjAxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjcsMTEgKzY3LDEyIEBAIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETERPTVN0
cmluZzo6SW0KIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRvJiBzdGF0ZSA9
ICpnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0ganNV
bmRlZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3MuYXBw
ZW5kKHRvSlM8SURMU2VxdWVuY2U8SURMTG9uZz4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIGFyZ3Vt
ZW50KSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247
Ci0gICAgYXV0byBqc1Jlc3VsdCA9IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxs
YmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb24sIElkZW50aWZpZXIoKSwgcmV0dXJuZWRF
eGNlcHRpb24pOworICAgIGF1dG8ganNSZXN1bHQgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKHRo
aXNWYWx1ZSwgYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6RnVuY3Rpb24sIElk
ZW50aWZpZXIoKSwgcmV0dXJuZWRFeGNlcHRpb24pOwogICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlv
bikgewogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ICAgICAgICAgdGhyb3dFeGNlcHRpb24oJnN0YXRlLCB0aHJvd1Njb3BlLCByZXR1cm5lZEV4Y2Vw
dGlvbik7CkBAIC05MCw3ICs5MSw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKFRlc3RDYWxsYmFja0Z1
bmN0aW9uUmUKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rpb25SZXRocm93Jj4oaW1wbCkuY2FsbGJhY2tEYXRhKCkt
PmNhbGxiYWNrKCk7Ci0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25X
aXRoVGhpc09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdC5jcHAJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5MiBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0
IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBi
eSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUaGlzT2JqZWN0Lmgi
CisKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJKU0RPTUNv
bnZlcnRTZXF1ZW5jZXMuaCIKKyNpbmNsdWRlICJKU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgiCisj
aW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU1Rlc3ROb2RlLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNB
cnJheS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBK
U0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhU
aGlzT2JqZWN0OjpKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QoSlNPYmplY3Qq
IGNhbGxiYWNrLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorICAgIDogVGVzdENh
bGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdCgpCisgICAgLCBBY3RpdmVET01DYWxsYmFjayhn
bG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKKyAgICAsIG1fZGF0YShuZXcg
SlNDYWxsYmFja0RhdGFTdHJvbmcoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCwgdGhpcykpCit7Cit9
CisKK0pTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdDo6fkpTVGVzdENhbGxiYWNr
RnVuY3Rpb25XaXRoVGhpc09iamVjdCgpCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAvLyBXaGVuIHRoZSBjb250
ZXh0IGlzIGRlc3Ryb3llZCwgYWxsIHRhc2tzIHdpdGggYSByZWZlcmVuY2UgdG8gYSBjYWxsYmFj
aworICAgIC8vIHNob3VsZCBiZSBkZWxldGVkLiBTbyBpZiB0aGUgY29udGV4dCBpcyAwLCB3ZSBh
cmUgb24gdGhlIGNvbnRleHQgdGhyZWFkLgorICAgIGlmICghY29udGV4dCB8fCBjb250ZXh0LT5p
c0NvbnRleHRUaHJlYWQoKSkKKyAgICAgICAgZGVsZXRlIG1fZGF0YTsKKyAgICBlbHNlCisgICAg
ICAgIGNvbnRleHQtPnBvc3RUYXNrKERlbGV0ZUNhbGxiYWNrRGF0YVRhc2sobV9kYXRhKSk7Cisj
aWZuZGVmIE5ERUJVRworICAgIG1fZGF0YSA9IG51bGxwdHI7CisjZW5kaWYKK30KKworQ2FsbGJh
Y2tSZXN1bHQ8dHlwZW5hbWUgSURMVm9pZDo6SW1wbGVtZW50YXRpb25UeXBlPiBKU1Rlc3RDYWxs
YmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3Q6OmhhbmRsZUV2ZW50KHR5cGVuYW1lIElETEludGVy
ZmFjZTxUZXN0Tm9kZT46OlBhcmFtZXRlclR5cGUgdGhpc09iamVjdCwgdHlwZW5hbWUgSURMU2Vx
dWVuY2U8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj46OlBhcmFtZXRlclR5cGUgcGFyYW1ldGVyKQor
eworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuIENhbGxiYWNr
UmVzdWx0VHlwZTo6VW5hYmxlVG9FeGVjdXRlOworCisgICAgUmVmPEpTVGVzdENhbGxiYWNrRnVu
Y3Rpb25XaXRoVGhpc09iamVjdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CisKKyAgICBhdXRvJiBn
bG9iYWxPYmplY3QgPSAqbV9kYXRhLT5nbG9iYWxPYmplY3QoKTsKKyAgICBhdXRvJiB2bSA9IGds
b2JhbE9iamVjdC52bSgpOworCisgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOworICAgIGF1dG8m
IHN0YXRlID0gKmdsb2JhbE9iamVjdC5nbG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSB0b0pTPElETEludGVyZmFjZTxUZXN0Tm9kZT4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIHRo
aXNPYmplY3QpOworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBl
bmQodG9KUzxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4oc3RhdGUsIGdsb2Jh
bE9iamVjdCwgcGFyYW1ldGVyKSk7CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0
dXJuZWRFeGNlcHRpb247CisgICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayh0aGlzVmFsdWUsIGFy
Z3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6OkZ1bmN0aW9uLCBJZGVudGlmaWVyKCks
IHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBpZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKKyAgICAg
ICAgcmVwb3J0RXhjZXB0aW9uKCZzdGF0ZSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgICAgICBy
ZXR1cm4gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd247CisgICAgIH0KKworICAg
IHJldHVybiB7IH07Cit9CisKK0pTQzo6SlNWYWx1ZSB0b0pTKFRlc3RDYWxsYmFja0Z1bmN0aW9u
V2l0aFRoaXNPYmplY3QmIGltcGwpCit7CisgICAgaWYgKCFzdGF0aWNfY2FzdDxKU1Rlc3RDYWxs
YmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QmPihpbXBsKS5jYWxsYmFja0RhdGEoKSkKKyAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxi
YWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdCY+KGltcGwpLmNhbGxiYWNrRGF0YSgpLT5jYWxsYmFj
aygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUaGlzT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdC5oCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
a0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBA
CisvKgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJv
amVjdC4KKyAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRp
bmdzLnBsLiBETyBOT1QgTU9ESUZZIQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgIkpTQ2Fs
bGJhY2tEYXRhLmgiCisjaW5jbHVkZSAiVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVj
dC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbldpdGhUaGlzT2JqZWN0IGZpbmFsIDogcHVibGlj
IFRlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QsIHB1YmxpYyBBY3RpdmVET01DYWxs
YmFjayB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0
aFRoaXNPYmplY3Q+IGNyZWF0ZShKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEpTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhpc09iamVjdChjYWxsYmFjaywgZ2xvYmFsT2Jq
ZWN0KSk7CisgICAgfQorCisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgdmlydHVhbCB+SlNUZXN0
Q2FsbGJhY2tGdW5jdGlvbldpdGhUaGlzT2JqZWN0KCk7CisgICAgSlNDYWxsYmFja0RhdGFTdHJv
bmcqIGNhbGxiYWNrRGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQorCisgICAgLy8gRnVuY3Rpb25z
CisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx0eXBlbmFtZSBJRExWb2lkOjpJbXBsZW1lbnRh
dGlvblR5cGU+IGhhbmRsZUV2ZW50KHR5cGVuYW1lIElETEludGVyZmFjZTxUZXN0Tm9kZT46OlBh
cmFtZXRlclR5cGUgdGhpc09iamVjdCwgdHlwZW5hbWUgSURMU2VxdWVuY2U8SURMSW50ZXJmYWNl
PFRlc3ROb2RlPj46OlBhcmFtZXRlclR5cGUgcGFyYW1ldGVyKSBvdmVycmlkZTsKKworcHJpdmF0
ZToKKyAgICBKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFRoaXNPYmplY3QoSlNDOjpKU09iamVj
dCosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisKKyAgICBKU0NhbGxiYWNrRGF0YVN0cm9uZyogbV9k
YXRhOworfTsKKworSlNDOjpKU1ZhbHVlIHRvSlMoVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVGhp
c09iamVjdCYpOworaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKFRlc3RDYWxsYmFja0Z1bmN0aW9u
V2l0aFRoaXNPYmplY3QqIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTKCppbXBsKSA6IEpTQzo6
anNOdWxsKCk7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVHlw
ZWRlZnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uV2l0aFR5cGVkZWZzLmNwcAkocmV2aXNpb24g
MjE5MjAxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxiYWNrRnVuY3Rpb25XaXRoVHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nywx
MiArNjcsMTMgQEAgQ2FsbGJhY2tSZXN1bHQ8dHlwZW5hbWUgSURMVm9pZDo6SW1wbGVtZQogCiAg
ICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIGF1dG8mIHN0YXRlID0gKmdsb2JhbE9iamVj
dC5nbG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBqc1VuZGVmaW5lZCgpOwog
ICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQodG9KUzxJRExT
ZXF1ZW5jZTxJRExOdWxsYWJsZTxJRExMb25nPj4+KHN0YXRlLCBnbG9iYWxPYmplY3QsIHNlcXVl
bmNlQXJnKSk7CiAgICAgYXJncy5hcHBlbmQodG9KUzxJRExMb25nPihsb25nQXJnKSk7CiAKICAg
ICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247Ci0gICAgbV9kYXRh
LT5pbnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpGdW5j
dGlvbiwgSWRlbnRpZmllcigpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgbV9kYXRhLT5pbnZv
a2VDYWxsYmFjayh0aGlzVmFsdWUsIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6
OkZ1bmN0aW9uLCBJZGVudGlmaWVyKCksIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICBpZiAocmV0
dXJuZWRFeGNlcHRpb24pIHsKICAgICAgICAgcmVwb3J0RXhjZXB0aW9uKCZzdGF0ZSwgcmV0dXJu
ZWRFeGNlcHRpb24pOwogICAgICAgICByZXR1cm4gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRp
b25UaHJvd247CkBAIC04Nyw3ICs4OCw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKFRlc3RDYWxsYmFj
a0Z1bmN0aW9uV2kKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEpTVGVzdENhbGxiYWNrRnVuY3Rpb25XaXRoVHlwZWRlZnMmPihpbXBsKS5jYWxsYmFj
a0RhdGEoKS0+Y2FsbGJhY2soKTsKLQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJ
bnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIxOTIwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
a0ludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5oIgogI2lu
Y2x1ZGUgIkpTVGVzdE5vZGUuaCIKKyNpbmNsdWRlICJKU1Rlc3RPYmouaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgpAQCAtMTY4LDEwICsx
NjksMTEgQEAgQ2FsbGJhY2tSZXN1bHQ8dHlwZW5hbWUgSURMVm9pZDo6SW1wbGVtZQogCiAgICAg
SlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIGF1dG8mIHN0YXRlID0gKmdsb2JhbE9iamVjdC5n
bG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBqc1VuZGVmaW5lZCgpOwogICAg
IE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlv
bj4gcmV0dXJuZWRFeGNlcHRpb247Ci0gICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCBK
U0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCAiY2FsbGJhY2tXaXRoTm9QYXJhbSIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAg
bV9kYXRhLT5pbnZva2VDYWxsYmFjayh0aGlzVmFsdWUsIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpD
YWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjYWxsYmFj
a1dpdGhOb1BhcmFtIiksIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICBpZiAocmV0dXJuZWRFeGNl
cHRpb24pIHsKICAgICAgICAgcmVwb3J0RXhjZXB0aW9uKCZzdGF0ZSwgcmV0dXJuZWRFeGNlcHRp
b24pOwogICAgICAgICByZXR1cm4gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd247
CkBAIC0xOTIsMTEgKzE5NCwxMiBAQCBDYWxsYmFja1Jlc3VsdDx0eXBlbmFtZSBJRExWb2lkOjpJ
bXBsZW1lCiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAgICAgYXV0byYgc3RhdGUgPSAq
Z2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGpzVW5k
ZWZpbmVkKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKICAgICBhcmdzLmFwcGVu
ZCh0b0pTPElETEZsb2F0MzJBcnJheT4oc3RhdGUsIGdsb2JhbE9iamVjdCwgYXJyYXlQYXJhbSkp
OwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOwotICAg
IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlw
ZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNhbGxiYWNrV2l0aEFycmF5
UGFyYW0iKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2so
dGhpc1ZhbHVlLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tXaXRoQXJyYXlQYXJhbSIpLCByZXR1
cm5lZEV4Y2VwdGlvbik7CiAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CiAgICAgICAgIHJl
cG9ydEV4Y2VwdGlvbigmc3RhdGUsIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICAgICAgcmV0dXJu
IENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duOwpAQCAtMjE3LDEyICsyMjAsMTMg
QEAgQ2FsbGJhY2tSZXN1bHQ8dHlwZW5hbWUgSURMVm9pZDo6SW1wbGVtZQogCiAgICAgSlNMb2Nr
SG9sZGVyIGxvY2sodm0pOwogICAgIGF1dG8mIHN0YXRlID0gKmdsb2JhbE9iamVjdC5nbG9iYWxF
eGVjKCk7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBqc1VuZGVmaW5lZCgpOwogICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CiAgICAgYXJncy5hcHBlbmQodG9KUzxJRExTZXJpYWxpemVk
U2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwg
c3J6UGFyYW0pKTsKICAgICBhcmdzLmFwcGVuZCh0b0pTPElETERPTVN0cmluZz4oc3RhdGUsIHN0
clBhcmFtKSk7CiAKICAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRp
b247Ci0gICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2Fs
bGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tX
aXRoU2VyaWFsaXplZFNjcmlwdFZhbHVlUGFyYW0iKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAg
IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2sodGhpc1ZhbHVlLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6
Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJh
Y2tXaXRoU2VyaWFsaXplZFNjcmlwdFZhbHVlUGFyYW0iKSwgcmV0dXJuZWRFeGNlcHRpb24pOwog
ICAgIGlmIChyZXR1cm5lZEV4Y2VwdGlvbikgewogICAgICAgICByZXBvcnRFeGNlcHRpb24oJnN0
YXRlLCByZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAgICAgIHJldHVybiBDYWxsYmFja1Jlc3VsdFR5
cGU6OkV4Y2VwdGlvblRocm93bjsKQEAgLTI0MywxMSArMjQ3LDEyIEBAIENhbGxiYWNrUmVzdWx0
PHR5cGVuYW1lIElETFZvaWQ6OkltcGxlbWUKIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsK
ICAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpOworICAgIEpTVmFs
dWUgdGhpc1ZhbHVlID0ganNVbmRlZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBh
cmdzOwogICAgIGFyZ3MuYXBwZW5kKHRvSlM8SURMSW50ZXJmYWNlPERPTVN0cmluZ0xpc3Q+Pihz
dGF0ZSwgZ2xvYmFsT2JqZWN0LCBsaXN0UGFyYW0pKTsKIAogICAgIE5ha2VkUHRyPEpTQzo6RXhj
ZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKLSAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFy
Z3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJjYWxsYmFja1dpdGhTdHJpbmdMaXN0IiksIHJldHVybmVkRXhjZXB0aW9u
KTsKKyAgICBtX2RhdGEtPmludm9rZUNhbGxiYWNrKHRoaXNWYWx1ZSwgYXJncywgSlNDYWxsYmFj
a0RhdGE6OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
ImNhbGxiYWNrV2l0aFN0cmluZ0xpc3QiKSwgcmV0dXJuZWRFeGNlcHRpb24pOwogICAgIGlmIChy
ZXR1cm5lZEV4Y2VwdGlvbikgewogICAgICAgICByZXBvcnRFeGNlcHRpb24oJnN0YXRlLCByZXR1
cm5lZEV4Y2VwdGlvbik7CiAgICAgICAgIHJldHVybiBDYWxsYmFja1Jlc3VsdFR5cGU6OkV4Y2Vw
dGlvblRocm93bjsKQEAgLTI2OCwxMSArMjczLDEyIEBAIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1l
IElETFZvaWQ6OkltcGxlbWUKIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRv
JiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpOworICAgIEpTVmFsdWUgdGhpc1Zh
bHVlID0ganNVbmRlZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAg
IGFyZ3MuYXBwZW5kKHRvSlM8SURMQm9vbGVhbj4oYm9vbFBhcmFtKSk7CiAKICAgICBOYWtlZFB0
cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247Ci0gICAgbV9kYXRhLT5pbnZva2VD
YWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tXaXRoQm9vbGVhbiIpLCByZXR1cm5lZEV4
Y2VwdGlvbik7CisgICAgbV9kYXRhLT5pbnZva2VDYWxsYmFjayh0aGlzVmFsdWUsIGFyZ3MsIEpT
Q2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJjYWxsYmFja1dpdGhCb29sZWFuIiksIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICBp
ZiAocmV0dXJuZWRFeGNlcHRpb24pIHsKICAgICAgICAgcmVwb3J0RXhjZXB0aW9uKCZzdGF0ZSwg
cmV0dXJuZWRFeGNlcHRpb24pOwogICAgICAgICByZXR1cm4gQ2FsbGJhY2tSZXN1bHRUeXBlOjpF
eGNlcHRpb25UaHJvd247CkBAIC0yOTMsMTIgKzI5OSwxMyBAQCBDYWxsYmFja1Jlc3VsdDx0eXBl
bmFtZSBJRExWb2lkOjpJbXBsZW1lCiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAgICAg
YXV0byYgc3RhdGUgPSAqZ2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsK
ICAgICBhcmdzLmFwcGVuZCh0b0pTPElETExvbmc+KGxvbmdQYXJhbSkpOwogICAgIGFyZ3MuYXBw
ZW5kKHRvSlM8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgdGVz
dE5vZGVQYXJhbSkpOwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhj
ZXB0aW9uOwotICAgIG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxsYmFja0RhdGE6
OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNhbGxi
YWNrUmVxdWlyZXNUaGlzVG9QYXNzIiksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBtX2RhdGEt
Pmludm9rZUNhbGxiYWNrKHRoaXNWYWx1ZSwgYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNr
VHlwZTo6T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNhbGxiYWNrUmVxdWly
ZXNUaGlzVG9QYXNzIiksIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICBpZiAocmV0dXJuZWRFeGNl
cHRpb24pIHsKICAgICAgICAgcmVwb3J0RXhjZXB0aW9uKCZzdGF0ZSwgcmV0dXJuZWRFeGNlcHRp
b24pOwogICAgICAgICByZXR1cm4gQ2FsbGJhY2tSZXN1bHRUeXBlOjpFeGNlcHRpb25UaHJvd247
CkBAIC0zMTksMTAgKzMyNiwxMSBAQCBDYWxsYmFja1Jlc3VsdDx0eXBlbmFtZSBJRExET01TdHJp
bmc6OkltCiAKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAgICAgYXV0byYgc3RhdGUgPSAq
Z2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGpzVW5k
ZWZpbmVkKCk7CiAgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKIAogICAgIE5ha2VkUHRy
PEpTQzo6RXhjZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKLSAgICBhdXRvIGpzUmVzdWx0ID0g
bV9kYXRhLT5pbnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBl
OjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tXaXRoQVJldHVy
blZhbHVlIiksIHJldHVybmVkRXhjZXB0aW9uKTsKKyAgICBhdXRvIGpzUmVzdWx0ID0gbV9kYXRh
LT5pbnZva2VDYWxsYmFjayh0aGlzVmFsdWUsIGFyZ3MsIEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFj
a1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjYWxsYmFja1dpdGhB
UmV0dXJuVmFsdWUiKSwgcmV0dXJuZWRFeGNlcHRpb24pOwogICAgIGlmIChyZXR1cm5lZEV4Y2Vw
dGlvbikgewogICAgICAgICByZXBvcnRFeGNlcHRpb24oJnN0YXRlLCByZXR1cm5lZEV4Y2VwdGlv
bik7CiAgICAgICAgIHJldHVybiBDYWxsYmFja1Jlc3VsdFR5cGU6OkV4Y2VwdGlvblRocm93bjsK
QEAgLTM0NiwxMSArMzU0LDEyIEBAIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETERPTVN0cmlu
Zzo6SW0KIAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRvJiBzdGF0ZSA9ICpn
bG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0ganNVbmRl
ZmluZWQoKTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3MuYXBwZW5k
KHRvSlM8SURMRW51bWVyYXRpb248VGVzdENhbGxiYWNrSW50ZXJmYWNlOjpFbnVtPj4oc3RhdGUs
IGVudW1QYXJhbSkpOwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhj
ZXB0aW9uOwotICAgIGF1dG8ganNSZXN1bHQgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKGFyZ3Ms
IEpTQ2FsbGJhY2tEYXRhOjpDYWxsYmFja1R5cGU6Ok9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJjYWxsYmFja1RoYXRSZXRocm93c0V4Y2VwdGlvbnMiKSwgcmV0dXJuZWRFeGNl
cHRpb24pOworICAgIGF1dG8ganNSZXN1bHQgPSBtX2RhdGEtPmludm9rZUNhbGxiYWNrKHRoaXNW
YWx1ZSwgYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlwZTo6T2JqZWN0LCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNhbGxiYWNrVGhhdFJldGhyb3dzRXhjZXB0aW9ucyIpLCBy
ZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CiAgICAgICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgICAgICB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHRocm93U2NvcGUsIHJldHVybmVkRXhjZXB0aW9uKTsKQEAgLTM3
MiwxMSArMzgxLDQxIEBAIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETERPTVN0cmluZzo6SW0K
IAogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxP
YmplY3QuZ2xvYmFsRXhlYygpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0ganNVbmRlZmluZWQo
KTsKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3MuYXBwZW5kKHRvSlM8
SURMRGljdGlvbmFyeTxUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkRpY3Rpb25hcnk+PihzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCBkaWN0aW9uYXJ5UGFyYW0pKTsKIAogICAgIE5ha2VkUHRyPEpTQzo6RXhj
ZXB0aW9uPiByZXR1cm5lZEV4Y2VwdGlvbjsKLSAgICBhdXRvIGpzUmVzdWx0ID0gbV9kYXRhLT5p
bnZva2VDYWxsYmFjayhhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tUaGF0U2tpcHNJbnZva2VDaGVj
ayIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgYXV0byBqc1Jlc3VsdCA9IG1fZGF0YS0+aW52
b2tlQ2FsbGJhY2sodGhpc1ZhbHVlLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBl
OjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY2FsbGJhY2tUaGF0U2tpcHNJ
bnZva2VDaGVjayIpLCByZXR1cm5lZEV4Y2VwdGlvbik7CisgICAgaWYgKHJldHVybmVkRXhjZXB0
aW9uKSB7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbigmc3RhdGUsIHJldHVybmVkRXhjZXB0aW9u
KTsKKyAgICAgICAgcmV0dXJuIENhbGxiYWNrUmVzdWx0VHlwZTo6RXhjZXB0aW9uVGhyb3duOwor
ICAgICB9CisKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
KyAgICBhdXRvIHJldHVyblZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KHN0YXRlLCBqc1Jl
c3VsdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBDYWxsYmFja1Jlc3Vs
dFR5cGU6OkV4Y2VwdGlvblRocm93bik7CisgICAgcmV0dXJuIFdURk1vdmUocmV0dXJuVmFsdWUp
OworfQorCitDYWxsYmFja1Jlc3VsdDx0eXBlbmFtZSBJRExET01TdHJpbmc6OkltcGxlbWVudGF0
aW9uVHlwZT4gSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OmNhbGxiYWNrV2l0aFRoaXNPYmplY3Qo
dHlwZW5hbWUgSURMSW50ZXJmYWNlPFRlc3ROb2RlPjo6UGFyYW1ldGVyVHlwZSB0aGlzT2JqZWN0
LCB0eXBlbmFtZSBJRExJbnRlcmZhY2U8VGVzdE9iaj46OlBhcmFtZXRlclR5cGUgdGVzdE9ialBh
cmFtKQoreworICAgIGlmICghY2FuSW52b2tlQ2FsbGJhY2soKSkKKyAgICAgICAgcmV0dXJuIENh
bGxiYWNrUmVzdWx0VHlwZTo6VW5hYmxlVG9FeGVjdXRlOworCisgICAgUmVmPEpTVGVzdENhbGxi
YWNrSW50ZXJmYWNlPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKKworICAgIGF1dG8mIGdsb2JhbE9i
amVjdCA9ICptX2RhdGEtPmdsb2JhbE9iamVjdCgpOworICAgIGF1dG8mIHZtID0gZ2xvYmFsT2Jq
ZWN0LnZtKCk7CisKKyAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisgICAgYXV0byYgc3RhdGUg
PSAqZ2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHRv
SlM8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgdGhpc09iamVj
dCk7CisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBhcmdzLmFwcGVuZCh0b0pT
PElETEludGVyZmFjZTxUZXN0T2JqPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgdGVzdE9ialBhcmFt
KSk7CisKKyAgICBOYWtlZFB0cjxKU0M6OkV4Y2VwdGlvbj4gcmV0dXJuZWRFeGNlcHRpb247Cisg
ICAgYXV0byBqc1Jlc3VsdCA9IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2sodGhpc1ZhbHVlLCBhcmdz
LCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJhY2tUeXBlOjpPYmplY3QsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCAiY2FsbGJhY2tXaXRoVGhpc09iamVjdCIpLCByZXR1cm5lZEV4Y2VwdGlvbik7
CiAgICAgaWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CiAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbigm
c3RhdGUsIHJldHVybmVkRXhjZXB0aW9uKTsKICAgICAgICAgcmV0dXJuIENhbGxiYWNrUmVzdWx0
VHlwZTo6RXhjZXB0aW9uVGhyb3duOwpAQCAtMzk0LDcgKzQzMyw2IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKFRlc3RDYWxsYmFja0ludGVyZmFjZSYKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlJj4oaW1wbCkuY2Fs
bGJhY2tEYXRhKCktPmNhbGxiYWNrKCk7Ci0KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxi
YWNrSW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmgJKHJldmlzaW9uIDIxOTIwMSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFj
a0ludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETERPTVN0cmluZzo6SW1wbGVtZW50
YXRpb25UeXBlPiBjYWxsYmFja1dpdGhBUmV0dXJuVmFsdWUoKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETERPTVN0cmluZzo6SW1wbGVtZW50YXRpb25U
eXBlPiBjYWxsYmFja1RoYXRSZXRocm93c0V4Y2VwdGlvbnModHlwZW5hbWUgSURMRW51bWVyYXRp
b248VGVzdENhbGxiYWNrSW50ZXJmYWNlOjpFbnVtPjo6UGFyYW1ldGVyVHlwZSBlbnVtUGFyYW0p
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dHlwZW5hbWUgSURMRE9NU3Ry
aW5nOjpJbXBsZW1lbnRhdGlvblR5cGU+IGNhbGxiYWNrVGhhdFNraXBzSW52b2tlQ2hlY2sodHlw
ZW5hbWUgSURMRGljdGlvbmFyeTxUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkRpY3Rpb25hcnk+OjpQ
YXJhbWV0ZXJUeXBlIGRpY3Rpb25hcnlQYXJhbSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBDYWxs
YmFja1Jlc3VsdDx0eXBlbmFtZSBJRExET01TdHJpbmc6OkltcGxlbWVudGF0aW9uVHlwZT4gY2Fs
bGJhY2tXaXRoVGhpc09iamVjdCh0eXBlbmFtZSBJRExJbnRlcmZhY2U8VGVzdE5vZGU+OjpQYXJh
bWV0ZXJUeXBlIHRoaXNPYmplY3QsIHR5cGVuYW1lIElETEludGVyZmFjZTxUZXN0T2JqPjo6UGFy
YW1ldGVyVHlwZSB0ZXN0T2JqUGFyYW0pIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEpTVGVz
dENhbGxiYWNrSW50ZXJmYWNlKEpTQzo6SlNPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCopOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFZvaWRD
YWxsYmFja0Z1bmN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Vm9pZENhbGxiYWNrRnVuY3Rpb24uY3BwCShyZXZpc2lv
biAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Vm9pZENhbGxiYWNrRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw2ICs3NCw3
IEBAIENhbGxiYWNrUmVzdWx0PHR5cGVuYW1lIElETFZvaWQ6OkltcGxlbWUKIAogICAgIEpTTG9j
a0hvbGRlciBsb2NrKHZtKTsKICAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3QuZ2xvYmFs
RXhlYygpOworICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0ganNVbmRlZmluZWQoKTsKICAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwogICAgIGFyZ3MuYXBwZW5kKHRvSlM8SURMRmxvYXQzMkFy
cmF5PihzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBhcnJheVBhcmFtKSk7CiAgICAgYXJncy5hcHBlbmQo
dG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4oc3Rh
dGUsIGdsb2JhbE9iamVjdCwgc3J6UGFyYW0pKTsKQEAgLTgzLDcgKzg0LDcgQEAgQ2FsbGJhY2tS
ZXN1bHQ8dHlwZW5hbWUgSURMVm9pZDo6SW1wbGVtZQogICAgIGFyZ3MuYXBwZW5kKHRvSlM8SURM
SW50ZXJmYWNlPFRlc3ROb2RlPj4oc3RhdGUsIGdsb2JhbE9iamVjdCwgdGVzdE5vZGVQYXJhbSkp
OwogCiAgICAgTmFrZWRQdHI8SlNDOjpFeGNlcHRpb24+IHJldHVybmVkRXhjZXB0aW9uOwotICAg
IG1fZGF0YS0+aW52b2tlQ2FsbGJhY2soYXJncywgSlNDYWxsYmFja0RhdGE6OkNhbGxiYWNrVHlw
ZTo6RnVuY3Rpb24sIElkZW50aWZpZXIoKSwgcmV0dXJuZWRFeGNlcHRpb24pOworICAgIG1fZGF0
YS0+aW52b2tlQ2FsbGJhY2sodGhpc1ZhbHVlLCBhcmdzLCBKU0NhbGxiYWNrRGF0YTo6Q2FsbGJh
Y2tUeXBlOjpGdW5jdGlvbiwgSWRlbnRpZmllcigpLCByZXR1cm5lZEV4Y2VwdGlvbik7CiAgICAg
aWYgKHJldHVybmVkRXhjZXB0aW9uKSB7CiAgICAgICAgIHJlcG9ydEV4Y2VwdGlvbigmc3RhdGUs
IHJldHVybmVkRXhjZXB0aW9uKTsKICAgICAgICAgcmV0dXJuIENhbGxiYWNrUmVzdWx0VHlwZTo6
RXhjZXB0aW9uVGhyb3duOwpAQCAtOTgsNyArOTksNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhUZXN0
Vm9pZENhbGxiYWNrRnVuY3RpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU1Rlc3RWb2lkQ2FsbGJhY2tGdW5jdGlvbiY+KGltcGwpLmNhbGxiYWNr
RGF0YSgpLT5jYWxsYmFjaygpOwotCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9Gb250RmFjZVNldC5oCShyZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udEZhY2VTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBw
cml2YXRlOgogICAgICAgICBQZW5kaW5nUHJvbWlzZShMb2FkUHJvbWlzZSYmKTsKIAogICAgIHB1
YmxpYzoKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxGb250RmFjZT4+IGZhY2VzOworICAgICAgICBW
ZWN0b3I8UmVmPEZvbnRGYWNlPj4gZmFjZXM7CiAgICAgICAgIExvYWRQcm9taXNlIHByb21pc2U7
CiAgICAgICAgIGJvb2wgaGFzUmVhY2hlZFRlcm1pbmFsU3RhdGUgeyBmYWxzZSB9OwogICAgIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDIxOTIw
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsYmFj
a1Jlc3VsdC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQzLDggKzQ0LDggQEAgY2xhc3MgTXV0
YXRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudAogcHVibGljOgogICAgIHZpcnR1YWwgfk11
dGF0aW9uQ2FsbGJhY2soKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjYWxsKGNvbnN0IFZlY3Rv
cjxSZWY8TXV0YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSA9IDA7Ci0gICAgdmly
dHVhbCBib29sIGNhbkludm9rZUNhbGxiYWNrKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgQ2Fs
bGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoTXV0YXRpb25PYnNlcnZlciYsIGNvbnN0IFZl
Y3RvcjxSZWY8TXV0YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9uT2JzZXJ2ZXImKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGNhbkludm9rZSgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbkNhbGxiYWNrLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25DYWxsYmFjay5pZGwJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uQ2FsbGJhY2suaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ2FsbGJh
Y2tOZWVkc0Nhbkludm9rZSwKKyAgICBDYWxsYmFja1RoaXNPYmplY3Q9TXV0YXRpb25PYnNlcnZl
cgorXSBjYWxsYmFjayBNdXRhdGlvbkNhbGxiYWNrID0gdm9pZCAoc2VxdWVuY2U8TXV0YXRpb25S
ZWNvcmQ+IG11dGF0aW9ucywgTXV0YXRpb25PYnNlcnZlciBvYnNlcnZlcik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAyMTkyMDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIwOSw3ICsyMDksNyBAQCBIYXNoU2V0PE5vZGUqPiBNdXRhdGlvbk9ic2VydmVyOjpvYnNlcnZl
CiAKIGJvb2wgTXV0YXRpb25PYnNlcnZlcjo6Y2FuRGVsaXZlcigpCiB7Ci0gICAgcmV0dXJuIG1f
Y2FsbGJhY2stPmNhbkludm9rZUNhbGxiYWNrKCk7CisgICAgcmV0dXJuIG1fY2FsbGJhY2stPmNh
bkludm9rZSgpOwogfQogCiB2b2lkIE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXIoKQpAQCAtMjMy
LDcgKzIzMiw3IEBAIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlcigpCiAgICAgVmVjdG9y
PFJlZjxNdXRhdGlvblJlY29yZD4+IHJlY29yZHM7CiAgICAgcmVjb3Jkcy5zd2FwKG1fcmVjb3Jk
cyk7CiAKLSAgICBtX2NhbGxiYWNrLT5jYWxsKHJlY29yZHMsIHRoaXMpOworICAgIG1fY2FsbGJh
Y2stPmhhbmRsZUV2ZW50KCp0aGlzLCByZWNvcmRzLCAqdGhpcyk7CiB9CiAKIHZvaWQgTXV0YXRp
b25PYnNlcnZlcjo6bm90aWZ5TXV0YXRpb25PYnNlcnZlcnMoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9NdXRhdGlvbk9ic2VydmVyLmlkbAkocmV2aXNpb24gMjE5MjAxKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL011dGF0aW9uT2JzZXJ2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw3IEBACiAgKi8KIAogWwotICAgIEN1c3RvbUNvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sg
Y2FsbGJhY2spLAorICAgIENvbnN0cnVjdG9yKE11dGF0aW9uQ2FsbGJhY2sgY2FsbGJhY2spLAog
ICAgIEN1c3RvbUlzUmVhY2hhYmxlLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAg
ICAgTGVnYWN5V2luZG93QWxpYXM9V2ViS2l0TXV0YXRpb25PYnNlcnZlciwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFjay5oCShy
ZXZpc2lvbiAyMTkyMDEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ludGVyc2VjdGlvbk9ic2Vy
dmVyQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBjbGFzcyBJbnRl
cnNlY3Rpb25PYnNlcnZlckVudHJ5OwogY2xhc3MgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJDYWxsYmFj
ayA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVyc2VjdGlvbk9ic2VydmVyQ2FsbGJhY2s+IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5JbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrKCkgeyB9Ci0g
ICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5kbGVFdmVudChjb25zdCBWZWN0b3I8
UmVmUHRyPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PiYsIEludGVyc2VjdGlvbk9ic2VydmVy
JikgPSAwOworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoY29u
c3QgVmVjdG9yPFJlZjxJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4mLCBJbnRlcnNlY3Rpb25P
YnNlcnZlciYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIxOTIwMSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA3LTAyICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIG1vcmUgdW5uZWNlc3NhcnkgdXNl
cyBvZiB0aGUgcHJlcHJvY2Vzc29yIGluIGlkbCBmaWxlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0MDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgQWRkIEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORS4KKwog
MjAxNy0wNy0wNiAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEl0IHNob3VsZCBwcm9jZXNzIE1vdXNlTW92ZWQgZXZlbnRzIHdoZW4gdGhl
IHBhcmVudCB3aW5kb3cgaXMgbm90IGFjdGl2ZQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gMjE5MjAxKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDctMDIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBbV2ViSURMXSBSZW1vdmUgbW9yZSB1bm5lY2Vzc2FyeSB1c2VzIG9mIHRo
ZSBwcmVwcm9jZXNzb3IgaW4gaWRsIGZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQwODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnOgorICAgICAgICBBZGQgRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FLgorCiAyMDE3LTA3
LTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbG9n
Z2luZyB0byBmaXJzdCBhdHRlbXB0IHRvIHVzZSB0aGUgV2ViSWNvbkRhdGFiYXNlIGNsYXNzLgpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjE5MjE2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDctMDYgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViSURMXSBDb252ZXJ0IE11dGF0aW9uQ2FsbGJhY2sg
dG8gYmUgYSBub3JtYWwgZ2VuZXJhdGUgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9tdXRh
dGlvbi1vYnNlcnZlci1jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQ6CisgICAgICAgIFVwZGF0ZSBy
ZXN1bHRzIGZvciBzdGFuZGFyZCBlcnJvciBtZXNzYWdlcy4KKwogMjAxNy0wNy0wNiAgTWF0dCBM
ZXdpcyAgPGpsZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmtlZCBqcy9zbG93LXN0cmVz
cy9JbnQzMkFycmF5LWFsbG9jLWh1Z2UuaHRtbCBhcyBmbGFreS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3It
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL011dGF0aW9u
T2JzZXJ2ZXIvbXV0YXRpb24tb2JzZXJ2ZXItY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAyMTkyMDEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NdXRhdGlvbk9ic2VydmVyL211
dGF0aW9uLW9ic2VydmVyLWNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtOCwxMCArOCwxMCBAQCBQQVNTIHR5cGVvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLnByb3Rv
CiBQQVNTIHR5cGVvZiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLnByb3RvdHlwZS5kaXNjb25uZWN0
IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIG9ic2VydmVyLm9ic2VydmUgaXMgImZ1bmN0aW9u
IgogUEFTUyB0eXBlb2Ygb2JzZXJ2ZXIuZGlzY29ubmVjdCBpcyAiZnVuY3Rpb24iCi1QQVNTIG5l
dyBNdXRhdGlvbk9ic2VydmVyKHsgaGFuZGxlRXZlbnQ6IGZ1bmN0aW9uKCkge30gfSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAoJ2NhbGxiYWNrJykgdG8gdGhlIE11dGF0
aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBNdXRhdGlvbkNh
bGxiYWNrLgotUEFTUyBuZXcgTXV0YXRpb25PYnNlcnZlcih7fSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQXJndW1lbnQgMSAoJ2NhbGxiYWNrJykgdG8gdGhlIE11dGF0aW9uT2JzZXJ2ZXIg
Y29uc3RydWN0b3IgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBNdXRhdGlvbkNhbGxiYWNrLgotUEFT
UyBuZXcgTXV0YXRpb25PYnNlcnZlcig0MikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJn
dW1lbnQgMSAoJ2NhbGxiYWNrJykgdG8gdGhlIE11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3Ig
bXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBNdXRhdGlvbkNhbGxiYWNrLgotUEFTUyBuZXcgTXV0YXRp
b25PYnNlcnZlcigiZm9vIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQXJndW1lbnQgMSAo
J2NhbGxiYWNrJykgdG8gdGhlIE11dGF0aW9uT2JzZXJ2ZXIgY29uc3RydWN0b3IgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBNdXRhdGlvbkNhbGxiYWNrLgorUEFTUyBuZXcgTXV0YXRpb25PYnNlcnZl
cih7IGhhbmRsZUV2ZW50OiBmdW5jdGlvbigpIHt9IH0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEFyZ3VtZW50IDEgKCdjYWxsYmFjaycpIHRvIHRoZSBNdXRhdGlvbk9ic2VydmVyIGNvbnN0
cnVjdG9yIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoe30p
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdjYWxsYmFjaycpIHRvIHRo
ZSBNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yIG11c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1Mg
bmV3IE11dGF0aW9uT2JzZXJ2ZXIoNDIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3Vt
ZW50IDEgKCdjYWxsYmFjaycpIHRvIHRoZSBNdXRhdGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yIG11
c3QgYmUgYSBmdW5jdGlvbi4KK1BBU1MgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoImZvbyIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFyZ3VtZW50IDEgKCdjYWxsYmFjaycpIHRvIHRoZSBNdXRh
dGlvbk9ic2VydmVyIGNvbnN0cnVjdG9yIG11c3QgYmUgYSBmdW5jdGlvbi4KIFBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>