<?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>227142</bug_id>
          
          <creation_ts>2021-06-17 13:01:10 -0700</creation_ts>
          <short_desc>Enable some more release logging in for ephemeral sessions</short_desc>
          <delta_ts>2021-06-17 15:41:40 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770780</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 13:01:10 -0700</bug_when>
    <thetext>Enable some more release logging in for ephemeral sessions, to facilitate debugging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770783</commentid>
    <comment_count>1</comment_count>
      <attachid>431709</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-17 13:03:37 -0700</bug_when>
    <thetext>Created attachment 431709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770858</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-17 15:40:14 -0700</bug_when>
    <thetext>Committed r279017 (238942@main): &lt;https://commits.webkit.org/238942@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431709.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770859</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-17 15:41:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/79474278&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431709</attachid>
            <date>2021-06-17 13:03:37 -0700</date>
            <delta_ts>2021-06-17 15:40:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227142-20210617130336.patch</filename>
            <type>text/plain</type>
            <size>91819</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3MjYxMmIyNGNiMDEx
ZDIwMWQ3YTU4ZTY3MmNjMDZlMTdkZjBkOS4uOTM4YzQzMzgxMWEyOWJlYWMzZGY0YjhiM2U0ZDRm
NGQ1Y2IwMzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHNvbWUgbW9yZSBy
ZWxlYXNlIGxvZ2dpbmcgaW4gZm9yIGVwaGVtZXJhbCBzZXNzaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MTQyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHNvbWUgbW9yZSByZWxlYXNl
IGxvZ2dpbmcgaW4gZm9yIGVwaGVtZXJhbCBzZXNzaW9ucywgdG8gZmFjaWxpYXRlIGRlYnVnZ2lu
Zy4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OlNXU2VydmVyKToKKwogMjAyMS0wNi0xNyAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3
NzA2Nyk6IEluY29ycmVjdCB0ZXh0IGNvbG9yIGZvciBkZWZhdWx0LWJ1dHRvbiBhcHBlYXJhbmNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDA0ZDllNjhiYWI3NjljMjU0NmU3ZjYzMTk5ZGMyZDg3NDBiNmYyNzUuLjlj
YWY4OGU2NTM3ODJiYjU0YWI3OGU5NjYwMmVmNzQ5MjU0M2VmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTQgQEAKKzIwMjEtMDYtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBFbmFibGUgc29tZSBtb3JlIHJlbGVhc2UgbG9nZ2luZyBpbiBmb3IgZXBoZW1lcmFs
IHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjcxNDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBFbmFibGUgc29tZSBtb3JlIHJlbGVhc2UgbG9nZ2luZyBpbiBmb3IgZXBoZW1lcmFsIHNlc3Np
b25zLCB0byBmYWNpbGlhdGUgZGVidWdnaW5nLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2Vzc2lvbklEIGNvbnN0KToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Omxv
Z2dlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbik6CisgICAgICAg
IChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNo
aXBFeGlzdHMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZG9tYWluSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RG9tYWluUmVsYXRpb25zaGlwTGlz
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZVN0YXRpc3RpY3Mp
OgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
aW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMpOgorICAgICAgICAoV2ViS2l0
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9u
UHJldmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBc1ByZXZhbGVu
dElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKToK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdy
YW5kZmF0aGVyRGF0YUZvckRvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdN
b2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyVG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVy
YWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXREb21h
aW5zQXNQcmV2YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4gY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxl
bnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWwpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Z2V0TW9zdFJlY2VudGx5VXBkYXRlZFRpbWVzdGFtcCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJm
cmFtZVVuZGVyVG9wRnJhbWVEb21haW4pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWlu
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0RnJvbSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4pOgor
ICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVt
b3ZlRGF0YUZvckRvbWFpbik6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjb29raWVBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzVXNlckdyYW50ZWRTdG9yYWdlQWNjZXNz
VGhyb3VnaFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpjbGVhckdyYW5kZmF0aGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlzdGljc0lmTmVlZGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnVwZGF0ZUxhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRh
dGVEYXRhUmVjb3Jkc1JlbW92ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aXNDb3JyZWN0U3ViU3RhdGlzdGljc0NvdW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdldERvbWFp
blN0cmluZ0Zyb21Eb21haW5JRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjphcHBlbmRTdWJTdGF0aXN0aWNMaXN0IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJl
c291cmNlVG9TdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZU9wZXJh
dGluZ0RhdGVzUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjppbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2Fy
eSk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZW1vdmVVbmF0dHJpYnV0
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKFdlYktp
dDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6Y2xlYXJFeHBpcmVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRUb1N0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclNlbnRBdHRyaWJ1dGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdGFydExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRQZXJmb3JtUmVkaXJlY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFNjaGVtZVRhc2tQcm94eTo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZENvbXBsZXRlKToKKwogMjAy
MS0wNi0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZG9wdCBXS0hvdmVyR2VzdHVyZVJlY29nbml6ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggN2I5YjVmYmZmMTM0NWMx
MmYzMTExYjU4Y2I2N2U2YmNhYWFlNjYxNy4uMTdlZGY3ZWMwZWUwMTYwOGNkODBmNTliZjY4ZDE1
NjUxMDZmNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKQEAgLTMzMCw3ICszMzAsNyBAQCBTV1NlcnZlcjo6U1dTZXJ2ZXIo
VW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1p
bmF0aQogICAgICwgbV9hcHBCb3VuZERvbWFpbnNDYWxsYmFjayhXVEZNb3ZlKGFwcEJvdW5kRG9t
YWluc0NhbGxiYWNrKSkKICAgICAsIG1faGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KGhhc1Nl
cnZpY2VXb3JrZXJFbnRpdGxlbWVudCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRihyZWdpc3RyYXRp
b25EYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkgJiYgIW1fc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCksIFNlcnZpY2VXb3JrZXIsICJObyBwYXRoIHRvIHN0b3JlIHRoZSBzZXJ2aWNlIHdvcmtlciBy
ZWdpc3RyYXRpb25zIik7CisgICAgUkVMRUFTRV9MT0dfSUYocmVnaXN0cmF0aW9uRGF0YWJhc2VE
aXJlY3RvcnkuaXNFbXB0eSgpLCBTZXJ2aWNlV29ya2VyLCAiTm8gcGF0aCB0byBzdG9yZSB0aGUg
c2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9ucyIpOwogICAgIGlmICghbV9zZXNzaW9uSUQuaXNF
cGhlbWVyYWwoKSkKICAgICAgICAgbV9yZWdpc3RyYXRpb25TdG9yZSA9IG1ha2VVbmlxdWU8UmVn
aXN0cmF0aW9uU3RvcmU+KCp0aGlzLCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0
b3J5KSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDc5MTUyNzQ3ZjFlNjJkMmFhMWEyNzIw
MDRiZjY2NWE3YWY2YzI1ZWUuLjE4ZmMxYTFhOWQ5OWIxY2MzOGNmZjE2NTk0ZDQwYmYyOTlmZGE3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM2MywxMSArMzYzLDYgQEAgTG9nZ2VyJiBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpsb2dnZXIoKQogICAgIHJldHVybiAqbV9sb2dnZXI7CiB9CiAKLWJv
b2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2Vk
KCk7Ci19Ci0KIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlTmFtZSBt
ZXNzYWdlTmFtZSkKIHsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXgg
MjkwZjg4ZDI4ZmYyZjg3MjhhYjQ5MDI5MWMwNzRjY2MzODNjZjVmNS4uZGFjMDk3YjcxZjBiZTEw
ZjZjNWY4ODQ5YzY1MDYyNGQxNGIwMjQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xMDAsOCArMTAwLDkgQEAg
cHVibGljOgogCiAgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyKCk7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQorCiAgICAgTG9nZ2VyJiBsb2dnZXIoKTsKLSAgICBib29s
IGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OwogCiAgICAgY29uc3QgU3RyaW5nJiBt
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3Q7CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCBiMDMwMDI1MWY4MDJl
OTY2MDg5NWExOTA0MDFiYTNhZmYyNDAwMmEzLi42MDA4NDI0NzYwOTliN2IyOGVhMGMxNjRjMGRl
OGRmMWQ2ZDk4MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTE4OSw3
ICsxODksNyBAQCBMb2dnZXImIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojpsb2dnZXIo
KQogewogICAgIGlmICghbV9sb2dnZXIpIHsKICAgICAgICAgbV9sb2dnZXIgPSBMb2dnZXI6OmNy
ZWF0ZSh0aGlzKTsKLSAgICAgICAgbV9sb2dnZXItPnNldEVuYWJsZWQodGhpcywgbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzID8gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKSA6IGZhbHNlKTsKKyAgICAgICAgbV9sb2dnZXItPnNldEVuYWJs
ZWQodGhpcywgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzID8gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLT5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IGZhbHNl
KTsKICAgICB9CiAKICAgICByZXR1cm4gKm1fbG9nZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggZmYxNDM3NzE0YzA4
NTI3N2E1ZGMwNGI1ODAwOWU0NjFiOGE1OTFmYy4uMDMxZTQ0Y2EzMTliZjk1NDk3M2QxYThiZWM0
Yzk1NDVjMzY5MGZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC01OCw4ICs1OCw4IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklELmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCBmbXQsIC4uLikgUkVMRUFTRV9M
T0dfRVJST1JfSUYoc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3Jr
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6IiBmbXQsIHRoaXMs
ICMjX19WQV9BUkdTX18pCisjZGVmaW5lIElUUF9SRUxFQVNFX0xPRyhzZXNzaW9uSUQsIGZtdCwg
Li4uKSBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIElUUF9SRUxF
QVNFX0xPR19FUlJPUihzZXNzaW9uSUQsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUihOZXR3
b3JrLCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6IiBmbXQsIHRo
aXMsICMjX19WQV9BUkdTX18pCiAKIC8vIENPVU5UIFF1ZXJpZXMKIGNvbnN0ZXhwciBhdXRvIG9i
c2VydmVkRG9tYWluQ291bnRRdWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgRlJPTSBPYnNlcnZlZERv
bWFpbnMiX3M7CkBAIC05NzEsNyArOTcxLDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIGlmIChkb21haW5JRChsb2FkU3Rh
dGlzdGljcy5yZWdpc3RyYWJsZURvbWFpbikpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppbnNlcnRPYnNlcnZlZERvbWFpbiBjYW4gb25seSBiZSBjYWxsZWQgb24gZG9tYWlucyBu
b3QgaW4gdGhlIGRhdGFiYXNlLiIpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9z
ZXNzaW9uSUQsICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2Jz
ZXJ2ZWREb21haW4gY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGRvbWFpbnMgbm90IGluIHRoZSBkYXRh
YmFzZS4iKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CkBAIC05ODgsNyArOTg4LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4oY29uc3QgUmVzb3VyY2VMb2EK
ICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KFRpbWVzQWNjZXNzZWRBc0ZpcnN0
UGFydHlEdWVUb1VzZXJJbnRlcmFjdGlvbkluZGV4LCBsb2FkU3RhdGlzdGljcy50aW1lc0FjY2Vz
c2VkQXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb24pICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoVGltZXNBY2Nlc3NlZEFzRmlyc3RQYXJ0eUR1
ZVRvU3RvcmFnZUFjY2Vzc0FQSUluZGV4LCBsb2FkU3RhdGlzdGljcy50aW1lc0FjY2Vzc2VkQXNG
aXJzdFBhcnR5RHVlVG9TdG9yYWdlQWNjZXNzQVBJKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJl
bW92YWxJbmRleCwgbG9hZFN0YXRpc3RpY3MuZ290TGlua0RlY29yYXRpb25Gcm9tUHJldmFsZW50
UmVzb3VyY2UpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6
ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydE9ic2VydmVkRG9tYWluIGZhaWxl
ZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTEwMTIsNyArMTAxMiw3IEBAIGJvb2wg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbGF0aW9uc2hpcEV4aXN0cyhT
UUxpdGVTdGF0ZW1lbnRBdXRvCiAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZEludCgxLCAqZmly
c3REb21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQo
Miwgc2Vjb25kRG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cmVsYXRpb25zaGlwRXhpc3RzIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdl
OiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZWxhdGlvbnNoaXBFeGlzdHMgZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAyNSw3ICsxMDI1LDcgQEAgc3RkOjpv
cHRpb25hbDx1bnNpZ25lZD4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmRv
bWFpbklEKGNvbnN0IFJlZ2kKIAogICAgIGF1dG8gc2NvcGVkU3RhdGVtZW50ID0gdGhpcy0+c2Nv
cGVkU3RhdGVtZW50KG1fZG9tYWluSURGcm9tU3RyaW5nU3RhdGVtZW50LCBkb21haW5JREZyb21T
dHJpbmdRdWVyeSwgImRvbWFpbklEIl9zKTsKICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudCB8fCBz
Y29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09L
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREZyb21TdHJp
bmcgZmFpbGVkLiBFcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1f
ZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1Io
bV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpk
b21haW5JREZyb21TdHJpbmcgZmFpbGVkLiBFcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19T
VFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CkBAIC0x
MDU1LDIwICsxMDU1LDIwIEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QoY29uc3QgU1FMCiAgICAgCiAgICAgaWYg
KCFpbnNlcnRSZWxhdGlvbnNoaXBTdGF0ZW1lbnQKICAgICAgICAgfHwgaW5zZXJ0UmVsYXRpb25z
aGlwU3RhdGVtZW50LT5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnREb21haW5SZWxhdGlvbnNo
aXBMaXN0IGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIElUUF9SRUxFQVNFX0xP
R19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QgZmFpbGVkLCBlcnJvciBtZXNzYWdl
OiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIAogICAgIGlm
IChzdGF0ZW1lbnQuY29udGFpbnMoIlJFUExBQ0UiKSkgewogICAgICAgICBpZiAoaW5zZXJ0UmVs
YXRpb25zaGlwU3RhdGVtZW50LT5iaW5kRG91YmxlKDIsIFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSykgewotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QgZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwTGlzdCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVf
TE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KIAogICAgIGlmIChpbnNlcnRSZWxhdGlvbnNoaXBTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0
RG9tYWluUmVsYXRpb25zaGlwTGlzdCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVf
TE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElU
UF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omluc2VydERvbWFpblJlbGF0aW9uc2hpcExpc3QgZmFpbGVkLCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTExMTAsNyArMTExMCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnBvcHVsYXRlRnJvbU1lbW9yeVN0b3JlKGNvbnN0IFJlc291cmNl
CiAgICAgZm9yIChjb25zdCBhdXRvJiBzdGF0aXN0aWMgOiBzdGF0aXN0aWNzTWFwLnZhbHVlcygp
KSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gaW5zZXJ0T2JzZXJ2ZWREb21haW4oc3RhdGlzdGlj
KTsKICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZSBpbnNlcnRPYnNlcnZlZERvbWFpbiBm
YWlsZWQgdG8gY29tcGxldGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBJVFBfUkVMRUFT
RV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpwb3B1bGF0ZUZyb21NZW1vcnlTdG9yZSBpbnNlcnRPYnNlcnZlZERvbWFpbiBm
YWlsZWQgdG8gY29tcGxldGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTE3MCw3ICsx
MTcwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWVyZ2VT
dGF0aXN0aWMoY29uc3QgU1FMaXRlVHJhbnNhY3Rpb24KICAgICBpZiAoIXNjb3BlZFN0YXRlbWVu
dAogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIHN0YXRpc3RpYy5yZWdp
c3RyYWJsZURvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0
YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Om1lcmdlU3RhdGlzdGljLiBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQgb3Ig
ZG9tYWluIHdhcyBub3QgZm91bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklO
RywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNF
X0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Om1lcmdlU3RhdGlzdGljLiBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQgb3IgZG9t
YWluIHdhcyBub3QgZm91bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTE5MSw3ICsxMTkxLDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWVyZ2VTdGF0aXN0aWNzKFZl
Y3RvcjxSZXNvdXJjZUxvYWRTdGEKICAgICAgICAgaWYgKCFkb21haW5JRChzdGF0aXN0aWMucmVn
aXN0cmFibGVEb21haW4pKSB7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGluc2VydE9ic2Vy
dmVkRG9tYWluKHN0YXRpc3RpYyk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptZXJnZVN0YXRpc3RpY3MgaW5z
ZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGNvbXBsZXRlLCBlcnJvciBtZXNzYWdlOiAlIiBQ
UklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICAgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1lcmdlU3RhdGlzdGljcyBpbnNlcnRP
YnNlcnZlZERvbWFpbiBmYWlsZWQgdG8gY29tcGxldGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZB
VEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQpAQCAtMTI4OCw3ICsxMjg4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFp
bnMKIAogICAgIGF1dG8gZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50ID0gbV9kYXRhYmFzZS5wcmVw
YXJlU3RhdGVtZW50U2xvdyhtYWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBk
YXRhUmVjb3Jkc1JlbW92ZWQgPSBkYXRhUmVjb3Jkc1JlbW92ZWQgKyAxIFdIRVJFIHJlZ2lzdHJh
YmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikpOwogICAgIGlm
ICghZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50IHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVudC0+
c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppbmNyZW1lbnRTdGF0aXN0aWNzRm9yRG9tYWlucyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6
ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmluY3JlbWVudFN0YXRpc3RpY3NGb3JEb21h
aW5zIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgfQogfQpAQCAtMTMwNyw3ICsxMzA3LDcgQEAgdW5zaWduZWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnMK
ICAgICBTdGRTZXQ8dW5zaWduZWQ+IG5ld2x5SWRlbnRpZmllZERvbWFpbnM7CiAgICAgYXV0byBm
aW5kU3VicmVzb3VyY2VzID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJTRUxFQ1QgU3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZl
ZERvbWFpbnMuZG9tYWluSUQgPSBTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURv
bWFpbklEIFdIRVJFIHN1YnJlc291cmNlRG9tYWluSUQgPSA/IEFORCBPYnNlcnZlZERvbWFpbnMu
aXNQcmV2YWxlbnQgPSAwIl9zKTsKICAgICBpZiAoIWZpbmRTdWJyZXNvdXJjZXMgfHwgZmluZFN1
YnJlc291cmNlcy0+YmluZEludCgxLCBwcmltYXJ5RG9tYWluSUQpICE9IFNRTElURV9PSykgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJl
dmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVz
c2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVjdXJzaXZlbHlGaW5kTm9uUHJl
dmFsZW50RG9tYWluc1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVz
c2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KQEAgLTEzMjIsNyArMTMyMiw3IEBAIHVuc2lnbmVkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpyZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zCiAgICAg
YXV0byBmaW5kVG9wRnJhbWVzID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJTRUxFQ1Qg
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdHNGcm9tLmZyb21Eb21haW5JRCBmcm9tIFRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzRnJvbSBJTk5FUiBKT0lOIE9ic2VydmVkRG9tYWlucyBPTiBPYnNlcnZlZERv
bWFpbnMuZG9tYWluSUQgPSBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zyb20uZnJvbURvbWFpbklE
IFdIRVJFIHRhcmdldERvbWFpbklEID0gPyBBTkQgT2JzZXJ2ZWREb21haW5zLmlzUHJldmFsZW50
ID0gMCJfcyk7CiAgICAgaWYgKCFmaW5kVG9wRnJhbWVzCiAgICAgICAgIHx8IGZpbmRUb3BGcmFt
ZXMtPmJpbmRJbnQoMSwgcHJpbWFyeURvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERv
bWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUi
IFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERv
bWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbiBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUi
IFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBA
IC0xMzcxLDcgKzEzNzEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjptYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbAogCiAgICAgYXV0byBt
YXJrUHJldmFsZW50U3RhdGVtZW50ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50U2xvdyht
YWtlU3RyaW5nKCJVUERBVEUgT2JzZXJ2ZWREb21haW5zIFNFVCBpc1ByZXZhbGVudCA9IDEgV0hF
UkUgZG9tYWluSUQgSU4gKCIsIGJ1aWxkTGlzdChXVEY6Okl0ZXJhdG9yUmFuZ2U8U3RkU2V0PHVu
c2lnbmVkPjo6aXRlcmF0b3I+KHByZXZhbGVudER1ZVRvUmVkaXJlY3QuYmVnaW4oKSwgcHJldmFs
ZW50RHVlVG9SZWRpcmVjdC5lbmQoKSkpLCAiKSIpKTsKICAgICBpZiAoIW1hcmtQcmV2YWxlbnRT
dGF0ZW1lbnQgfHwgbWFya1ByZXZhbGVudFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05F
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXNQcmV2YWxlbnRJ
Zkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudCBmYWlsZWQgdG8gZXhlY3V0ZSwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQgZmFpbGVkIHRvIGV4ZWN1dGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBS
SVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTE0ODksNyArMTQ4OSw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YkZyYW1lRG9tYWluKTsKICAgICBp
ZiAoIXJlc3VsdC5zZWNvbmQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
Omhhc1N0b3JhZ2VBY2Nlc3Mgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQg
YXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdl
QWNjZXNzIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0
aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUyNiw3ICsxNTI2LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJgogCiAgICAgYXV0byBzdWJGcmFtZVN0YXR1cyA9IGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YkZyYW1lRG9tYWluKTsKICAg
ICBpZiAoIXN1YkZyYW1lU3RhdHVzLnNlY29uZCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3Mgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRv
IGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0df
RVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVk
IGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBA
IC0xNTc0LDcgKzE1NzQsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmCiAgICAgaWYgKCFpbmNy
ZW1lbnRTdG9yYWdlQWNjZXNzCiAgICAgICAgIHx8IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MtPmJp
bmRJbnQoMSwgKnN1YkZyYW1lU3RhdHVzLnNlY29uZCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8
IGluY3JlbWVudFN0b3JhZ2VBY2Nlc3MtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MgZmFpbGVk
LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2VzcyBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTYxNSw3ICsxNjE1LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBpZiAocHJvbXB0V2FzU2hvd24gPT0gU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duOjpZZXMpIHsKICAgICAgICAgYXV0byBzdWJGcmFtZVN0YXR1cyA9
IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YkZyYW1lRG9t
YWluKTsKICAgICAgICAgaWYgKCFzdWJGcmFtZVN0YXR1cy5zZWNvbmQpIHsKLSAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3Mgd2FzIG5vdCBj
b21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICAg
ICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzIHdhcyBub3QgY29tcGxl
dGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoc3ViRnJhbWVTdGF0dXMuZmlyc3QgPT0g
QWRkZWRSZWNvcmQ6Ok5vKTsKQEAgLTE2NDUsNyArMTY0NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKGNvbnN0
IFNRTGl0CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBhdXRvIHN1YkZyYW1lU3RhdHVzID0gZW5z
dXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oc3ViRnJhbWVEb21haW4p
OwogICAgICAgICBpZiAoIXN1YkZyYW1lU3RhdHVzLnNlY29uZCkgewotICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsIHdhcyBu
b3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAg
ICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsIHdh
cyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBBU1NFUlQoc3ViRnJhbWVTdGF0
dXMuZmlyc3QgPT0gQWRkZWRSZWNvcmQ6Ok5vKTsKQEAgLTE2NzksMTIgKzE2NzksMTIgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9y
RG9tYWlucyhjb25zdCBIYXNoU2UKICAgICBmb3IgKGF1dG8mIHJlZ2lzdHJhYmxlRG9tYWluIDog
ZG9tYWlucykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKHJlZ2lzdHJhYmxlRG9tYWluKTsKICAgICAgICAgaWYgKCFy
ZXN1bHQuc2Vjb25kKQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdy
YW5kZmF0aGVyRGF0YUZvckRvbWFpbnMgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBp
bnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9S
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVk
IGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CiAgICAgfQogCiAgICAgYXV0byBkb21haW5zVG9VcGRh
dGVTdGF0ZW1lbnQgPSBtX2RhdGFiYXNlLnByZXBhcmVTdGF0ZW1lbnRTbG93KG1ha2VTdHJpbmco
IlVQREFURSBPYnNlcnZlZERvbWFpbnMgU0VUIGdyYW5kZmF0aGVyZWQgPSAxIFdIRVJFIHJlZ2lz
dHJhYmxlRG9tYWluIElOICgiLCBkb21haW5zVG9TdHJpbmcoZG9tYWlucyksICIpIikpOwogICAg
IGlmICghZG9tYWluc1RvVXBkYXRlU3RhdGVtZW50IHx8IGRvbWFpbnNUb1VwZGF0ZVN0YXRlbWVu
dC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpncmFuZGZhdGhlckRhdGFGb3JEb21haW5zIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
KyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IH0KICAgICB0cmFuc2FjdGlvbi5jb21taXQoKTsKQEAgLTE3MDUsNyArMTcwNSw3IEBAIFZlY3Rv
cjxSZWdpc3RyYWJsZURvbWFpbj4gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmVuc3VyZVByZXZhbGVudFJlCiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3Rh
dGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRlYnVnU3RhdGljUHJldmFsZW50UmVzb3VyY2Uo
KSk7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjplbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01vZGUgd2FzIG5vdCBj
b21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCBmb3IgZGVidWdTdGF0aWNQcmV2
YWxlbnRSZXNvdXJjZSIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1
cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01vZGUgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRv
IGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCBmb3IgZGVidWdTdGF0aWNQcmV2YWxlbnRSZXNvdXJjZSIs
IHRoaXMpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApAQCAtMTcxNSw3ICsxNzE1LDcg
QEAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6ZW5zdXJlUHJldmFsZW50UmUKICAgICBpZiAoIWRlYnVnTWFudWFsUHJldmFsZW50
UmVzb3VyY2UoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNv
dXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihkZWJ1Z01hbnVhbFByZXZhbGVudFJl
c291cmNlKCkpOwogICAgICAgICBpZiAoIXJlc3VsdC5zZWNvbmQpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1
Z01vZGUgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCBmb3Ig
ZGVidWdNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSIsIHRoaXMpOworICAgICAgICAgICAgSVRQX1JF
TEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6ZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlIHdhcyBu
b3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQgZm9yIGRlYnVnTWFudWFs
UHJldmFsZW50UmVzb3VyY2UiLCB0aGlzKTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAg
ICAgIH0KICAgICAgICAgc2V0UHJldmFsZW50UmVzb3VyY2UodHJhbnNhY3Rpb24sIGRlYnVnTWFu
dWFsUHJldmFsZW50UmVzb3VyY2UoKSwgUmVzb3VyY2VMb2FkUHJldmFsZW5jZTo6SGlnaCk7CkBA
IC0xNzQ4LDcgKzE3NDgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogCiAgICAgICAgIGF1
dG8gdGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVE
b21haW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgaWYgKCF0YXJnZXRSZXN1bHQuc2Vjb25kKSB7
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAi
JXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0
aW9uIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQgb2YgdGFy
Z2V0IGRvbWFpbiIsIHRoaXMpOworICAgICAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9n
RnJhbWVOYXZpZ2F0aW9uIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0
dGVtcHQgb2YgdGFyZ2V0IGRvbWFpbiIsIHRoaXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIHVwZGF0ZUxhc3RTZWVuKHRhcmdldERvbWFpbiwgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljczo6cmVkdWNlVGltZVJlc29sdXRpb24oV2FsbFRpbWU6Om5vdygpKSk7CkBAIC0x
NzY2LDcgKzE3NjYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgUmVnaXN0cmFibGVEbwogICAgICAgICAgICAgICAg
IGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4pOwogICAgICAgICAgICAgICAgIGF1dG8g
dGFyZ2V0UmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21h
aW4odGFyZ2V0RG9tYWluKTsKICAgICAgICAgICAgICAgICBpZiAoIXRhcmdldFJlc3VsdC5zZWNv
bmQgfHwgIXJlZGlyZWN0aW5nRG9tYWluUmVzdWx0LnNlY29uZCkgewotICAgICAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uIHdhcyBu
b3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQgb2YgdGFyZ2V0IG9yIHJl
ZGlyZWN0aW5nIGRvbWFpbiAoaXNNYWluRnJhbWUpIiwgdGhpcyk7CisgICAgICAgICAgICAgICAg
ICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0ZyYW1lTmF2aWdhdGlvbiB3YXMgbm90IGNvbXBs
ZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IG9mIHRhcmdldCBvciByZWRpcmVjdGlu
ZyBkb21haW4gKGlzTWFpbkZyYW1lKSIsIHRoaXMpOwogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0
aW9uc2hpcExpc3QodHJhbnNhY3Rpb24sIHRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSwg
SGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSksICpyZWRpcmVjdGlu
Z0RvbWFpblJlc3VsdC5zZWNvbmQpOwpAQCAtMTc4OCw3ICsxNzg4LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFJl
Z2lzdHJhYmxlRG8KICAgICAgICAgICAgIGF1dG8gcmVkaXJlY3RpbmdEb21haW5SZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihzb3VyY2VEb21haW4p
OwogICAgICAgICAgICAgYXV0byB0YXJnZXRSZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3Rp
Y3NGb3JSZWdpc3RyYWJsZURvbWFpbih0YXJnZXREb21haW4pOwogICAgICAgICAgICAgaWYgKCF0
YXJnZXRSZXN1bHQuc2Vjb25kIHx8ICFyZWRpcmVjdGluZ0RvbWFpblJlc3VsdC5zZWNvbmQpIHsK
LSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nRnJhbWVOYXZp
Z2F0aW9uIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQgb2Yg
dGFyZ2V0IG9yIHJlZGlyZWN0aW5nIGRvbWFpbiAoaXNSZWRpcmVjdCkiLCB0aGlzKTsKKyAgICAg
ICAgICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dGcmFtZU5hdmlnYXRpb24gd2FzIG5v
dCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCBvZiB0YXJnZXQgb3IgcmVk
aXJlY3RpbmcgZG9tYWluIChpc1JlZGlyZWN0KSIsIHRoaXMpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGluc2VydERvbWFpblJlbGF0aW9uc2hp
cExpc3QodHJhbnNhY3Rpb24sIHN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSwgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyB0YXJnZXREb21haW4gfSksICpyZWRpcmVjdGluZ0Rv
bWFpblJlc3VsdC5zZWNvbmQpOwpAQCAtMTgxMiw3ICsxODEyLDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3Jh
dGlvbihjb24KIAogICAgIGF1dG8gdG9Eb21haW5SZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b0RvbWFpbik7CiAgICAgaWYgKCF0b0RvbWFpblJl
c3VsdC5zZWNvbmQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmxvZ0Ny
b3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZh
aWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJS
T1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojpsb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uIHdhcyBub3QgY29tcGxldGVkIGR1
ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBpbnNlcnREb21haW5SZWxhdGlvbnNoaXBMaXN0KHRyYW5zYWN0aW9uLCB0b3BGcmFt
ZUxpbmtEZWNvcmF0aW9uc0Zyb21RdWVyeSwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4oeyBm
cm9tRG9tYWluIH0pLCAqdG9Eb21haW5SZXN1bHQuc2Vjb25kKTsKQEAgLTE4MzIsNyArMTgzMiw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVG9wRnJh
bWVVbmlxdWVSZWRpcmVjdHNUb1NpbmNlU2FtCiAKICAgICBhdXRvIHRhcmdldFJlc3VsdCA9IGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiAgICAg
aWYgKCF0YXJnZXRSZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpjbGVhclRvcEZyYW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnQgd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1w
dCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclRvcEZyYW1lVW5p
cXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgd2FzIG5vdCBjb21w
bGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOwogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTg0MSw3ICsxODQx
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0c1RvU2luY2VTYW0KICAgICBpZiAoIXJlbW92ZVJlZGlyZWN0c1Rv
U2luY2VTYW1lU2l0ZQogICAgICAgICB8fCByZW1vdmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUt
PmJpbmRJbnQoMSwgKnRhcmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9PSwogICAgICAgICB8
fCByZW1vdmVSZWRpcmVjdHNUb1NpbmNlU2FtZVNpdGUtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0c1RvU2luY2VTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50IGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RzVG9TaW5jZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnQgZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIApAQCAtMTg2MCw3ICsxODYwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6c2V0VXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG8KICAg
ICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kRG91YmxlKDIsIG1vc3RSZWNlbnRJbnRlcmFj
dGlvbi5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSwogICAgICAgICB8
fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRUZXh0KDMsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRF
X09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRVc2VySW50ZXJhY3Rpb24s
IGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFVzZXJJbnRl
cmFjdGlvbiwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODc1LDcgKzE4NzUsNyBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9w
RnJhbWVEb21haQogCiAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihkb21haW4pOwogICAgIGlmICghcmVzdWx0LnNlY29uZCkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIHdh
cyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAg
ICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bG9nVXNlckludGVyYWN0aW9uIHdhcyBub3QgY29t
cGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBib29sIGRpZEhhdmVQcmV2aW91c1VzZXJJbnRlcmFjdGlvbiA9IGhh
c0hhZFVzZXJJbnRlcmFjdGlvbihkb21haW4sIE9wZXJhdGluZ0RhdGVzV2luZG93OjpMb25nKTsK
QEAgLTE4OTksNyArMTg5OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAKICAgICBhdXRv
IHRhcmdldFJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9t
YWluKGRvbWFpbik7CiAgICAgaWYgKCF0YXJnZXRSZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFjdGlvbiB3YXMgbm90IGNv
bXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CisgICAgICAgIElU
UF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uIHdhcyBub3QgY29tcGxldGVk
IGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBzZXRVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBmYWxzZSwgeyB9KTsKQEAgLTE5
MDgsNyArMTkwOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlCiAgICAgaWYgKCFyZW1vdmVT
dG9yYWdlQWNjZXNzCiAgICAgICAgIHx8IHJlbW92ZVN0b3JhZ2VBY2Nlc3MtPmJpbmRJbnQoMSwg
KnRhcmdldFJlc3VsdC5zZWNvbmQpICE9IFNRTElURV9PSwogICAgICAgICB8fCByZW1vdmVTdG9y
YWdlQWNjZXNzLT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNsZWFyVXNlckludGVyYWN0aW9uIGZhaWxlZCB0byBiaW5kLCBlcnJv
ciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclVzZXJJbnRlcmFj
dGlvbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5H
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogCkBAIC0xOTI4LDcgKzE5MjgsNyBAQCBib29sIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibAogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNjb3BlZFN0YXRl
bWVudC0+YmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV9oYWRVc2VySW50ZXJhY3Rpb25TdGF0ZW1lbnQgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptX2hhZFVz
ZXJJbnRlcmFjdGlvblN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVf
TE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE5NTgsNyArMTk1OCw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFNR
TGl0ZVRyYW5zCiAKICAgICBhdXRvIHJlZ2lzdHJhYmxlRG9tYWluSUQgPSBkb21haW5JRChkb21h
aW4pOwogICAgIGlmICghcmVnaXN0cmFibGVEb21haW5JRCkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UgZG9tYWluSUQgc2hvdWxkIGV4
aXN0IGJ1dCB3YXMgbm90IGZvdW5kLiIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0df
RVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpzZXRQcmV2YWxlbnRSZXNvdXJjZSBkb21haW5JRCBzaG91bGQgZXhpc3QgYnV0IHdhcyBu
b3QgZm91bmQuIiwgdGhpcyk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTk2OCw3ICsxOTY4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgU1FMaXRl
VHJhbnMKICAgICAgICAgfHwgc2NvcGVkVXBkYXRlUHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQt
PmJpbmRJbnQoMSwgMSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFVwZGF0ZVByZXZh
bGVudFJlc291cmNlU3RhdGVtZW50LT5iaW5kVGV4dCgyLCBkb21haW4uc3RyaW5nKCkpICE9IFNR
TElURV9PSwogICAgICAgICB8fCBzY29wZWRVcGRhdGVQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjptX3VwZGF0ZVByZXZhbGVudFJlc291cmNlU3RhdGVtZW50IGZhaWxlZCwgZXJyb3Ig
bWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVQcmV2YWxlbnRS
ZXNvdXJjZVN0YXRlbWVudCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTk3OSw3ICsxOTc5LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0UHJldmFsZW50
UmVzb3VyY2UoY29uc3QgU1FMaXRlVHJhbnMKICAgICAgICAgICAgIHx8IHNjb3BlZFVwZGF0ZVZl
cnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC0+YmluZEludCgxLCAxKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgICAgIHx8IHNjb3BlZFVwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVu
dC0+YmluZFRleHQoMiwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAg
IHx8IHNjb3BlZFVwZGF0ZVZlcnlQcmV2YWxlbnRSZXNvdXJjZVN0YXRlbWVudC0+c3RlcCgpICE9
IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
bV91cGRhdGVWZXJ5UHJldmFsZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bV91cGRhdGVWZXJ5UHJldmFs
ZW50UmVzb3VyY2VTdGF0ZW1lbnQgZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xP
R19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTE5OTYsNyArMTk5Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnNldERvbWFpbnNBc1ByZXZhbGVudChTdGRTZXQ8dW5zaWduZWQ+CiAKICAgICBhdXRvIGRv
bWFpbnNUb1VwZGF0ZVN0YXRlbWVudCA9IG1fZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudFNsb3co
bWFrZVN0cmluZygiVVBEQVRFIE9ic2VydmVkRG9tYWlucyBTRVQgaXNQcmV2YWxlbnQgPSAxIFdI
RVJFIGRvbWFpbklEIElOICgiLCBidWlsZExpc3QoV1RGOjpJdGVyYXRvclJhbmdlPFN0ZFNldDx1
bnNpZ25lZD46Oml0ZXJhdG9yPihkb21haW5zLmJlZ2luKCksIGRvbWFpbnMuZW5kKCkpKSwgIiki
KSk7CiAgICAgaWYgKCFkb21haW5zVG9VcGRhdGVTdGF0ZW1lbnQgfHwgZG9tYWluc1RvVXBkYXRl
U3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBmYWlsZWQsIGVycm9yIG1lc3Nh
Z2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldERvbWFpbnNBc1ByZXZhbGVudCBm
YWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjA0Miw3ICsyMDQyLDcgQEAgYm9vbCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJlZGljYXRlVmFsdWVGb3JEb21haW4oU1FMaXRl
U3RhdGVtZW4KICAgICBpZiAoIXByZWRpY2F0ZVN0YXRlbWVudAogICAgICAgICB8fCBwcmVkaWNh
dGVTdGF0ZW1lbnQtPmJpbmRUZXh0KDEsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHByZWRpY2F0ZVN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByZWRpY2F0ZVZhbHVlRm9yRG9tYWlu
IGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0df
RVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpwcmVkaWNhdGVWYWx1ZUZvckRvbWFpbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gISFwcmVkaWNhdGVT
dGF0ZW1lbnQtPmNvbHVtbkludCgwKTsKQEAgLTIxMDMsNyArMjEwMyw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoY29u
c3QgUmVnaXN0cmFiCiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAt
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByZXZhbGVudFJlc291
cmNlIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlz
KTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZSB3
YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0yMTEyLDcgKzIxMTIsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByZXZhbGVudFJlc291cmNl
KGNvbnN0IFJlZ2lzdHJhYgogICAgIGlmICghc2NvcGVkU3RhdGVtZW50CiAgICAgICAgIHx8IHNj
b3BlZFN0YXRlbWVudC0+YmluZFRleHQoMSwgZG9tYWluLnN0cmluZygpKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFsZW50UmVzb3VyY2Us
IGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJldmFs
ZW50UmVzb3VyY2UsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0R3JhbmRmYXRoZXJlZChjb25zdCBX
ZWJDb3JlOjpTUUxpdGUKIAogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0
aWNzRm9yUmVnaXN0cmFibGVEb21haW4oZG9tYWluKTsKICAgICBpZiAoIXJlc3VsdC5zZWNvbmQp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQg
d2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOwor
ICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRHcmFuZGZhdGhlcmVkIHdhcyBub3QgY29t
cGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICAKQEAgLTIxNDYsNyArMjE0Niw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQoY29uc3QgV2ViQ29yZTo6
U1FMaXRlCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCB2YWx1ZSkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMiwgZG9tYWlu
LnN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVw
KCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnNldEdyYW5kZmF0aGVyZWQgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZB
VEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldEdyYW5kZmF0aGVyZWQgZmFpbGVkIHRvIGJpbmQsIGVy
cm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAg
LTIxNTgsNyArMjE1OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnNldElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92CiAKICAgICBhdXRvIHJl
c3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFp
bik7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsIHdhcyBu
b3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAg
ICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0SXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRh
UmVtb3ZhbCB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0Iiwg
dGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0yMTY3LDcgKzIxNjcsNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRJc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdgogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoMSwgdmFsdWUpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQt
PmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNj
b3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1v
dmFsIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9M
T0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzZXRJc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsIGZhaWxlZCB0
byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICB9CiB9CkBAIC0yMTkyLDcgKzIxOTIsNyBAQCBTZWNvbmRzIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpnZXRNb3N0UmVjZW50bHlVcGRhdGVkVGltZXN0YW1wKGNvbgogICAg
ICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoNiwgKnRvcEZyYW1lRG9tYWluSUQpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoNywgKnN1YkZy
YW1lRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJp
bmRJbnQoOCwgKnRvcEZyYW1lRG9tYWluSUQpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0TW9zdFJlY2VudGx5VXBkYXRlZFRpbWVzdGFtcCBm
YWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VS
Uk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z2V0TW9zdFJlY2VudGx5VXBkYXRlZFRpbWVzdGFtcCBmYWlsZWQgdG8gYmluZCwgZXJyb3Ig
bWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBT
ZWNvbmRzIHsgUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6Tm9FeGlzdGluZ1RpbWVzdGFtcCAgfTsK
ICAgICB9CkBAIC0yMjE5LDcgKzIyMTksNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3QgUwogCiAg
ICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURv
bWFpbihzdWJGcmFtZURvbWFpbik7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW4gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMp
OworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVE
b21haW4gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRo
aXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIEZvciBjb25zaXN0ZW5jeSwgbWFr
ZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50cnkgZm9yIHRoZSB0b3AgZnJhbWUg
ZG9tYWluLgpAQCAtMjIzNyw3ICsyMjM3LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKGNvbnMKIAog
ICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVE
b21haW4oc3VicmVzb3VyY2VEb21haW4pOwogICAgIGlmICghcmVzdWx0LnNlY29uZCkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lRG9tYWluIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQi
LCB0aGlzKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3VicmVzb3VyY2VVbmRl
clRvcEZyYW1lRG9tYWluIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0
dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBGb3IgY29uc2lz
dGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUgYSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUg
dG9wIGZyYW1lIGRvbWFpbi4KQEAgLTIyNTUsNyArMjI1NSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhj
b25zdCBTCiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJl
Z2lzdHJhYmxlRG9tYWluKHN1YnJlc291cmNlRG9tYWluKTsKICAgICBpZiAoIXJlc3VsdC5zZWNv
bmQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBh
dHRlbXB0IiwgdGhpcyk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RUbyB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2Vy
dCBhdHRlbXB0IiwgdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gRm9yIGNv
bnNpc3RlbmN5LCBtYWtlIHN1cmUgd2UgYWxzbyBoYXZlIGEgc3RhdGlzdGljcyBlbnRyeSBmb3Ig
dGhlIHJlZGlyZWN0IGRvbWFpbi4KQEAgLTIyNzMsNyArMjI3Myw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RG
cm9tKGNvbnN0CiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0Zv
clJlZ2lzdHJhYmxlRG9tYWluKHN1YnJlc291cmNlRG9tYWluKTsKICAgICBpZiAoIXJlc3VsdC5z
ZWNvbmQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RGcm9tIHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQgaW5z
ZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vz
c2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c2V0U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxl
ZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8v
IEZvciBjb25zaXN0ZW5jeSwgbWFrZSBzdXJlIHdlIGFsc28gaGF2ZSBhIHN0YXRpc3RpY3MgZW50
cnkgZm9yIHRoZSByZWRpcmVjdCBkb21haW4uCkBAIC0yMjkxLDcgKzIyOTEsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8oY29uc3QgVG9wRgogCiAgICAgYXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFpbik7CiAgICAgaWYgKCFyZXN1
bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0VG8gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNl
cnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0VG8gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNl
cnQgYXR0ZW1wdCIsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzEwLDcg
KzIzMTAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUbwogCiAgICAgYXV0byByZXN1bHQgPSBl
bnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbih0b3BGcmFtZURvbWFp
bik7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSB3YXMgbm90IGNvbXBsZXRl
ZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CisgICAgICAgIElUUF9SRUxF
QVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tIHdhcyBub3QgY29tcGxl
dGVkIGR1ZSB0byBmYWlsZWQgaW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAvLyBGb3IgY29uc2lzdGVuY3ksIG1ha2Ugc3VyZSB3ZSBhbHNvIGhhdmUg
YSBzdGF0aXN0aWNzIGVudHJ5IGZvciB0aGUgcmVkaXJlY3QgZG9tYWluLgpAQCAtMjMyNyw3ICsy
MzI3LDcgQEAgc3RkOjpwYWlyPFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpB
ZGRlZFJlY29yZCwgc3RkOjpvcHRpb25hbDx1bnNpZ24KICAgICAgICAgYXV0byBzY29wZWRTdGF0
ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9kb21haW5JREZyb21TdHJpbmdTdGF0ZW1l
bnQsIGRvbWFpbklERnJvbVN0cmluZ1F1ZXJ5LCAiZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4iX3MpOwogICAgICAgICBpZiAoIXNjb3BlZFN0YXRlbWVudAogICAg
ICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBkb21haW4uc3RyaW5nKCkp
ICE9IFNRTElURV9PSykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluIGZhaWxlZCwgZXJy
b3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKKyAgICAgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25J
RCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTog
JSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIHsg
QWRkZWRSZWNvcmQ6Ok5vLCAwIH07CiAgICAgICAgIH0KQEAgLTIzNDIsNyArMjM0Miw3IEBAIHN0
ZDo6cGFpcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6QWRkZWRSZWNvcmQs
IHN0ZDo6b3B0aW9uYWw8dW5zaWduCiAgICAgYXV0byByZXN1bHQgPSBpbnNlcnRPYnNlcnZlZERv
bWFpbihuZXdPYnNlcnZhdGlvbik7CiAKICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0
cmFibGVEb21haW4gaW5zZXJ0T2JzZXJ2ZWREb21haW4gZmFpbGVkIHRvIGNvbXBsZXRlLCBlcnJv
ciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjplbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbiBpbnNlcnRPYnNlcnZlZERvbWFpbiBmYWlsZWQg
dG8gY29tcGxldGUsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4geyBBZGRlZFJlY29yZDo6Tm8sIHN0ZDo6bnVsbG9wdCB9OwogICAg
IH0KQEAgLTIzNzEsNyArMjM3MSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlbW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVECiAgICAgaWYg
KCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kSW50KDEs
ICpkb21haW5JRFRvUmVtb3ZlKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlbW92ZURhdGFGb3JEb21haW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQ
UklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZW1vdmVEYXRhRm9yRG9tYWluIGZhaWxlZCwgZXJy
b3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAt
MjQyMyw3ICsyNDIzLDcgQEAgQ29va2llQWNjZXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpjb29raWVBY2Nlc3MoY29uc3QgU3ViUmVzb3VyY2UKIAogICAgIGF1dG8gc3Rh
dGVtZW50ID0gbV9kYXRhYmFzZS5wcmVwYXJlU3RhdGVtZW50KCJTRUxFQ1QgaXNQcmV2YWxlbnQs
IGhhZFVzZXJJbnRlcmFjdGlvbiBGUk9NIE9ic2VydmVkRG9tYWlucyBXSEVSRSByZWdpc3RyYWJs
ZURvbWFpbiA9ID8iX3MpOwogICAgIGlmICghc3RhdGVtZW50IHx8IHN0YXRlbWVudC0+YmluZFRl
eHQoMSwgc3VicmVzb3VyY2VEb21haW4uc3RyaW5nKCkpICE9IFNRTElURV9PSykgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y29va2llQWNjZXNzIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9u
SUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb29raWVBY2Nl
c3MgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIApAQCAtMjQ0Niw3ICsyNDQ2LDcgQEAgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3Jh
bnRlZFMKIAogICAgIGF1dG8gcmVzdWx0ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVn
aXN0cmFibGVEb21haW4oZmlyc3RQYXJ0eURvbWFpbik7CiAgICAgaWYgKCFyZXN1bHQuc2Vjb25k
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRlZFN0
b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0IHdhcyBub3QgY29tcGxldGVkIGR1ZSB0byBmYWlsZWQg
aW5zZXJ0IGF0dGVtcHQiLCB0aGlzKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1f
c2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFz
VXNlckdyYW50ZWRTdG9yYWdlQWNjZXNzVGhyb3VnaFByb21wdCB3YXMgbm90IGNvbXBsZXRlZCBk
dWUgdG8gZmFpbGVkIGluc2VydCBhdHRlbXB0IiwgdGhpcyk7CiAgICAgICAgIHJldHVybiBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vOwogICAgIH0KIApAQCAtMjU5NSw3ICsyNTk1LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJHcmFuZGZh
dGhlcmluZyhWZWN0b3I8dW5zaWduZWQ+JiYKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
IChjbGVhckdyYW5kZmF0aGVyaW5nU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcg
ZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19F
UlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyR3JhbmRmYXRoZXJpbmcgZmFpbGVkIHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUi
IFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTI3NTUsNyArMjc1NSw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnBydW5lU3RhdGlz
dGljc0lmTmVlZGVkKCkKIAogICAgIGF1dG8gcHJ1bmVDb21tYW5kID0gbV9kYXRhYmFzZS5wcmVw
YXJlU3RhdGVtZW50U2xvdyhtYWtlU3RyaW5nKCJERUxFVEUgZnJvbSBPYnNlcnZlZERvbWFpbnMg
V0hFUkUgZG9tYWluSUQgSU4gKCIsIGxpc3RUb1BydW5lLCAiKSIpKTsKICAgICBpZiAoIXBydW5l
Q29tbWFuZCB8fCBwcnVuZUNvbW1hbmQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJ1bmVTdGF0aXN0aWNzSWZOZWVkZWQgZmFp
bGVkLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcnVuZVN0
YXRpc3RpY3NJZk5lZWRlZCBmYWlsZWQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc3MCw3ICsyNzcwLDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlTGFzdFNl
ZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4KICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5i
aW5kRG91YmxlKDEsIGxhc3RTZWVuLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkgIT0gU1FM
SVRFX09LCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMiwgZG9tYWluLnN0
cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkg
IT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVw
ZGF0ZUxhc3RTZWVuIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xP
R19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBf
UkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVMYXN0U2VlbiBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVz
c2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0yNzg1LDcgKzI3ODUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZAogCiAgICAg
YXV0byByZXN1bHQgPSBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFp
bihkb21haW4pOwogICAgIGlmICghcmVzdWx0LnNlY29uZCkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6c2V0TGFzdFNlZW4gd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZh
aWxlZCBpbnNlcnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJS
T1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpzZXRMYXN0U2VlbiB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRl
bXB0IiwgdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0yODE3LDcgKzI4
MTcsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2
YWxlbnRSZXNvdXJjZShjb25zdCBTUUxpdGVUcmFucwogCiAgICAgYXV0byByZXN1bHQgPSBlbnN1
cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihkb21haW4pOwogICAgIGlm
ICghcmVzdWx0LnNlY29uZCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
c2V0UHJldmFsZW50UmVzb3VyY2Ugd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNl
cnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRQcmV2
YWxlbnRSZXNvdXJjZSB3YXMgbm90IGNvbXBsZXRlZCBkdWUgdG8gZmFpbGVkIGluc2VydCBhdHRl
bXB0IiwgdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI4NDksNyArMjg0OSw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnNldFZlcnlQcmV2
YWxlbnRSZXNvdXJjZShjb25zdCBTUUxpdGVUCiAKICAgICBhdXRvIHJlc3VsdCA9IGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbik7CiAgICAgaWYgKCFy
ZXN1bHQuc2Vjb25kKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2Ugd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNl
cnQgYXR0ZW1wdCIsIHRoaXMpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNz
aW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzZXRWZXJ5
UHJldmFsZW50UmVzb3VyY2Ugd2FzIG5vdCBjb21wbGV0ZWQgZHVlIHRvIGZhaWxlZCBpbnNlcnQg
YXR0ZW1wdCIsIHRoaXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yODY1LDcgKzI4
NjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVE
YXRhUmVjb3Jkc1JlbW92ZWQoY29uc3QgUmVnaXN0cgogICAgICAgICB8fCBzY29wZWRTdGF0ZW1l
bnQtPmJpbmRJbnQoMSwgdmFsdWUpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRTdGF0
ZW1lbnQtPmJpbmRUZXh0KDIsIGRvbWFpbi5zdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVEYXRhUmVjb3Jkc1JlbW92ZWQgZmFpbGVk
IHRvIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUiht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVw
ZGF0ZURhdGFSZWNvcmRzUmVtb3ZlZCBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJSIg
UFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0y
ODc4LDcgKzI4NzgsNyBAQCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
Ojppc0NvcnJlY3RTdWJTdGF0aXN0aWNzQ291bnQoY29uc3QgUmVnaQogICAgIGF1dG8gc3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdHNUbyA9IG1fZGF0YWJhc2UucHJlcGFyZVN0YXRlbWVudChjb3Vu
dFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG9RdWVyeSk7CiAgICAgCiAgICAgaWYgKCFzdWJG
cmFtZVVuZGVyVG9wRnJhbWVDb3VudCB8fCAhc3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQg
fHwgIXN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RzVG8pIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmNvdW50U3ViU3RhdGlzdGljc1Rlc3RpbmcgZmFpbGVkIHRvIHByZXBh
cmUsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNvdW50U3Vi
U3RhdGlzdGljc1Rlc3RpbmcgZmFpbGVkIHRvIHByZXBhcmUsIGVycm9yIG1lc3NhZ2U6ICUiIFBS
SVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMjg4OSw3ICsyODg5LDcgQEAgYm9vbCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aXNDb3JyZWN0U3ViU3RhdGlzdGljc0NvdW50KGNvbnN0IFJlZ2kKICAgICAgICAgfHwg
c3VicmVzb3VyY2VVbmRlclRvcEZyYW1lQ291bnQtPmJpbmRJbnQoMiwgZG9tYWluSUQodG9wRnJh
bWVEb21haW4pLnZhbHVlKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdWJyZXNvdXJjZVVu
aXF1ZVJlZGlyZWN0c1RvLT5iaW5kSW50KDEsIGRvbWFpbklEKHN1YmZyYW1lRG9tYWluKS52YWx1
ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdHNU
by0+YmluZEludCgyLCBkb21haW5JRCh0b3BGcmFtZURvbWFpbikudmFsdWUoKSkgIT0gU1FMSVRF
X09LKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQs
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjb3VudFN1YlN0YXRp
c3RpY3NUZXN0aW5nIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xP
R19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBf
UkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpjb3VudFN1YlN0YXRpc3RpY3NUZXN0aW5nIGZhaWxlZCB0byBiaW5k
LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2Uu
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTI5MTksNyArMjkxOSw3IEBAIFN0cmluZyBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklE
KHVuc2lnbmVkCiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1l
bnQobV9kb21haW5TdHJpbmdGcm9tRG9tYWluSURTdGF0ZW1lbnQsIGRvbWFpblN0cmluZ0Zyb21E
b21haW5JRFF1ZXJ5LCAiZ2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklEIl9zKTsKICAgICBpZiAo
IXNjb3BlZFN0YXRlbWVudAogICAgICAgICB8fCBzY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwg
ZG9tYWluSUQpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklELiBTdGF0ZW1lbnQgZmFpbGVkIHRvIHBy
ZXBhcmUgb3IgYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlz
LCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VS
Uk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z2V0RG9tYWluU3RyaW5nRnJvbURvbWFpbklELiBTdGF0ZW1lbnQgZmFpbGVkIHRvIHByZXBh
cmUgb3IgYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBt
X2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtMjk2NCw3ICsyOTY0LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YXBwZW5kU3ViU3RhdGlzdGlj
TGlzdChTdHJpbmdCdWlsZGVyJgogICAgIGF1dG8gZGF0YSA9IG1fZGF0YWJhc2UucHJlcGFyZVN0
YXRlbWVudChxdWVyeSk7CiAgICAgCiAgICAgaWYgKCFkYXRhIHx8IGRhdGEtPmJpbmRJbnQoMSwg
ZG9tYWluSUQoUmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KGRvbWFp
bikpLnZhbHVlKCkpICE9IFNRTElURV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6YXBwZW5kU3ViU3RhdGlzdGljTGlzdC4gU3RhdGVtZW50IGZhaWxlZCB0byBwcmVw
YXJlIG9yIGJpbmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJP
UihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmFwcGVuZFN1YlN0YXRpc3RpY0xpc3QuIFN0YXRlbWVudCBmYWlsZWQgdG8gcHJlcGFyZSBvciBi
aW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTI5OTQsNyArMjk5NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlc291cmNlVG9TdHJpbmcoU3RyaW5nQnVpbGRlciYg
YnVpbGRlCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5iaW5kVGV4dCgxLCBkb21haW4pICE9IFNRTElURV9PSwogICAgICAgICB8fCBzY29wZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfUk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpyZXNvdXJjZVRvU3RyaW5nLiBTdGF0ZW1lbnQgZmFpbGVkIHRvIGJpbmQg
b3IgZG9tYWluIHdhcyBub3QgZm91bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxF
QVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlc291cmNlVG9TdHJpbmcuIFN0YXRlbWVudCBmYWlsZWQgdG8gYmluZCBv
ciBkb21haW4gd2FzIG5vdCBmb3VuZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RS
SU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMDY5LDcgKzMwNjksNyBA
QCBib29sIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREV4aXN0
c0luRGF0YWJhc2UoaW50IGRvbWFpbklEKQogICAgICAgICB8fCBtX3VuaXF1ZVJlZGlyZWN0RXhp
c3RzU3RhdGVtZW50LT5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAg
fHwgbV91bmlxdWVSZWRpcmVjdEV4aXN0c1N0YXRlbWVudC0+YmluZEludCgyLCBkb21haW5JRCkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IG1fb2JzZXJ2ZWREb21haW5zRXhpc3RzU3RhdGVtZW50
LT5iaW5kSW50KDEsIGRvbWFpbklEKSAhPSBTUUxJVEVfT0spIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZSBmYWlsZWQgdG8gYmlu
ZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lv
bklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSURF
eGlzdHNJbkRhdGFiYXNlIGZhaWxlZCB0byBiaW5kLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRF
X0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTMw
ODAsNyArMzA4MCw3IEBAIGJvb2wgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShpbnQgZG9tYWluSUQpCiAgICAgICAgIHx8IG1fc3Vi
UmVzb3VyY2VFeGlzdHNTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfUk9XCiAgICAgICAgIHx8
IG1fdW5pcXVlUmVkaXJlY3RFeGlzdHNTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfUk9XCiAg
ICAgICAgIHx8IG1fb2JzZXJ2ZWREb21haW5zRXhpc3RzU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FM
SVRFX1JPVykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lv
bklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZG9tYWluSURF
eGlzdHNJbkRhdGFiYXNlIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRF
X0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJ
VFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5JREV4aXN0c0luRGF0YWJhc2UgZmFpbGVkIHRvIHN0
ZXAsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMzA5NSw3ICszMDk1LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0
ZXJzKCkKICAgICBhdXRvIGdldE9wZXJhdGluZ0RhdGVXaW5kb3dTdGF0ZW1lbnQgPSBtX2RhdGFi
YXNlLnByZXBhcmVTdGF0ZW1lbnQoIlNFTEVDVCAqIEZST00gT3BlcmF0aW5nRGF0ZXMgT1JERVIg
QlkgeWVhciBERVNDLCBtb250aCBERVNDLCBtb250aERheSBERVNDIExJTUlUIDEgT0ZGU0VUID87
Il9zKTsKIAogICAgIGlmICghY291bnRPcGVyYXRpbmdEYXRlc1N0YXRlbWVudCB8fCBjb3VudE9w
ZXJhdGluZ0RhdGVzU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX1JPVykgewotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0ZXJz
IGNvdW50T3BlcmF0aW5nRGF0ZXNTdGF0ZW1lbnQgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3Nh
Z2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnVwZGF0ZU9wZXJhdGluZ0RhdGVzUGFy
YW1ldGVycyBjb3VudE9wZXJhdGluZ0RhdGVzU3RhdGVtZW50IGZhaWxlZCB0byBzdGVwLCBlcnJv
ciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTMxMDMsMTQgKzMxMDMsMTQgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0ZXJzKCkKICAgICBt
X29wZXJhdGluZ0RhdGVzU2l6ZSA9IGNvdW50T3BlcmF0aW5nRGF0ZXNTdGF0ZW1lbnQtPmNvbHVt
bkludCgwKTsKIAogICAgIGlmICghZ2V0TW9zdFJlY2VudE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQg
fHwgZ2V0TW9zdFJlY2VudE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVf
Uk9XKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQs
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVPcGVyYXRp
bmdEYXRlc1BhcmFtZXRlcnMgZ2V0Rmlyc3RPcGVyYXRpbmdEYXRlU3RhdGVtZW50IGZhaWxlZCB0
byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0
YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9z
ZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRh
dGVPcGVyYXRpbmdEYXRlc1BhcmFtZXRlcnMgZ2V0Rmlyc3RPcGVyYXRpbmdEYXRlU3RhdGVtZW50
IGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRo
aXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX21vc3RSZWNlbnRPcGVyYXRpbmdE
YXRlID0gT3BlcmF0aW5nRGF0ZShnZXRNb3N0UmVjZW50T3BlcmF0aW5nRGF0ZVN0YXRlbWVudC0+
Y29sdW1uSW50KDApLCBnZXRNb3N0UmVjZW50T3BlcmF0aW5nRGF0ZVN0YXRlbWVudC0+Y29sdW1u
SW50KDEpLCBnZXRNb3N0UmVjZW50T3BlcmF0aW5nRGF0ZVN0YXRlbWVudC0+Y29sdW1uSW50KDIp
KTsKIAogICAgIGlmICghZ2V0T3BlcmF0aW5nRGF0ZVdpbmRvd1N0YXRlbWVudCkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0
ZXJzIGdldE9wZXJhdGluZ0RhdGVXaW5kb3dTdGF0ZW1lbnQgZmFpbGVkIGR1cmluZyB0aGUgY2Fs
bCB0byBwcmVwYXJlKCkgd2l0aCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcg
Ii4iLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVB
U0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0ZXJzIGdldE9wZXJhdGluZ0Rh
dGVXaW5kb3dTdGF0ZW1lbnQgZmFpbGVkIGR1cmluZyB0aGUgY2FsbCB0byBwcmVwYXJlKCkgd2l0
aCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcgIi4iLCB0aGlzLCBtX2RhdGFi
YXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0zMTIwLDcgKzMxMjAsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVPcGVyYXRpbmdEYXRlc1BhcmFtZXRlcnMo
KQogICAgIGVsc2UgewogICAgICAgICBpZiAoZ2V0T3BlcmF0aW5nRGF0ZVdpbmRvd1N0YXRlbWVu
dC0+YmluZEludCgxLCBvcGVyYXRpbmdEYXRlc1dpbmRvd1Nob3J0IC0gMSkgIT0gU1FMSVRFX09L
CiAgICAgICAgICAgICB8fCBnZXRPcGVyYXRpbmdEYXRlV2luZG93U3RhdGVtZW50LT5zdGVwKCkg
IT0gU1FMSVRFX1JPVykgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OnVwZGF0ZU9wZXJhdGluZ0RhdGVzUGFyYW1ldGVycyBnZXRPcGVyYXRpbmdEYXRlV2luZG93U3Rh
dGVtZW50IGZhaWxlZCB3aXRoIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORyAi
LiBUaGUgZXJyb3IgY291bGQgYmUgaW4gdGhlIGNhbGxzIHRvIGJpbmQoKSBvciBzdGVwKCkuIiwg
dGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBJVFBfUkVMRUFT
RV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjp1cGRhdGVPcGVyYXRpbmdEYXRlc1BhcmFtZXRlcnMgZ2V0T3BlcmF0aW5nRGF0
ZVdpbmRvd1N0YXRlbWVudCBmYWlsZWQgd2l0aCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xP
R19TVFJJTkcgIi4gVGhlIGVycm9yIGNvdWxkIGJlIGluIHRoZSBjYWxscyB0byBiaW5kKCkgb3Ig
c3RlcCgpLiIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTMxMzMsNyArMzEzMyw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnVwZGF0ZU9wZXJhdGluZ0RhdGVzUGFyYW1ldGVycygpCiAgICAgICAgIGdldE9wZXJhdGlu
Z0RhdGVXaW5kb3dTdGF0ZW1lbnQtPnJlc2V0KCk7CiAgICAgICAgIGlmIChnZXRPcGVyYXRpbmdE
YXRlV2luZG93U3RhdGVtZW50LT5iaW5kSW50KDEsIG9wZXJhdGluZ0RhdGVzV2luZG93TG9uZyAt
IDEpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgZ2V0T3BlcmF0aW5nRGF0ZVdpbmRvd1N0
YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ST1cpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjp1cGRhdGVPcGVyYXRpbmdEYXRlc1BhcmFtZXRlcnMgZ2V0T3BlcmF0
aW5nRGF0ZVdpbmRvd1N0YXRlbWVudCBmYWlsZWQgd2l0aCBlcnJvciBtZXNzYWdlOiAlIiBQUklW
QVRFX0xPR19TVFJJTkcgIi4gVGhlIGVycm9yIGNvdWxkIGJlIGluIHRoZSBjYWxscyB0byBiaW5k
KCkgb3Igc3RlcCgpLiIsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAg
ICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6dXBkYXRlT3BlcmF0aW5nRGF0ZXNQYXJhbWV0ZXJz
IGdldE9wZXJhdGluZ0RhdGVXaW5kb3dTdGF0ZW1lbnQgZmFpbGVkIHdpdGggZXJyb3IgbWVzc2Fn
ZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HICIuIFRoZSBlcnJvciBjb3VsZCBiZSBpbiB0aGUgY2Fs
bHMgdG8gYmluZCgpIG9yIHN0ZXAoKS4iLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0zMTYwLDcgKzMxNjAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjppbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2Fy
eQogICAgICAgICBpZiAoIWRlbGV0ZUxlYXN0UmVjZW50T3BlcmF0aW5nRGF0ZVN0YXRlbWVudAog
ICAgICAgICAgICAgfHwgZGVsZXRlTGVhc3RSZWNlbnRPcGVyYXRpbmdEYXRlU3RhdGVtZW50LT5i
aW5kSW50KDEsIHJvd3NUb1BydW5lKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IGRlbGV0
ZUxlYXN0UmVjZW50T3BlcmF0aW5nRGF0ZVN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05F
KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5jbHVkZVRvZGF5
QXNPcGVyYXRpbmdEYXRlSWZOZWNlc3NhcnkgZGVsZXRlTGVhc3RSZWNlbnRPcGVyYXRpbmdEYXRl
U3RhdGVtZW50IGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19T
VFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgSVRQ
X1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aW5jbHVkZVRvZGF5QXNPcGVyYXRpbmdEYXRlSWZOZWNlc3Nhcnkg
ZGVsZXRlTGVhc3RSZWNlbnRPcGVyYXRpbmdEYXRlU3RhdGVtZW50IGZhaWxlZCB0byBzdGVwLCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IH0KICAgICB9CkBAIC0zMTcxLDcgKzMxNzEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjppbmNsdWRlVG9kYXlBc09wZXJhdGluZ0RhdGVJZk5lY2Vzc2FyeQog
ICAgICAgICB8fCBpbnNlcnRPcGVyYXRpbmdEYXRlU3RhdGVtZW50LT5iaW5kSW50KDIsIHRvZGF5
Lm1vbnRoKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBpbnNlcnRPcGVyYXRpbmdEYXRlU3Rh
dGVtZW50LT5iaW5kSW50KDMsIHRvZGF5Lm1vbnRoRGF5KCkpICE9IFNRTElURV9PSwogICAgICAg
ICB8fCBpbnNlcnRPcGVyYXRpbmdEYXRlU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmluY2x1ZGVUb2RheUFzT3Bl
cmF0aW5nRGF0ZUlmTmVjZXNzYXJ5IGluc2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQgZmFpbGVk
IHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUiht
X3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omlu
Y2x1ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVjZXNzYXJ5IGluc2VydE9wZXJhdGluZ0RhdGVT
dGF0ZW1lbnQgZmFpbGVkIHRvIHN0ZXAsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NU
UklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtMzIyNiw3ICszMjI2LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRl
c3RpbmcoY29uc3QKICAgICAgICAgICAgIHx8IGluc2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQt
PmJpbmRJbnQoMiwgZGF0ZVRvSW5zZXJ0Lm1vbnRoKCkpICE9IFNRTElURV9PSwogICAgICAgICAg
ICAgfHwgaW5zZXJ0T3BlcmF0aW5nRGF0ZVN0YXRlbWVudC0+YmluZEludCgzLCBkYXRlVG9JbnNl
cnQubW9udGhEYXkoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBpbnNlcnRPcGVyYXRp
bmdEYXRlU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGlu
ZyBpbnNlcnRPcGVyYXRpbmdEYXRlU3RhdGVtZW50IGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNz
YWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAg
LSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZFN0YXRp
c3RpY0ZvclRlc3RpbmcgaW5zZXJ0T3BlcmF0aW5nRGF0ZVN0YXRlbWVudCBmYWlsZWQgdG8gc3Rl
cCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICB9CiAgICAgICAgIGluc2VydE9wZXJhdGluZ0RhdGVTdGF0ZW1lbnQtPnJlc2V0KCk7CkBA
IC0zMjUwLDcgKzMyNTAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhjb25zdAogICAgICAgICB8fCBz
Y29wZWRJbnNlcnRPYnNlcnZlZERvbWFpblN0YXRlbWVudC0+YmluZEludChUaW1lc0FjY2Vzc2Vk
QXNGaXJzdFBhcnR5RHVlVG9Vc2VySW50ZXJhY3Rpb25JbmRleCwgMCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHNjb3BlZEluc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50LT5iaW5kSW50KFRp
bWVzQWNjZXNzZWRBc0ZpcnN0UGFydHlEdWVUb1N0b3JhZ2VBY2Nlc3NBUElJbmRleCwgMCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHNjb3BlZEluc2VydE9ic2VydmVkRG9tYWluU3RhdGVtZW50
LT5iaW5kSW50KElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWxJbmRleCwgaXNT
Y2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCkgIT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9y
VGVzdGluZyBmYWlsZWQgdG8gYmluZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RS
SU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVB
U0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcgZmFpbGVkIHRvIGJp
bmQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMzMxMyw3ICszMzEzLDcgQEAgc3RkOjpwYWlyPHN0ZDo6b3B0
aW9uYWw8VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ+LCBzdGQ6Om9wdGlvbmFs
PEF0dHIKICAgICBpZiAoIWZpbmRVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQKICAgICAgICAg
fHwgZmluZFVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAqc291cmNlU2l0
ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgZmluZFVuYXR0cmlidXRlZFNjb3Bl
ZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRpb25TaXRlRG9tYWluSUQpICE9IFNRTElU
RV9PSykgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZFByaXZhdGVD
bGlja01lYXN1cmVtZW50IGZpbmRVbmF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIg
UFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGZp
bmRVbmF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5H
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogCkBAIC0zMzIxLDcgKzMzMjEsNyBAQCBzdGQ6OnBhaXI8c3RkOjpv
cHRpb25hbDxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudD4sIHN0ZDo6b3B0aW9u
YWw8QXR0cgogICAgIGlmICghZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQKICAgICAgICAg
fHwgZmluZEF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVE
b21haW5JRCkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGZpbmRBdHRyaWJ1dGVkU2NvcGVkU3Rh
dGVtZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09L
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIl
cCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgZmluZEF0dHJpYnV0ZWRRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFU
RV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
SVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6ZmluZFByaXZhdGVDbGlja01lYXN1cmVtZW50IGZpbmRBdHRy
aWJ1dGVkUXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KIApAQCAtMzM3Miw3ICszMzcyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUHJpdmF0ZUMK
ICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoMTAsIHNvdXJjZVVubGlua2FibGVU
b2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+a2V5SURCYXNlNjRVUkwgOiBlbXB0eVN0cmlu
ZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZERvdWJsZSgx
MSwgZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQpICE9IFNRTElURV9PSwogICAgICAgICAg
ICAgfHwgc3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBp
bnNlcnRBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRRdWVyeSwgZXJyb3IgbWVzc2Fn
ZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKKyAgICAgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01l
YXN1cmVtZW50IGluc2VydEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuOwpAQCAtMzM4OCw3ICszMzg4LDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
UHJpdmF0ZUMKICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg2LCBzb3VyY2VVbmxpbmth
YmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9rZW4tPnNpZ25hdHVyZUJhc2U2NFVSTCA6IGVt
cHR5U3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0
KDcsIHNvdXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+a2V5SURC
YXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50IGluc2VydFVuYXR0cmlidXRl
ZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVf
TE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElU
UF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50IGluc2VydFVu
YXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksIGVycm9yIG1lc3NhZ2U6ICUi
IFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTMzOTgsNyArMzM5OCw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBbGxVbmF0
dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlCiAgICAgYXV0byBzY29wZWRTdGF0ZW1lbnQgPSB0
aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9zZXRVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudEFzRXhwaXJlZFN0YXRlbWVudCwgc2V0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBc0V4cGlyZWRRdWVyeSwgIm1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmciX3MpOwogCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1l
bnQgfHwgc2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZB
VEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
IElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9H
X1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KQEAgLTM0MTcsNyArMzQxNyw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRlZChQcml2
YXRlQ2xpY2tNZWFzdXJlCiAgICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+YmluZEludCgxLCAq
c291cmNlU2l0ZURvbWFpbklEKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2NvcGVkU3RhdGVt
ZW50LT5iaW5kSW50KDIsICpkZXN0aW5hdGlvblNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IHNjb3BlZFN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZW1vdmVVbmF0dHJpYnV0ZWQsIGVycm9y
IG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlbW92ZVVuYXR0cmlidXRl
ZCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNl
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQog
fQpAQCAtMzUwMiw3ICszNTAyLDcgQEAgVmVjdG9yPFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50PiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6YWwKICAgICBhdXRv
IGF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQgPSB0aGlzLT5zY29wZWRTdGF0ZW1lbnQobV9hbGxB
dHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdGF0ZW1lbnQsIGFsbEF0dHJpYnV0ZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCAicHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0
cmluZyJfcyk7CiAKICAgICBpZiAoIWF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1lbnQpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9T
dHJpbmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nl
c3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZh
dGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9H
X1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtMzUzNCw3ICszNTM0LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChzdGQ6Om9wdGkKICAgICAgICAgfHwgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRTdGF0ZW1l
bnQtPmJpbmRUZXh0KDEsIGJpbmRQYXJhbWV0ZXIpICE9IFNRTElURV9PSwogICAgICAgICB8fCBj
bGVhclVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudC0+YmluZFRleHQoMiwgYmluZFBhcmFtZXRl
cikgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IGNsZWFyVW5hdHRyaWJ1dGVkU2NvcGVkU3RhdGVt
ZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY2xlYXJVbmF0dHJpYnV0ZWRT
Y29wZWRTdGF0ZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhp
cywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19F
UlJPUihtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OmNsZWFyUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgY2xlYXJVbmF0dHJpYnV0ZWRTY29wZWRT
dGF0ZW1lbnQsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9k
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIApAQCAtMzU0NCw3ICszNTQ0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2xlYXJQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzdGQ6Om9wdGkKICAg
ICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5iaW5kVGV4dCgxLCBiaW5k
UGFyYW1ldGVyKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgY2xlYXJBdHRyaWJ1dGVkU2NvcGVk
U3RhdGVtZW50LT5iaW5kVGV4dCgyLCBiaW5kUGFyYW1ldGVyKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgfHwgY2xlYXJBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RP
TkUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwg
IiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQgY2xlYXJBdHRyaWJ1dGVkU2NvcGVkU3RhdGVtZW50LCBlcnJvciBtZXNz
YWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNn
KCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclByaXZhdGVDbGlja01lYXN1
cmVtZW50IGNsZWFyQXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCwgZXJyb3IgbWVzc2FnZTogJSIg
UFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCkBAIC0zNTU5LDcgKzM1NTksNyBA
QCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpCiAgICAgaWYgKCFzY29wZWRTdGF0ZW1lbnQKICAgICAg
ICAgfHwgc2NvcGVkU3RhdGVtZW50LT5iaW5kRG91YmxlKDEsIGV4cGlyYXRpb25UaW1lRnJhbWUu
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc2Nv
cGVkU3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChtX3Nlc3Npb25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyRXhwaXJlZFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBl
cnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOworICAgICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQs
ICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhckV4cGlyZWRQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RS
SU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgfQogfQpAQCAtMzYxMCw3ICszNjEwLDcgQEAgU3RyaW5nIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
U3RyaW5nKCkKICAgICBhdXRvIHVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNj
b3BlZFN0YXRlbWVudChtX2FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0
cmlidXRpb25zU3RhdGVtZW50LCBhbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uc1F1ZXJ5LCAicHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZyJfcyk7
CiAKICAgICBpZiAoIXVuYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZywg
ZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0VfTE9HX0VSUk9SKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5H
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgfQogCkBAIC0zNjI1LDcgKzM2MjUsNyBAQCBTdHJpbmcgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJp
bmcoKQogICAgIGF1dG8gYXR0cmlidXRlZFNjb3BlZFN0YXRlbWVudCA9IHRoaXMtPnNjb3BlZFN0
YXRlbWVudChtX2FsbEF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0YXRlbWVudCwg
YWxsQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50UXVlcnksICJwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRvU3RyaW5nIl9zKTsKIAogICAgIGlmICghYXR0cmlidXRlZFNjb3BlZFN0YXRl
bWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklE
LCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5H
LCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgSVRQX1JFTEVBU0Vf
TE9HX0VSUk9SKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb1N0cmluZywgZXJyb3IgbWVzc2FnZTog
JSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCkBAIC0zNzM1LDcgKzM3MzUs
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbGVhclNlbnRB
dHRyaWJ1dGlvbihXZWJDb3JlOjpQcml2YXRlQwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRT
dGF0ZW1lbnQtPmJpbmRJbnQoMSwgKnNvdXJjZVNpdGVEb21haW5JRCkgIT0gU1FMSVRFX09LCiAg
ICAgICAgIHx8IGNsZWFyQXR0cmlidXRlZFN0YXRlbWVudC0+YmluZEludCgyLCAqZGVzdGluYXRp
b25TaXRlRG9tYWluSUQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBjbGVhckF0dHJpYnV0ZWRT
dGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Y2xlYXJTZW50QXR0cmlidXRpb24gZmFpbGVkIHRvIHN0ZXAsIGVycm9y
IG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Npb25JRCwgIiVw
IC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmNsZWFyU2VudEF0dHJpYnV0
aW9uIGZhaWxlZCB0byBzdGVwLCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJTkcs
IHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CiB9CkBAIC0zNzUzLDEyICszNzUzLDEyIEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRzCiAgICAgaWYgKCFlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZVN0YXRlbWVudAog
ICAgICAgICB8fCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZVN0YXRlbWVudC0+YmluZEludCgx
LCBleHBpcmVkVGltZVRvU2VuZC5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElU
RV9PSwogICAgICAgICB8fCBlYXJsaWVzdFRpbWVUb1NlbmRUb1NvdXJjZVN0YXRlbWVudC0+c3Rl
cCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50c0FzRXhwaXJlZEZvclRlc3Rp
bmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywgbV9kYXRhYmFz
ZS5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIElUUF9SRUxFQVNFX0xPR19FUlJPUihtX3Nlc3Np
b25JRCwgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om1hcmtBdHRy
aWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRzQXNFeHBpcmVkRm9yVGVzdGluZywgZXJyb3Ig
bWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2RhdGFiYXNlLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCiAgICAgaWYg
KCFlYXJsaWVzdFRpbWVUb1NlbmRUb0Rlc3RpbmF0aW9uU3RhdGVtZW50IHx8IGVhcmxpZXN0VGlt
ZVRvU2VuZFRvRGVzdGluYXRpb25TdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKG1fc2Vzc2lvbklELCAiJXAgLSBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0F0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudHNBc0V4cGlyZWRGb3JUZXN0aW5nLCBlcnJvciBtZXNzYWdlOiAlIiBQ
UklWQVRFX0xPR19TVFJJTkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOworICAg
ICAgICBJVFBfUkVMRUFTRV9MT0dfRVJST1IobV9zZXNzaW9uSUQsICIlcCAtIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjptYXJrQXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50c0FzRXhwaXJlZEZvclRlc3RpbmcsIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9H
X1NUUklORywgdGhpcywgbV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIApAQCAtMzc2OSw0ICszNzY5LDcgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6bWFya0F0dHJpYnV0ZWRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHMKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyN1bmRlZiBJVFBfUkVM
RUFTRV9MT0cKKyN1bmRlZiBJVFBfUkVMRUFTRV9MT0dfRVJST1IKKwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBmN2QzNWFk
MGI4YmVjNmFlNGVjYWIwMzZkNzY0YWRmMDFmZDNlNzkwLi5lMTc5YmI5MDg5NWY5YjdlNjc5MWVh
NTM0ZWUzOWRiNjI3Mjk3MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTE3NCw3ICsxNzQsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9p
b3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50
cy5oPgogCi0jZGVmaW5lIFdLV0VCVklFV19SRUxFQVNFX0xPRyguLi4pIFJFTEVBU0VfTE9HX0lG
KFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFdLV0VCVklFV19SRUxFQVNFX0xPRygu
Li4pIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXgg
ZDQwOTBhOWJiNzdlY2U0NGY5M2ExODJjNzRjNzAwYWEwMTZhZTI2Ni4uMzQzMmNlYjZjMmMzNTlk
ZTNjZjNkMGQ3NTUxNjNjYTk1ZGI5M2Y2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE3MjYsNyAr
MTcyNiw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1ByCiAgICAgICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHdlYlByb2Nlc3NQ
cm94eSA9IFdURk1vdmUod2ViUHJvY2Vzc1Byb3h5KSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0g
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKFJlZlB0cjxXZWJzaXRlRGF0YVN0b3Jl
PiBzdHJvbmdUaGlzID0gd2Vha1RoaXMuZ2V0KCk7IHN0cm9uZ1RoaXMgJiYgd2ViUHJvY2Vzc1By
b3h5KSB7CiAgICAgICAgICAgICAgICAgICAgIHN0cm9uZ1RoaXMtPnRlcm1pbmF0ZU5ldHdvcmtQ
cm9jZXNzKCk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKHN0cm9uZ1RoaXMt
PmlzUGVyc2lzdGVudCgpLCBQcm9jZXNzLCAiZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOiBG
YWlsZWQgZmlyc3QgYXR0ZW1wdCwgcmV0cnlpbmciKTsKKyAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoUHJvY2VzcywgImdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjogRmFp
bGVkIGZpcnN0IGF0dGVtcHQsIHJldHJ5aW5nIik7CiAgICAgICAgICAgICAgICAgICAgIHN0cm9u
Z1RoaXMtPm5ldHdvcmtQcm9jZXNzKCkuZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCp3ZWJQ
cm9jZXNzUHJveHksIFdURk1vdmUocmVwbHkpKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgcmVwbHkoeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJVUkxTY2hlbWVUYXNrUHJveHkuY3BwCmluZGV4IDk4
YzAxZGM2YzI0YWI4N2E5MzUwOTY2Njk2N2JiOTM5Zjk3ZDZjMDAuLjc1Nzk5YTBjNjVkMGNkYWZk
ZTZmMjY1YjFjNTQ3NTZiODRhMjA5ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlVSTFNjaGVtZVRhc2tQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViVVJMU2NoZW1lVGFza1Byb3h5LmNwcApAQCAtNDEsNyAr
NDEsNyBAQAogCiAjZGVmaW5lIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPR19TVEFO
REFSRF9URU1QTEFURSAiW3NjaGVtZUhhbmRsZXI9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQ
Ukl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1NjQgIiwgdGFza0lEPSVsdV0gV2ViVVJMU2NoZW1lVGFz
a1Byb3h5OjoiCiAjZGVmaW5lIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPR19TVEFO
REFSRF9QQVJBTUVURVJTIG1fdXJsU2NoZW1lSGFuZGxlci5pZGVudGlmaWVyKCksIHBhZ2VJREZy
b21XZWJGcmFtZShtX2ZyYW1lKSwgZnJhbWVJREZyb21XZWJGcmFtZShtX2ZyYW1lKSwgbV9pZGVu
dGlmaWVyCi0jZGVmaW5lIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPR19JRl9BTExP
V0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhOZXR3b3JrLCBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlf
UkVMRUFTRV9MT0dfU1RBTkRBUkRfVEVNUExBVEUgZm10LCBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlf
UkVMRUFTRV9MT0dfU1RBTkRBUkRfUEFSQU1FVEVSUywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
V0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0VfTE9HKGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhO
ZXR3b3JrLCBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlfUkVMRUFTRV9MT0dfU1RBTkRBUkRfVEVNUExB
VEUgZm10LCBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlfUkVMRUFTRV9MT0dfU1RBTkRBUkRfUEFSQU1F
VEVSUywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTc3LDE0ICs3NywxNCBAQCB2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94
eTo6c3RhcnRMb2FkaW5nKCkKIHsKICAgICBBU1NFUlQobV9jb3JlTG9hZGVyKTsKICAgICBBU1NF
UlQobV9mcmFtZSk7Ci0gICAgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0TG9hZGluZyIpOworICAgIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNF
X0xPRygic3RhcnRMb2FkaW5nIik7CiAgICAgbV91cmxTY2hlbWVIYW5kbGVyLnBhZ2UoKS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNr
UGFyYW1ldGVycyB7IG1fdXJsU2NoZW1lSGFuZGxlci5pZGVudGlmaWVyKCksIG1fY29yZUxvYWRl
ci0+aWRlbnRpZmllcigpLCBtX3JlcXVlc3QsIG1fZnJhbWUtPmluZm8oKSB9KSk7CiB9CiAKIHZv
aWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpzdG9wTG9hZGluZygpCiB7CiAgICAgQVNTRVJUKG1f
Y29yZUxvYWRlcik7Ci0gICAgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0b3BMb2FkaW5nIik7CisgICAgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0Vf
TE9HKCJzdG9wTG9hZGluZyIpOwogICAgIG1fdXJsU2NoZW1lSGFuZGxlci5wYWdlKCkuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wVVJMU2NoZW1lVGFzayhtX3VybFNjaGVtZUhhbmRs
ZXIuaWRlbnRpZmllcigpLCBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkpOwogICAgIG1fY29y
ZUxvYWRlciA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CkBAIC0xMDEsNyArMTAx
LDcgQEAgdm9pZCBXZWJVUkxTY2hlbWVUYXNrUHJveHk6OmRpZFBlcmZvcm1SZWRpcmVjdGlvbihX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmUKICAgICB9CiAKICAgICBpZiAobV93YWl0aW5n
Rm9yQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFBlcmZvcm1SZWRpcmVjdGlvbjogUmVjZWl2ZWQgcmVk
aXJlY3QgZHVyaW5nIHByZXZpb3VzIHJlZGlyZWN0IHByb2Nlc3NpbmcsIHF1ZXVpbmcgaXQuIik7
CisgICAgICAgIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPRygiZGlkUGVyZm9ybVJl
ZGlyZWN0aW9uOiBSZWNlaXZlZCByZWRpcmVjdCBkdXJpbmcgcHJldmlvdXMgcmVkaXJlY3QgcHJv
Y2Vzc2luZywgcXVldWluZyBpdC4iKTsKICAgICAgICAgcXVldWVUYXNrKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlZGlyZWN0UmVzcG9uc2UgPSBXVEZNb3ZlKHJlZGly
ZWN0UmVzcG9uc2UpLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGRpZFBlcmZvcm1SZWRpcmVjdGlvbihXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIH0pOwpAQCAt
MTIzLDcgKzEyMyw3IEBAIHZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRQZXJmb3JtUmVk
aXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlCiB2b2lkIFdlYlVSTFNjaGVt
ZVRhc2tQcm94eTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIGlmIChtX3dhaXRpbmdGb3JDb21wbGV0aW9uSGFuZGxlcikgewotICAg
ICAgICBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBSZWNlaXZlZCByZXNwb25zZSBkdXJpbmcgcmVkaXJlY3QgcHJvY2Vzc2lu
ZywgcXVldWluZyBpdC4iKTsKKyAgICAgICAgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0Vf
TE9HKCJkaWRSZWNlaXZlUmVzcG9uc2U6IFJlY2VpdmVkIHJlc3BvbnNlIGR1cmluZyByZWRpcmVj
dCBwcm9jZXNzaW5nLCBxdWV1aW5nIGl0LiIpOwogICAgICAgICBxdWV1ZVRhc2soW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVzcG9uc2VdIHsKICAgICAgICAgICAgIGRp
ZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiAgICAgICAgIH0pOwpAQCAtMTQ2LDcgKzE0Niw3
IEBAIHZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNlaXZlRGF0YShzaXplX3Qgc2l6
ZSwgY29uc3QgdWludDhfdCogZGF0YSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fd2Fp
dGluZ0ZvckNvbXBsZXRpb25IYW5kbGVyKSB7Ci0gICAgICAgIFdFQlVSTFNDSEVNRVRBU0tQUk9Y
WV9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogUmVjZWl2ZWQgZGF0YSBk
dXJpbmcgcmVzcG9uc2UgcHJvY2Vzc2luZywgcXVldWluZyBpdC4iKTsKKyAgICAgICAgV0VCVVJM
U0NIRU1FVEFTS1BST1hZX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlRGF0YTogUmVjZWl2ZWQgZGF0
YSBkdXJpbmcgcmVzcG9uc2UgcHJvY2Vzc2luZywgcXVldWluZyBpdC4iKTsKICAgICAgICAgcXVl
dWVUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGRhdGFWZWN0b3Ig
PSBWZWN0b3IgeyBkYXRhLCBzaXplIH1dIHsKICAgICAgICAgICAgIGRpZFJlY2VpdmVEYXRhKGRh
dGFWZWN0b3Iuc2l6ZSgpLCBkYXRhVmVjdG9yLmRhdGEoKSk7CiAgICAgICAgIH0pOwpAQCAtMTYw
LDcgKzE2MCw3IEBAIHZvaWQgV2ViVVJMU2NoZW1lVGFza1Byb3h5OjpkaWRSZWNlaXZlRGF0YShz
aXplX3Qgc2l6ZSwgY29uc3QgdWludDhfdCogZGF0YSkKIAogdm9pZCBXZWJVUkxTY2hlbWVUYXNr
UHJveHk6OmRpZENvbXBsZXRlKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFdF
QlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRDb21wbGV0ZSIp
OworICAgIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPRygiZGlkQ29tcGxldGUiKTsK
ICAgICBpZiAoIWhhc0xvYWRlcigpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIwMCw0ICsyMDAs
NCBAQCB2b2lkIFdlYlVSTFNjaGVtZVRhc2tQcm94eTo6cHJvY2Vzc05leHRQZW5kaW5nVGFzaygp
CiAKICN1bmRlZiBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlfUkVMRUFTRV9MT0dfU1RBTkRBUkRfVEVN
UExBVEUKICN1bmRlZiBXRUJVUkxTQ0hFTUVUQVNLUFJPWFlfUkVMRUFTRV9MT0dfU1RBTkRBUkRf
UEFSQU1FVEVSUwotI3VuZGVmIFdFQlVSTFNDSEVNRVRBU0tQUk9YWV9SRUxFQVNFX0xPR19JRl9B
TExPV0VECisjdW5kZWYgV0VCVVJMU0NIRU1FVEFTS1BST1hZX1JFTEVBU0VfTE9HCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>