<?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>204854</bug_id>
          
          <creation_ts>2019-12-04 09:04:04 -0800</creation_ts>
          <short_desc>PageConfiguration::progressTrackerClient should use a smart pointer</short_desc>
          <delta_ts>2019-12-04 17:25:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595488</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 09:04:04 -0800</bug_when>
    <thetext>PageConfiguration::progressTrackerClient should use a smart pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595489</commentid>
    <comment_count>1</comment_count>
      <attachid>384814</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 09:04:56 -0800</bug_when>
    <thetext>Created attachment 384814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595493</commentid>
    <comment_count>2</comment_count>
      <attachid>384817</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 09:11:51 -0800</bug_when>
    <thetext>Created attachment 384817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595505</commentid>
    <comment_count>3</comment_count>
      <attachid>384821</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 09:49:56 -0800</bug_when>
    <thetext>Created attachment 384821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595531</commentid>
    <comment_count>4</comment_count>
      <attachid>384828</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 10:43:26 -0800</bug_when>
    <thetext>Created attachment 384828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595551</commentid>
    <comment_count>5</comment_count>
      <attachid>384832</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-04 12:22:28 -0800</bug_when>
    <thetext>Created attachment 384832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595653</commentid>
    <comment_count>6</comment_count>
      <attachid>384832</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 17:24:29 -0800</bug_when>
    <thetext>Comment on attachment 384832
Patch

Clearing flags on attachment: 384832

Committed r253135: &lt;https://trac.webkit.org/changeset/253135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595654</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 17:24:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595656</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-04 17:25:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/57648475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384814</attachid>
            <date>2019-12-04 09:04:56 -0800</date>
            <delta_ts>2019-12-04 09:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204854-20191204090438.patch</filename>
            <type>text/plain</type>
            <size>34856</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4OWQ1MDRiM2UzZjQ2
ZWM2YmM4OTkxNzRiMmY5ZmY3ZTUyYjg5Yi4uYmYxZjZjOWM4MGI0MjdlMDAyNzAzM2VhYzdkZDVi
OWJhNDUxNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246
OnByb2dyZXNzVHJhY2tlckNsaWVudCBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5
Q2xpZW50cyk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OlByb2dyZXNzVHJhY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyOjp+UHJvZ3Jlc3NUcmFja2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDE5LTEy
LTAzICBEb3VnIEtlbGx5ICA8ZG91Z2tAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiB3
aGVuIGVuY291bnRlcmluZyBVX09USEVSX05FVVRSQUwgaW4gY3JlYXRlQmlkaVJ1bnNGb3JMaW5l
IGF0IGVuZCBvZiBydW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4NzljN2I4ZGJjMTMyYWIzNzEyMTc1NzU3Y2Nh
OTE1YWY5ZmMxNC4uNjNlOGI0MWIzOWFmYzNiMWY0ZWM5ZDg3YjlmYTE2NDc0ZGEwYzE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJD
bGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSAzIHNlY29uZCB0aW1lb3V0IGZvciB0
aGUgdmlldyBnZXN0dXJlIHNuYXBzaG90IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDFlYzViMmRkNWY4OTE5M2ZhZmYzNWRmYjg1OWFmZGI2MmI2ZjEwNmYuLjE2NzczNGY4YzEyZTM0
N2ZmMDE3N2MwZDk2NjBjYWM2YTJiZmY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHNob3VsZCB1
c2UgYSBzbWFydCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE5LTEyLTAyICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtBcHBsZVdpbl0gV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy5kbGwgaXNuJ3QgY29tcGlsZWQgc2luY2UgcjI0ODQ0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgxN2Q5NjlkMTEwNDZiZWI2N2U1Njg3MzQ4
YTY3YjNkMzQ5ODQ5M2QuLjQxMjY0NzNjMzdmNDIwMmY0ZmFiZjBiMTVmMmI2ODdkNDIwYTNlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0w
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1
cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50Ojpwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBp
bml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFt
ZTpdKToKKwogMjAxOS0xMi0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIG1lZGlhIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2Zi
ZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjkuLjFiMWJhMzgwNGQ5ODRhY2YzMTVjODlkZGUxOTExMmVl
ZTE0Yzg1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBh
Z2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTktMTItMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgV2ViIEFu
aW1hdGlvbnMgY29tcG9zaXRlIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggNWNlOWUxMWVjMGI2NjA1N2M1N2JkMzhkYjk1NmY0MGU3M2M5OGU2MC4u
NjAwZWY3YjZiYWM4NmNhNmY0YzE1YTFmY2YwNjE4OWFkOTg1OTM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1Myw3ICs1NTMsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIENh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgYWRvcHRSZWYoKm5ldyBFbXB0
eUJhY2tGb3J3YXJkQ2xpZW50KSwKLSAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYo
Km5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKQorICAgICAgICBDb29raWVKYXI6OmNy
ZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAorICAgICAg
ICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVD
bGllbnQ7CkBAIC01ODAsOSArNTgxLDYgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRl
ckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOwotCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAyODE3YTc2NjY0NTdiMjM5NzNh
NjhmY2Y3YmMwMTgwYzEyYmY1Y2QzLi5lMjRmZGVkMjIyNWYxYzE5MThmNDU0MDE3NTY2NzE3ZTIw
NDg0ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAt
NzcsMTYgKzc3LDEzIEBAIHB1YmxpYzoKIAogdW5zaWduZWQgbG9uZyBQcm9ncmVzc1RyYWNrZXI6
OnNfdW5pcXVlSWRlbnRpZmllciA9IDA7CiAKLVByb2dyZXNzVHJhY2tlcjo6UHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50
KQorUHJvZ3Jlc3NUcmFja2VyOjpQcm9ncmVzc1RyYWNrZXIoVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBjbGllbnQpCisgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVudCkpCiAg
ICAgLCBtX3Byb2dyZXNzSGVhcnRiZWF0VGltZXIoKnRoaXMsICZQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzSGVhcnRiZWF0VGltZXJGaXJlZCkKIHsKIH0KIAotUHJvZ3Jlc3NUcmFja2VyOjp+UHJv
Z3Jlc3NUcmFja2VyKCkKLXsKLSAgICBtX2NsaWVudC5wcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQo
KTsKLX0KK1Byb2dyZXNzVHJhY2tlcjo6flByb2dyZXNzVHJhY2tlcigpID0gZGVmYXVsdDsKIAog
ZG91YmxlIFByb2dyZXNzVHJhY2tlcjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewpAQCAt
MTE3LDcgKzExNCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIGZyYW1lKQogewogICAgIExPRyhQcm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAt
IGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRp
bmcgZnJhbWUgJXAiLCB0aGlzLCAmZnJhbWUsIGZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tl
ZEZyYW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOwogCi0gICAgbV9jbGll
bnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgaWYgKCFtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyB8fCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSA9PSAmZnJhbWUpIHsKICAgICAgICAg
cmVzZXQoKTsKQEAgLTEzMywxMyArMTMwLDEzIEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9n
cmVzc1N0YXJ0ZWQoRnJhbWUmIGZyYW1lKQogICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJm
cmFtZVBhcnRPZk1haW5Mb2FkVGhyZXNob2xkID0gMV9zOwogICAgICAgICBtX2lzTWFpbkxvYWQg
PSBpc01haW5GcmFtZSB8fCBlbGFwc2VkVGltZVNpbmNlTWFpbkxvYWRDb21wbGV0ZSA8IHN1YmZy
YW1lUGFydE9mTWFpbkxvYWRUaHJlc2hvbGQ7CiAKLSAgICAgICAgbV9jbGllbnQucHJvZ3Jlc3NT
dGFydGVkKCptX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7CisgICAgICAgIG1fY2xpZW50LT5w
cm9ncmVzc1N0YXJ0ZWQoKm1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKICAgICB9CiAgICAg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInByb2dyZXNzU3RhcnRlZDogZnJhbWUgJXAsIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAl
ZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAsIGlzTWFpbkxvYWQgJWQiLCAmZnJhbWUsIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpLCBtX2lzTWFpbkxvYWQpOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmco
ZnJhbWUpOwogfQogCkBAIC0xNTEsMTMgKzE0OCwxMyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6
cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX251bVByb2dyZXNzVHJh
Y2tlZEZyYW1lcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCk7CiAKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcy0tOwogICAgIGlm
ICghbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgfHwgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJh
bWUgPT0gJmZyYW1lKQogICAgICAgICBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5h
bFByb2dyZXNzQ29tcGxldGUoKQpAQCAtMTcxLDcgKzE2OCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFj
a2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgIC8vIHdpdGggZmluYWwgcHJvZ3Jlc3Mg
dmFsdWUuCiAgICAgaWYgKCFtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCkgewogICAgICAgICBt
X3Byb2dyZXNzVmFsdWUgPSAxOwotICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZCgqZnJhbWUpOworICAgICAgICBtX2NsaWVudC0+cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQo
KmZyYW1lKTsKICAgICB9CiAKICAgICByZXNldCgpOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgICAgICBtX21haW5M
b2FkQ29tcGxldGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5zZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KHRydWUpOwotICAgIG1f
Y2xpZW50LnByb2dyZXNzRmluaXNoZWQoKmZyYW1lKTsKKyAgICBtX2NsaWVudC0+cHJvZ3Jlc3NG
aW5pc2hlZCgqZnJhbWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkUHJvZ3Jlc3NpbmdTdGF0
dXNDaGFuZ2VkKCk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBl
ZExvYWRpbmcoKmZyYW1lKTsKQEAgLTIxOSw3ICsyMTYsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCB1bnNpZ25lZCBi
eXRlcwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lOwogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAg
bV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgZG91YmxlIGlu
Y3JlbWVudCwgcGVyY2VudE9mUmVtYWluaW5nQnl0ZXM7CiAgICAgbG9uZyBsb25nIHJlbWFpbmlu
Z0J5dGVzLCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0czsKQEAgLTI1OSwxNCArMjU2
LDE0IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIHVuc2lnbmVkIGJ5dGVzCiAgICAgICAgICAgICBpZiAobV9wcm9ncmVz
c1ZhbHVlID09IDEpCiAgICAgICAgICAgICAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQg
PSB0cnVlOwogCi0gICAgICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hhbmdlZCgq
ZnJhbWUpOworICAgICAgICAgICAgbV9jbGllbnQtPnByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKCpm
cmFtZSk7CiAKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NWYWx1ZSA9IG1fcHJv
Z3Jlc3NWYWx1ZTsKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NUaW1lID0gbm93
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCmluZGV4IDQ0
NTQwNTFhZGQ5OGU1MjgxMThlNTgyYWY5OTRkNjgxNDMwMjVjYTEuLjQzM2M4ZDliMzc4MTNiZjVi
NWQwNjAzNTQxMjM5YjI1YmQ2N2EyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyLmgKQEAgLTM5LDExICszOSwxNCBAQCBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CiBzdHJ1Y3QgUHJvZ3Jlc3NJdGVtOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYpOworICAgIGV4cGxpY2l0IFByb2dyZXNzVHJhY2tl
cihVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmKTsKICAgICB+UHJvZ3Jlc3NUcmFj
a2VyKCk7CiAKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50LmdldCgpOyB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBsb25nIHNfdW5pcXVlSWRlbnRpZmllcjsKIAotICAgIFByb2dyZXNzVHJhY2tlckNsaWVu
dCYgbV9jbGllbnQ7CisgICAgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPEZyYW1lPiBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc0l0ZW0+PiBtX3By
b2dyZXNzSXRlbXM7CiAgICAgVGltZXIgbV9wcm9ncmVzc0hlYXJ0YmVhdFRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IDMwZGUyNjU0
NjNiNDBjOGY5YjRiYzA1ZTM1NzhkYzllNmQ3MTIyMWQuLjM2MmZjYzQ4ODIxMzk0OTQxM2JiNjkw
NjBjOGVhMTJiNDg2NzlkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgKQEAgLTMwLDExICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZyYW1lOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgflByb2dyZXNzVHJhY2tlckNsaWVudCgpID0gZGVmYXVsdDsKLQorICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVz
c1RyYWNrZXJEZXN0cm95ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5Qcm9ncmVzc1RyYWNrZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjBiNWZiYjYyNDAwMjQ5MTMyYzliMDQ5MDg2
YTkzMTNmMjgxNmM2Li43ZjBlMDBkZDI4ZGQ5ZjlhMTQwNDA2NzY0NmY0NjA1YTkyNGNlNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJv
bGxlcihtYWtlVW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KG1ha2VVbmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKKyAgICAsIG1fcHJvZ3Jlc3MobWFrZVVuaXF1ZTxQcm9ncmVzc1RyYWNr
ZXI+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihtYWtlVW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQp
KSkKICAgICAsIG1fbWFpbkZyYW1lKEZyYW1lOjpjcmVhdGUodGhpcywgbnVsbHB0ciwgcGFnZUNv
bmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIG1fZWRpdG9yQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMmQzM2Q3NjMxOTNmNGYxNWYwODFk
OWI0OWE4ZmFhOTZiNTJkMzliNS4uYTY5OGRhZTYyN2VkYjdlN2ZjOWM3MDVmMjMwNmM5YjU2NTM4
NjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MSwxMSArNTIsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphcikKK1BhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVK
YXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dy
ZXNzVHJhY2tlckNsaWVudCkKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0
b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RG
TW92ZShzb2NrZXRQcm92aWRlcikpCiAgICAgLCBsaWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKGxp
YldlYlJUQ1Byb3ZpZGVyKSkKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChXVEZNb3ZlKHBy
b2dyZXNzVHJhY2tlckNsaWVudCkpCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA2MDZkNjM4YmM4OWMx
M2VjNWQwZGI4Yjc4NWRlYzU4NjU0NjYyZTYxLi4wOTI4YzNjZTI2MjUxODgxZjQzMmExYzc4MmIy
NjBjYjU2MTgxOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBA
IC02OCw3ICs2OCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1
cmF0aW9uJiYpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+IGxpYldlYlJUQ1Byb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsdWdJbkNsaWVudD4gcGx1Z0luQ2xpZW50OwotICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsgbnVsbHB0ciB9OworICAgIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+IHByb2dyZXNzVHJhY2tlckNsaWVudDsKICAgICBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgIFJlZjxDb29raWVKYXI+IGNvb2tpZUph
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcApp
bmRleCBhZjkyYjZkMjE2MjAzNTBiYzczYzQ0MTdkYjhlMWE3YzczMmNkMjU1Li5iODI3N2E2Y2Q5
ZTM5ODc3YmZkNmFlYmFkMmY4NWMxNGU5YzQ2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmNwcApAQCAtMzksMTIgKzM5LDcgQEAgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OjpXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1f
d2ViUGFnZSh3ZWJQYWdlKQogewogfQotICAgIAotdm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0g
ICAgCisKIHZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKIHsKICAgICBpZiAoIW9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZS5pc01haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVu
dC5oCmluZGV4IDYzZDc3NGU1YTk0MjdjNzM1YjUyNDkwYmQwMWNkNzlhYjc0YTEwZTkuLjExNDgy
ZWVhN2E3Yjk0MjU1NGRlNWE0MjdhZjYyMzY1MWYyNjViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChXZWJQYWdlJik7CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIHBy
b2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
JiBvcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZ3Jlc3NG
aW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmVmOGU0NWQyODVmYWVhNGJhMDFlNjlkNDQwOTM0ZjIyNjljNDYzYi4uMzVjZGY0OTM3MmE0MWQz
OTg0NGExOWM0ZGU3MmYwYzkwNjNmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcj4o
KSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhpcyksCi0gICAg
ICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkKKyAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC00NjUsNyAr
NDY2LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cGx1Z0luQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQbHVnSW5DbGllbnQ+KCp0aGlzKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50
ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ+KCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNWZhMGU3Njhh
NzgyMDQyZTQ3MjdlZDQ4YjBlYjZmMjEwNzg5ZGU2Zi4uMTMzOGM4NTIzOGRlMTVhZWFmOTk0Mzk3
NDkyYmRjOGNjNzJhNTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCkBA
IC0yMzEsNiArMjMxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVNfV2ViQ29y
ZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
ICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAogICAgIHdp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorICAgIHdpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCisgICAgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRM
aW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAppbmRleCBjMzhi
NDYwNjc0YzQxNzk0MDNmOWI3ZDEyZDgyNDFhOTJmOTk4MzFkLi4yMzExZTM5YWZjZmZkNGQ0N2Y0
ZGU4YjM1NWUyZDI5YmQ1MmJkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHByb2dyZXNzVHJhY2tl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50Lm1tCmluZGV4IGUyMzc0NzNhYWIzOWQ2NzJkYzA5MGNlZTkwNTk5OTMw
ZWI4MDUzOGYuLmNjMzhlZjE2MWU3NTNkNTE5MTY0ZmVkMzBkZDU4NzY1MTgwOGJmMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0KQEAgLTM5LDExICszOSw2IEBAIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudDo6V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiB2b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6d2lsbENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiZGRkZmU0OTA4Njk3NjQ0YWQxZjU5MWU3NDUzZDhmNTQ5OTA0NjQ5Li42
NTEyZjBjYzhhYmU0NDEwN2Y5MTE0MzkwNjA4YjkxMTM3MTIxODU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAtICh2
b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVO
YW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCi0gICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKICAg
ICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDYwLDcgKzE0NjEs
NiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5n
ICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ+
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJndlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRl
ciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0
b24oKTsKQEAgLTE3MDYsNyArMTcwNiw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKLSAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSkKKyAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTcxOSw3ICsxNzIwLDYgQEAgLSAoaWQpaW5pdFNpbXBsZUhU
TUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1l
IHByZWYKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
YXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+
Z3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGI1ODdjZjkxNWIxNDIwZGZjZDkzOGE2ZDU5MmM4OGFlMTlhZDhkZDUuLmVl
YWU3NDE2Y2RjOTNmMjZmYjMxMjQwMDg2OWIyM2MwNDczZjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTY0MywyNyArNjQzLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUUKICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0g
ICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZp
ZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOwotICAgIElXZWJOb3RpZmljYXRpb25DZW50
ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlcklu
dGVybmFsKCk7Ci0gICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVz
c1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXco
KSksIDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0gICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NFc3Rp
bWF0ZUNoYW5nZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRXN0aW1hdGVD
aGFuZ2VkTm90aWZpY2F0aW9uKTsKLSAgICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlD
ZW50ZXIgPSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwot
ICAgIG5vdGlmeUNlbnRlci0+cG9zdE5vdGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NFc3RpbWF0ZUNo
YW5nZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSks
IDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0ZpbmlzaGVkKFdl
YkNvcmU6OkZyYW1lJikKLXsKLSAgICBzdGF0aWMgQlNUUiBwcm9ncmVzc0ZpbmlzaGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKTsKLSAg
ICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlDZW50ZXIgPSBXZWJOb3RpZmljYXRpb25D
ZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwotICAgIG5vdGlmeUNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NGaW5pc2hlZE5hbWUsIHN0YXRpY19jYXN0PElXZWJWaWV3
Kj4obV93ZWJGcmFtZS0+d2ViVmlldygpKSwgMCk7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIC8qIHN1Z2dlc3RlZE5hbWUgKi8pCiB7CiAgICAgbV93ZWJGcmFtZS0+d2ViVmll
dygpLT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDY3NmE4ZDYxYzUzODkwYjk5YTRlNDQ3NzgwZTVmYWQwYzkyOTI2ODEuLmNjODY5MzIx
MWJkYjQ5OTg2MzZhNjMzNzEyZDA4NTNiYmEwNWM3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXI7CiBjbGFzcyBXZWJIaXN0b3J5OwogCi1jbGFzcyBXZWJGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6
OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2Vi
RnJhbWUqID0gbnVsbHB0cik7CiAgICAgfldlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKICAgICB2
b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJh
bWU7IH0KQEAgLTEyMCwxMCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25s
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcHJvZ3Jlc3NTdGFydGVk
KFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvZ3Jlc3NGaW5pc2hl
ZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWExMmE5
MTAxYWY0N2ViMDc5ZTdjYzcyYjVmZmJkZDA2ZjVkOGQzYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRl
ci5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKwordm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCit7CisgICAgc3RhdGljIEJTVFIg
cHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc1N0YXJ0
ZWROb3RpZmljYXRpb24pOworICAgIElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRl
ciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAg
bm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVzc1N0YXJ0ZWROYW1lLCBz
dGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSksIDApOworfQorCit2
b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWUmKQoreworICAgIHN0YXRpYyBCU1RSIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
TmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlm
aWNhdGlvbik7CisgICAgSVdlYk5vdGlmaWNhdGlvbkNlbnRlciogbm90aWZ5Q2VudGVyID0gV2Vi
Tm90aWZpY2F0aW9uQ2VudGVyOjpkZWZhdWx0Q2VudGVySW50ZXJuYWwoKTsKKyAgICBub3RpZnlD
ZW50ZXItPnBvc3ROb3RpZmljYXRpb25OYW1lKHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSwg
c3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KKwor
dm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6
RnJhbWUmKQoreworICAgIHN0YXRpYyBCU1RSIHByb2dyZXNzRmluaXNoZWROYW1lID0gU3lzQWxs
b2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24pOworICAgIElXZWJO
b3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6
ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0
aW9uTmFtZShwcm9ncmVzc0ZpbmlzaGVkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dl
YkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTRkYzgyNDg0YzRiMjM1Njg4NTU3NDJmODk1OTRhZTA5ZDQ3NjIzMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEZyYW1lOworfQorCitjbGFzcyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2b2lkIHByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAg
IHZvaWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAg
ICB2b2lkIHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdlYzRmZjExYTY5MjRkNjBmZGE0OGJjODIy
NzQzZjkzZTE0M2NkMjMuLjc3ZjdjNjRiY2I3ODc0NjQyMjdmMTI0YTQ2Y2EzY2YwMDBhNmM1YzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0zMTE5LDcgKzMxMTksOCBAQCBI
UkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1l
TmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBtYWtlVW5pcXVlUmVmPExpYldlYlJUQ1By
b3ZpZGVyPigpLAogICAgICAgICBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRl
KCksCiAgICAgICAgIEJhY2tGb3J3YXJkTGlzdDo6Y3JlYXRlKCksCi0gICAgICAgIENvb2tpZUph
cjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAgIENvb2tpZUphcjo6
Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKQogICAgICk7CiAgICAgY29uZmlndXJhdGlvbi5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xpZW50KHRoaXMpOwogICAgIGNvbmZpZ3VyYXRp
b24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2ViQ29udGV4dE1lbnVDbGllbnQodGhpcyk7CkBA
IC0zMTI5LDcgKzMxMzAsNiBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBm
cmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgIGNvbmZpZ3Vy
YXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2UgPSAmV2ViQXBwbGljYXRpb25DYWNoZTo6c3Rv
cmFnZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRlciA9ICZXZWJEYXRhYmFz
ZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBjb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlciA9ICZtX3dlYlZpZXdHcm91cC0+c3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCk7
Ci0gICAgY29uZmlndXJhdGlvbi5wcm9ncmVzc1RyYWNrZXJDbGllbnQgPSBzdGF0aWNfY2FzdDxX
ZWJGcmFtZUxvYWRlckNsaWVudCo+KGNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZy
YW1lKTsKICAgICBjb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIgPSAmbV93ZWJWaWV3
R3JvdXAtPnVzZXJDb250ZW50Q29udHJvbGxlcigpOwogICAgIGNvbmZpZ3VyYXRpb24udmlzaXRl
ZExpbmtTdG9yZSA9ICZtX3dlYlZpZXdHcm91cC0+dmlzaXRlZExpbmtTdG9yZSgpOwogICAgIGNv
bmZpZ3VyYXRpb24ucGx1Z2luSW5mb1Byb3ZpZGVyID0gJldlYlBsdWdpbkluZm9Qcm92aWRlcjo6
c2luZ2xldG9uKCk7CkBAIC0zMTQ5LDYgKzMxNDksNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3Vw
TgogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpjcmVhdGVJbnN0YW5jZSgpOwog
ICAgIHdlYkZyYW1lLT5pbml0V2l0aFdlYlZpZXcodGhpcywgbV9wYWdlKTsKICAgICBzdGF0aWNf
Y2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCY+KG1fcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCku
Y2xpZW50KCkpLnNldFdlYkZyYW1lKHdlYkZyYW1lKTsKKyAgICBzdGF0aWNfY2FzdDxXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQmPihtX3BhZ2UtPnByb2dyZXNzKCkuY2xpZW50KCkpLnNldFdlYkZy
YW1lKHdlYkZyYW1lKTsKICAgICBtX21haW5GcmFtZSA9IHdlYkZyYW1lOwogICAgIHdlYkZyYW1l
LT5SZWxlYXNlKCk7IC8vIFRoZSBXZWJGcmFtZSBpcyBvd25lZCBieSB0aGUgRnJhbWUsIHNvIHJl
bGVhc2Ugb3VyIHJlZmVyZW5jZSB0byBpdC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384817</attachid>
            <date>2019-12-04 09:11:51 -0800</date>
            <delta_ts>2019-12-04 09:49:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204854-20191204091132.patch</filename>
            <type>text/plain</type>
            <size>35124</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4OWQ1MDRiM2UzZjQ2
ZWM2YmM4OTkxNzRiMmY5ZmY3ZTUyYjg5Yi4uYmYxZjZjOWM4MGI0MjdlMDAyNzAzM2VhYzdkZDVi
OWJhNDUxNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246
OnByb2dyZXNzVHJhY2tlckNsaWVudCBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5
Q2xpZW50cyk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OlByb2dyZXNzVHJhY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyOjp+UHJvZ3Jlc3NUcmFja2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDE5LTEy
LTAzICBEb3VnIEtlbGx5ICA8ZG91Z2tAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiB3
aGVuIGVuY291bnRlcmluZyBVX09USEVSX05FVVRSQUwgaW4gY3JlYXRlQmlkaVJ1bnNGb3JMaW5l
IGF0IGVuZCBvZiBydW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4NzljN2I4ZGJjMTMyYWIzNzEyMTc1NzU3Y2Nh
OTE1YWY5ZmMxNC4uNjNlOGI0MWIzOWFmYzNiMWY0ZWM5ZDg3YjlmYTE2NDc0ZGEwYzE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJD
bGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSAzIHNlY29uZCB0aW1lb3V0IGZvciB0
aGUgdmlldyBnZXN0dXJlIHNuYXBzaG90IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDFlYzViMmRkNWY4OTE5M2ZhZmYzNWRmYjg1OWFmZGI2MmI2ZjEwNmYuLjE2NzczNGY4YzEyZTM0
N2ZmMDE3N2MwZDk2NjBjYWM2YTJiZmY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHNob3VsZCB1
c2UgYSBzbWFydCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE5LTEyLTAyICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtBcHBsZVdpbl0gV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy5kbGwgaXNuJ3QgY29tcGlsZWQgc2luY2UgcjI0ODQ0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgxN2Q5NjlkMTEwNDZiZWI2N2U1Njg3MzQ4
YTY3YjNkMzQ5ODQ5M2QuLjQxMjY0NzNjMzdmNDIwMmY0ZmFiZjBiMTVmMmI2ODdkNDIwYTNlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0w
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1
cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50Ojpwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBp
bml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFt
ZTpdKToKKwogMjAxOS0xMi0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIG1lZGlhIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2Zi
ZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjkuLjFiMWJhMzgwNGQ5ODRhY2YzMTVjODlkZGUxOTExMmVl
ZTE0Yzg1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBh
Z2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTktMTItMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgV2ViIEFu
aW1hdGlvbnMgY29tcG9zaXRlIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggNWNlOWUxMWVjMGI2NjA1N2M1N2JkMzhkYjk1NmY0MGU3M2M5OGU2MC4u
NjAwZWY3YjZiYWM4NmNhNmY0YzE1YTFmY2YwNjE4OWFkOTg1OTM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1Myw3ICs1NTMsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIENh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgYWRvcHRSZWYoKm5ldyBFbXB0
eUJhY2tGb3J3YXJkQ2xpZW50KSwKLSAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYo
Km5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKQorICAgICAgICBDb29raWVKYXI6OmNy
ZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAorICAgICAg
ICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVD
bGllbnQ7CkBAIC01ODAsOSArNTgxLDYgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRl
ckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOwotCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAyODE3YTc2NjY0NTdiMjM5NzNh
NjhmY2Y3YmMwMTgwYzEyYmY1Y2QzLi5lMjRmZGVkMjIyNWYxYzE5MThmNDU0MDE3NTY2NzE3ZTIw
NDg0ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAt
NzcsMTYgKzc3LDEzIEBAIHB1YmxpYzoKIAogdW5zaWduZWQgbG9uZyBQcm9ncmVzc1RyYWNrZXI6
OnNfdW5pcXVlSWRlbnRpZmllciA9IDA7CiAKLVByb2dyZXNzVHJhY2tlcjo6UHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50
KQorUHJvZ3Jlc3NUcmFja2VyOjpQcm9ncmVzc1RyYWNrZXIoVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBjbGllbnQpCisgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVudCkpCiAg
ICAgLCBtX3Byb2dyZXNzSGVhcnRiZWF0VGltZXIoKnRoaXMsICZQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzSGVhcnRiZWF0VGltZXJGaXJlZCkKIHsKIH0KIAotUHJvZ3Jlc3NUcmFja2VyOjp+UHJv
Z3Jlc3NUcmFja2VyKCkKLXsKLSAgICBtX2NsaWVudC5wcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQo
KTsKLX0KK1Byb2dyZXNzVHJhY2tlcjo6flByb2dyZXNzVHJhY2tlcigpID0gZGVmYXVsdDsKIAog
ZG91YmxlIFByb2dyZXNzVHJhY2tlcjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewpAQCAt
MTE3LDcgKzExNCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIGZyYW1lKQogewogICAgIExPRyhQcm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAt
IGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRp
bmcgZnJhbWUgJXAiLCB0aGlzLCAmZnJhbWUsIGZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tl
ZEZyYW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOwogCi0gICAgbV9jbGll
bnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgaWYgKCFtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyB8fCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSA9PSAmZnJhbWUpIHsKICAgICAgICAg
cmVzZXQoKTsKQEAgLTEzMywxMyArMTMwLDEzIEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9n
cmVzc1N0YXJ0ZWQoRnJhbWUmIGZyYW1lKQogICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJm
cmFtZVBhcnRPZk1haW5Mb2FkVGhyZXNob2xkID0gMV9zOwogICAgICAgICBtX2lzTWFpbkxvYWQg
PSBpc01haW5GcmFtZSB8fCBlbGFwc2VkVGltZVNpbmNlTWFpbkxvYWRDb21wbGV0ZSA8IHN1YmZy
YW1lUGFydE9mTWFpbkxvYWRUaHJlc2hvbGQ7CiAKLSAgICAgICAgbV9jbGllbnQucHJvZ3Jlc3NT
dGFydGVkKCptX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7CisgICAgICAgIG1fY2xpZW50LT5w
cm9ncmVzc1N0YXJ0ZWQoKm1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKICAgICB9CiAgICAg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInByb2dyZXNzU3RhcnRlZDogZnJhbWUgJXAsIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAl
ZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAsIGlzTWFpbkxvYWQgJWQiLCAmZnJhbWUsIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpLCBtX2lzTWFpbkxvYWQpOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmco
ZnJhbWUpOwogfQogCkBAIC0xNTEsMTMgKzE0OCwxMyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6
cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX251bVByb2dyZXNzVHJh
Y2tlZEZyYW1lcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCk7CiAKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcy0tOwogICAgIGlm
ICghbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgfHwgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJh
bWUgPT0gJmZyYW1lKQogICAgICAgICBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5h
bFByb2dyZXNzQ29tcGxldGUoKQpAQCAtMTcxLDcgKzE2OCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFj
a2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgIC8vIHdpdGggZmluYWwgcHJvZ3Jlc3Mg
dmFsdWUuCiAgICAgaWYgKCFtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCkgewogICAgICAgICBt
X3Byb2dyZXNzVmFsdWUgPSAxOwotICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZCgqZnJhbWUpOworICAgICAgICBtX2NsaWVudC0+cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQo
KmZyYW1lKTsKICAgICB9CiAKICAgICByZXNldCgpOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgICAgICBtX21haW5M
b2FkQ29tcGxldGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5zZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KHRydWUpOwotICAgIG1f
Y2xpZW50LnByb2dyZXNzRmluaXNoZWQoKmZyYW1lKTsKKyAgICBtX2NsaWVudC0+cHJvZ3Jlc3NG
aW5pc2hlZCgqZnJhbWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkUHJvZ3Jlc3NpbmdTdGF0
dXNDaGFuZ2VkKCk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBl
ZExvYWRpbmcoKmZyYW1lKTsKQEAgLTIxOSw3ICsyMTYsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCB1bnNpZ25lZCBi
eXRlcwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lOwogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAg
bV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgZG91YmxlIGlu
Y3JlbWVudCwgcGVyY2VudE9mUmVtYWluaW5nQnl0ZXM7CiAgICAgbG9uZyBsb25nIHJlbWFpbmlu
Z0J5dGVzLCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0czsKQEAgLTI1OSwxNCArMjU2
LDE0IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIHVuc2lnbmVkIGJ5dGVzCiAgICAgICAgICAgICBpZiAobV9wcm9ncmVz
c1ZhbHVlID09IDEpCiAgICAgICAgICAgICAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQg
PSB0cnVlOwogCi0gICAgICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hhbmdlZCgq
ZnJhbWUpOworICAgICAgICAgICAgbV9jbGllbnQtPnByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKCpm
cmFtZSk7CiAKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NWYWx1ZSA9IG1fcHJv
Z3Jlc3NWYWx1ZTsKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NUaW1lID0gbm93
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCmluZGV4IDQ0
NTQwNTFhZGQ5OGU1MjgxMThlNTgyYWY5OTRkNjgxNDMwMjVjYTEuLjQzM2M4ZDliMzc4MTNiZjVi
NWQwNjAzNTQxMjM5YjI1YmQ2N2EyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyLmgKQEAgLTM5LDExICszOSwxNCBAQCBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CiBzdHJ1Y3QgUHJvZ3Jlc3NJdGVtOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYpOworICAgIGV4cGxpY2l0IFByb2dyZXNzVHJhY2tl
cihVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmKTsKICAgICB+UHJvZ3Jlc3NUcmFj
a2VyKCk7CiAKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50LmdldCgpOyB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBsb25nIHNfdW5pcXVlSWRlbnRpZmllcjsKIAotICAgIFByb2dyZXNzVHJhY2tlckNsaWVu
dCYgbV9jbGllbnQ7CisgICAgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPEZyYW1lPiBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc0l0ZW0+PiBtX3By
b2dyZXNzSXRlbXM7CiAgICAgVGltZXIgbV9wcm9ncmVzc0hlYXJ0YmVhdFRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IDMwZGUyNjU0
NjNiNDBjOGY5YjRiYzA1ZTM1NzhkYzllNmQ3MTIyMWQuLjM2MmZjYzQ4ODIxMzk0OTQxM2JiNjkw
NjBjOGVhMTJiNDg2NzlkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgKQEAgLTMwLDExICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZyYW1lOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgflByb2dyZXNzVHJhY2tlckNsaWVudCgpID0gZGVmYXVsdDsKLQorICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVz
c1RyYWNrZXJEZXN0cm95ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5Qcm9ncmVzc1RyYWNrZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjBiNWZiYjYyNDAwMjQ5MTMyYzliMDQ5MDg2
YTkzMTNmMjgxNmM2Li43ZjBlMDBkZDI4ZGQ5ZjlhMTQwNDA2NzY0NmY0NjA1YTkyNGNlNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJv
bGxlcihtYWtlVW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KG1ha2VVbmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKKyAgICAsIG1fcHJvZ3Jlc3MobWFrZVVuaXF1ZTxQcm9ncmVzc1RyYWNr
ZXI+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihtYWtlVW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQp
KSkKICAgICAsIG1fbWFpbkZyYW1lKEZyYW1lOjpjcmVhdGUodGhpcywgbnVsbHB0ciwgcGFnZUNv
bmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIG1fZWRpdG9yQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMmQzM2Q3NjMxOTNmNGYxNWYwODFk
OWI0OWE4ZmFhOTZiNTJkMzliNS4uYTY5OGRhZTYyN2VkYjdlN2ZjOWM3MDVmMjMwNmM5YjU2NTM4
NjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MSwxMSArNTIsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphcikKK1BhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVK
YXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dy
ZXNzVHJhY2tlckNsaWVudCkKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0
b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RG
TW92ZShzb2NrZXRQcm92aWRlcikpCiAgICAgLCBsaWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKGxp
YldlYlJUQ1Byb3ZpZGVyKSkKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChXVEZNb3ZlKHBy
b2dyZXNzVHJhY2tlckNsaWVudCkpCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA2MDZkNjM4YmM4OWMx
M2VjNWQwZGI4Yjc4NWRlYzU4NjU0NjYyZTYxLi4wOTI4YzNjZTI2MjUxODgxZjQzMmExYzc4MmIy
NjBjYjU2MTgxOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBA
IC02OCw3ICs2OCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1
cmF0aW9uJiYpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+IGxpYldlYlJUQ1Byb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsdWdJbkNsaWVudD4gcGx1Z0luQ2xpZW50OwotICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsgbnVsbHB0ciB9OworICAgIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+IHByb2dyZXNzVHJhY2tlckNsaWVudDsKICAgICBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgIFJlZjxDb29raWVKYXI+IGNvb2tpZUph
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcApp
bmRleCBhZjkyYjZkMjE2MjAzNTBiYzczYzQ0MTdkYjhlMWE3YzczMmNkMjU1Li5iODI3N2E2Y2Q5
ZTM5ODc3YmZkNmFlYmFkMmY4NWMxNGU5YzQ2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmNwcApAQCAtMzksMTIgKzM5LDcgQEAgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OjpXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1f
d2ViUGFnZSh3ZWJQYWdlKQogewogfQotICAgIAotdm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0g
ICAgCisKIHZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKIHsKICAgICBpZiAoIW9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZS5pc01haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVu
dC5oCmluZGV4IDYzZDc3NGU1YTk0MjdjNzM1YjUyNDkwYmQwMWNkNzlhYjc0YTEwZTkuLjExNDgy
ZWVhN2E3Yjk0MjU1NGRlNWE0MjdhZjYyMzY1MWYyNjViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChXZWJQYWdlJik7CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIHBy
b2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
JiBvcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZ3Jlc3NG
aW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmVmOGU0NWQyODVmYWVhNGJhMDFlNjlkNDQwOTM0ZjIyNjljNDYzYi4uMzVjZGY0OTM3MmE0MWQz
OTg0NGExOWM0ZGU3MmYwYzkwNjNmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcj4o
KSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhpcyksCi0gICAg
ICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkKKyAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC00NjUsNyAr
NDY2LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cGx1Z0luQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQbHVnSW5DbGllbnQ+KCp0aGlzKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50
ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ+KCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNWZhMGU3Njhh
NzgyMDQyZTQ3MjdlZDQ4YjBlYjZmMjEwNzg5ZGU2Zi4uMTMzOGM4NTIzOGRlMTVhZWFmOTk0Mzk3
NDkyYmRjOGNjNzJhNTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCkBA
IC0yMzEsNiArMjMxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVNfV2ViQ29y
ZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
ICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAogICAgIHdp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorICAgIHdpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCisgICAgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRM
aW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAppbmRleCBjMzhi
NDYwNjc0YzQxNzk0MDNmOWI3ZDEyZDgyNDFhOTJmOTk4MzFkLi4yMzExZTM5YWZjZmZkNGQ0N2Y0
ZGU4YjM1NWUyZDI5YmQ1MmJkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHByb2dyZXNzVHJhY2tl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50Lm1tCmluZGV4IGUyMzc0NzNhYWIzOWQ2NzJkYzA5MGNlZTkwNTk5OTMw
ZWI4MDUzOGYuLmNjMzhlZjE2MWU3NTNkNTE5MTY0ZmVkMzBkZDU4NzY1MTgwOGJmMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0KQEAgLTM5LDExICszOSw2IEBAIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudDo6V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiB2b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6d2lsbENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiZGRkZmU0OTA4Njk3NjQ0YWQxZjU5MWU3NDUzZDhmNTQ5OTA0NjQ5Li42
NTEyZjBjYzhhYmU0NDEwN2Y5MTE0MzkwNjA4YjkxMTM3MTIxODU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAtICh2
b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVO
YW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCi0gICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKICAg
ICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDYwLDcgKzE0NjEs
NiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5n
ICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ+
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJndlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRl
ciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0
b24oKTsKQEAgLTE3MDYsNyArMTcwNiw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKLSAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSkKKyAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTcxOSw3ICsxNzIwLDYgQEAgLSAoaWQpaW5pdFNpbXBsZUhU
TUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1l
IHByZWYKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
YXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+
Z3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGI1ODdjZjkxNWIxNDIwZGZjZDkzOGE2ZDU5MmM4OGFlMTlhZDhkZDUuLmVl
YWU3NDE2Y2RjOTNmMjZmYjMxMjQwMDg2OWIyM2MwNDczZjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTY0MywyNyArNjQzLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUUKICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0g
ICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZp
ZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOwotICAgIElXZWJOb3RpZmljYXRpb25DZW50
ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlcklu
dGVybmFsKCk7Ci0gICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVz
c1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXco
KSksIDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0gICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NFc3Rp
bWF0ZUNoYW5nZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRXN0aW1hdGVD
aGFuZ2VkTm90aWZpY2F0aW9uKTsKLSAgICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlD
ZW50ZXIgPSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwot
ICAgIG5vdGlmeUNlbnRlci0+cG9zdE5vdGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NFc3RpbWF0ZUNo
YW5nZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSks
IDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0ZpbmlzaGVkKFdl
YkNvcmU6OkZyYW1lJikKLXsKLSAgICBzdGF0aWMgQlNUUiBwcm9ncmVzc0ZpbmlzaGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKTsKLSAg
ICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlDZW50ZXIgPSBXZWJOb3RpZmljYXRpb25D
ZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwotICAgIG5vdGlmeUNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NGaW5pc2hlZE5hbWUsIHN0YXRpY19jYXN0PElXZWJWaWV3
Kj4obV93ZWJGcmFtZS0+d2ViVmlldygpKSwgMCk7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIC8qIHN1Z2dlc3RlZE5hbWUgKi8pCiB7CiAgICAgbV93ZWJGcmFtZS0+d2ViVmll
dygpLT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDY3NmE4ZDYxYzUzODkwYjk5YTRlNDQ3NzgwZTVmYWQwYzkyOTI2ODEuLmNjODY5MzIx
MWJkYjQ5OTg2MzZhNjMzNzEyZDA4NTNiYmEwNWM3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXI7CiBjbGFzcyBXZWJIaXN0b3J5OwogCi1jbGFzcyBXZWJGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6
OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2Vi
RnJhbWUqID0gbnVsbHB0cik7CiAgICAgfldlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKICAgICB2
b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJh
bWU7IH0KQEAgLTEyMCwxMCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25s
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcHJvZ3Jlc3NTdGFydGVk
KFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvZ3Jlc3NGaW5pc2hl
ZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWExMmE5
MTAxYWY0N2ViMDc5ZTdjYzcyYjVmZmJkZDA2ZjVkOGQzYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKKworI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRl
ci5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKwordm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCit7CisgICAgc3RhdGljIEJTVFIg
cHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc1N0YXJ0
ZWROb3RpZmljYXRpb24pOworICAgIElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRl
ciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAg
bm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVzc1N0YXJ0ZWROYW1lLCBz
dGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSksIDApOworfQorCit2
b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWUmKQoreworICAgIHN0YXRpYyBCU1RSIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
TmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlm
aWNhdGlvbik7CisgICAgSVdlYk5vdGlmaWNhdGlvbkNlbnRlciogbm90aWZ5Q2VudGVyID0gV2Vi
Tm90aWZpY2F0aW9uQ2VudGVyOjpkZWZhdWx0Q2VudGVySW50ZXJuYWwoKTsKKyAgICBub3RpZnlD
ZW50ZXItPnBvc3ROb3RpZmljYXRpb25OYW1lKHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSwg
c3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KKwor
dm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6
RnJhbWUmKQoreworICAgIHN0YXRpYyBCU1RSIHByb2dyZXNzRmluaXNoZWROYW1lID0gU3lzQWxs
b2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24pOworICAgIElXZWJO
b3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6
ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0
aW9uTmFtZShwcm9ncmVzc0ZpbmlzaGVkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dl
YkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTRkYzgyNDg0YzRiMjM1Njg4NTU3NDJmODk1OTRhZTA5ZDQ3NjIzMwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIEZyYW1lOworfQorCitjbGFzcyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICB2b2lkIHByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAg
IHZvaWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAg
ICB2b2lkIHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdlYzRmZjExYTY5MjRkNjBmZGE0OGJjODIy
NzQzZjkzZTE0M2NkMjMuLjYwMTQ0ODE1YWVhODY5OWM5MWE4OWJkMWRmMTlhMGJjYTI4YWI2NGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5j
bHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCIKICNpbmNsdWRlICJXZWJTY3JpcHRXb3JsZC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5oIgpAQCAtMzExOSw3ICszMTIwLDggQEAgSFJFU1VMVCBXZWJWaWV3Ojpp
bml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBn
cm91cE4KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4oKSwKICAgICAg
ICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNr
Rm9yd2FyZExpc3Q6OmNyZWF0ZSgpLAotICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdl
UHJvdmlkZXIuY29weVJlZigpKQorICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJv
dmlkZXIuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ+KCkKICAgICApOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3
IFdlYkNocm9tZUNsaWVudCh0aGlzKTsKICAgICBjb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xp
ZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOwpAQCAtMzEyOSw3ICszMTMxLDYg
QEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBm
cmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICBjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlID0gJldlYkFwcGxpY2F0aW9uQ2FjaGU6OnN0b3JhZ2UoKTsKICAgICBjb25m
aWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSAmV2ViRGF0YWJhc2VQcm92aWRlcjo6c2luZ2xl
dG9uKCk7CiAgICAgY29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgPSAmbV93
ZWJWaWV3R3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwotICAgIGNvbmZpZ3VyYXRp
b24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGll
bnQqPihjb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSk7CiAgICAgY29uZmln
dXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gJm1fd2ViVmlld0dyb3VwLT51c2VyQ29udGVu
dENvbnRyb2xsZXIoKTsKICAgICBjb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSAmbV93
ZWJWaWV3R3JvdXAtPnZpc2l0ZWRMaW5rU3RvcmUoKTsKICAgICBjb25maWd1cmF0aW9uLnBsdWdp
bkluZm9Qcm92aWRlciA9ICZXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbigpOwpAQCAt
MzE0OSw2ICszMTUwLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJh
bWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICBXZWJGcmFtZSog
d2ViRnJhbWUgPSBXZWJGcmFtZTo6Y3JlYXRlSW5zdGFuY2UoKTsKICAgICB3ZWJGcmFtZS0+aW5p
dFdpdGhXZWJWaWV3KHRoaXMsIG1fcGFnZSk7CiAgICAgc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQmPihtX3BhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKS5zZXRXZWJG
cmFtZSh3ZWJGcmFtZSk7CisgICAgc3RhdGljX2Nhc3Q8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
Jj4obV9wYWdlLT5wcm9ncmVzcygpLmNsaWVudCgpKS5zZXRXZWJGcmFtZSh3ZWJGcmFtZSk7CiAg
ICAgbV9tYWluRnJhbWUgPSB3ZWJGcmFtZTsKICAgICB3ZWJGcmFtZS0+UmVsZWFzZSgpOyAvLyBU
aGUgV2ViRnJhbWUgaXMgb3duZWQgYnkgdGhlIEZyYW1lLCBzbyByZWxlYXNlIG91ciByZWZlcmVu
Y2UgdG8gaXQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384821</attachid>
            <date>2019-12-04 09:49:56 -0800</date>
            <delta_ts>2019-12-04 10:43:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204854-20191204094938.patch</filename>
            <type>text/plain</type>
            <size>35103</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4OWQ1MDRiM2UzZjQ2
ZWM2YmM4OTkxNzRiMmY5ZmY3ZTUyYjg5Yi4uYmYxZjZjOWM4MGI0MjdlMDAyNzAzM2VhYzdkZDVi
OWJhNDUxNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246
OnByb2dyZXNzVHJhY2tlckNsaWVudCBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5
Q2xpZW50cyk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OlByb2dyZXNzVHJhY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyOjp+UHJvZ3Jlc3NUcmFja2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDE5LTEy
LTAzICBEb3VnIEtlbGx5ICA8ZG91Z2tAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiB3
aGVuIGVuY291bnRlcmluZyBVX09USEVSX05FVVRSQUwgaW4gY3JlYXRlQmlkaVJ1bnNGb3JMaW5l
IGF0IGVuZCBvZiBydW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4NzljN2I4ZGJjMTMyYWIzNzEyMTc1NzU3Y2Nh
OTE1YWY5ZmMxNC4uNjNlOGI0MWIzOWFmYzNiMWY0ZWM5ZDg3YjlmYTE2NDc0ZGEwYzE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJD
bGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSAzIHNlY29uZCB0aW1lb3V0IGZvciB0
aGUgdmlldyBnZXN0dXJlIHNuYXBzaG90IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDFlYzViMmRkNWY4OTE5M2ZhZmYzNWRmYjg1OWFmZGI2MmI2ZjEwNmYuLjE2NzczNGY4YzEyZTM0
N2ZmMDE3N2MwZDk2NjBjYWM2YTJiZmY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHNob3VsZCB1
c2UgYSBzbWFydCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE5LTEyLTAyICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtBcHBsZVdpbl0gV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy5kbGwgaXNuJ3QgY29tcGlsZWQgc2luY2UgcjI0ODQ0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgxN2Q5NjlkMTEwNDZiZWI2N2U1Njg3MzQ4
YTY3YjNkMzQ5ODQ5M2QuLjQxMjY0NzNjMzdmNDIwMmY0ZmFiZjBiMTVmMmI2ODdkNDIwYTNlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0w
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1
cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50Ojpwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBp
bml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFt
ZTpdKToKKwogMjAxOS0xMi0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIG1lZGlhIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2Zi
ZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjkuLjFiMWJhMzgwNGQ5ODRhY2YzMTVjODlkZGUxOTExMmVl
ZTE0Yzg1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBh
Z2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTktMTItMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgV2ViIEFu
aW1hdGlvbnMgY29tcG9zaXRlIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggNWNlOWUxMWVjMGI2NjA1N2M1N2JkMzhkYjk1NmY0MGU3M2M5OGU2MC4u
NjAwZWY3YjZiYWM4NmNhNmY0YzE1YTFmY2YwNjE4OWFkOTg1OTM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1Myw3ICs1NTMsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIENh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgYWRvcHRSZWYoKm5ldyBFbXB0
eUJhY2tGb3J3YXJkQ2xpZW50KSwKLSAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYo
Km5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKQorICAgICAgICBDb29raWVKYXI6OmNy
ZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAorICAgICAg
ICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVD
bGllbnQ7CkBAIC01ODAsOSArNTgxLDYgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRl
ckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOwotCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAyODE3YTc2NjY0NTdiMjM5NzNh
NjhmY2Y3YmMwMTgwYzEyYmY1Y2QzLi5lMjRmZGVkMjIyNWYxYzE5MThmNDU0MDE3NTY2NzE3ZTIw
NDg0ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAt
NzcsMTYgKzc3LDEzIEBAIHB1YmxpYzoKIAogdW5zaWduZWQgbG9uZyBQcm9ncmVzc1RyYWNrZXI6
OnNfdW5pcXVlSWRlbnRpZmllciA9IDA7CiAKLVByb2dyZXNzVHJhY2tlcjo6UHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50
KQorUHJvZ3Jlc3NUcmFja2VyOjpQcm9ncmVzc1RyYWNrZXIoVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBjbGllbnQpCisgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVudCkpCiAg
ICAgLCBtX3Byb2dyZXNzSGVhcnRiZWF0VGltZXIoKnRoaXMsICZQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzSGVhcnRiZWF0VGltZXJGaXJlZCkKIHsKIH0KIAotUHJvZ3Jlc3NUcmFja2VyOjp+UHJv
Z3Jlc3NUcmFja2VyKCkKLXsKLSAgICBtX2NsaWVudC5wcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQo
KTsKLX0KK1Byb2dyZXNzVHJhY2tlcjo6flByb2dyZXNzVHJhY2tlcigpID0gZGVmYXVsdDsKIAog
ZG91YmxlIFByb2dyZXNzVHJhY2tlcjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewpAQCAt
MTE3LDcgKzExNCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIGZyYW1lKQogewogICAgIExPRyhQcm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAt
IGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRp
bmcgZnJhbWUgJXAiLCB0aGlzLCAmZnJhbWUsIGZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tl
ZEZyYW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOwogCi0gICAgbV9jbGll
bnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgaWYgKCFtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyB8fCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSA9PSAmZnJhbWUpIHsKICAgICAgICAg
cmVzZXQoKTsKQEAgLTEzMywxMyArMTMwLDEzIEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9n
cmVzc1N0YXJ0ZWQoRnJhbWUmIGZyYW1lKQogICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJm
cmFtZVBhcnRPZk1haW5Mb2FkVGhyZXNob2xkID0gMV9zOwogICAgICAgICBtX2lzTWFpbkxvYWQg
PSBpc01haW5GcmFtZSB8fCBlbGFwc2VkVGltZVNpbmNlTWFpbkxvYWRDb21wbGV0ZSA8IHN1YmZy
YW1lUGFydE9mTWFpbkxvYWRUaHJlc2hvbGQ7CiAKLSAgICAgICAgbV9jbGllbnQucHJvZ3Jlc3NT
dGFydGVkKCptX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7CisgICAgICAgIG1fY2xpZW50LT5w
cm9ncmVzc1N0YXJ0ZWQoKm1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKICAgICB9CiAgICAg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInByb2dyZXNzU3RhcnRlZDogZnJhbWUgJXAsIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAl
ZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAsIGlzTWFpbkxvYWQgJWQiLCAmZnJhbWUsIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpLCBtX2lzTWFpbkxvYWQpOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmco
ZnJhbWUpOwogfQogCkBAIC0xNTEsMTMgKzE0OCwxMyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6
cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX251bVByb2dyZXNzVHJh
Y2tlZEZyYW1lcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCk7CiAKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcy0tOwogICAgIGlm
ICghbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgfHwgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJh
bWUgPT0gJmZyYW1lKQogICAgICAgICBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5h
bFByb2dyZXNzQ29tcGxldGUoKQpAQCAtMTcxLDcgKzE2OCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFj
a2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgIC8vIHdpdGggZmluYWwgcHJvZ3Jlc3Mg
dmFsdWUuCiAgICAgaWYgKCFtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCkgewogICAgICAgICBt
X3Byb2dyZXNzVmFsdWUgPSAxOwotICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZCgqZnJhbWUpOworICAgICAgICBtX2NsaWVudC0+cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQo
KmZyYW1lKTsKICAgICB9CiAKICAgICByZXNldCgpOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgICAgICBtX21haW5M
b2FkQ29tcGxldGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5zZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KHRydWUpOwotICAgIG1f
Y2xpZW50LnByb2dyZXNzRmluaXNoZWQoKmZyYW1lKTsKKyAgICBtX2NsaWVudC0+cHJvZ3Jlc3NG
aW5pc2hlZCgqZnJhbWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkUHJvZ3Jlc3NpbmdTdGF0
dXNDaGFuZ2VkKCk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBl
ZExvYWRpbmcoKmZyYW1lKTsKQEAgLTIxOSw3ICsyMTYsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCB1bnNpZ25lZCBi
eXRlcwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lOwogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAg
bV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgZG91YmxlIGlu
Y3JlbWVudCwgcGVyY2VudE9mUmVtYWluaW5nQnl0ZXM7CiAgICAgbG9uZyBsb25nIHJlbWFpbmlu
Z0J5dGVzLCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0czsKQEAgLTI1OSwxNCArMjU2
LDE0IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIHVuc2lnbmVkIGJ5dGVzCiAgICAgICAgICAgICBpZiAobV9wcm9ncmVz
c1ZhbHVlID09IDEpCiAgICAgICAgICAgICAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQg
PSB0cnVlOwogCi0gICAgICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hhbmdlZCgq
ZnJhbWUpOworICAgICAgICAgICAgbV9jbGllbnQtPnByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKCpm
cmFtZSk7CiAKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NWYWx1ZSA9IG1fcHJv
Z3Jlc3NWYWx1ZTsKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NUaW1lID0gbm93
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCmluZGV4IDQ0
NTQwNTFhZGQ5OGU1MjgxMThlNTgyYWY5OTRkNjgxNDMwMjVjYTEuLjQzM2M4ZDliMzc4MTNiZjVi
NWQwNjAzNTQxMjM5YjI1YmQ2N2EyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyLmgKQEAgLTM5LDExICszOSwxNCBAQCBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CiBzdHJ1Y3QgUHJvZ3Jlc3NJdGVtOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYpOworICAgIGV4cGxpY2l0IFByb2dyZXNzVHJhY2tl
cihVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmKTsKICAgICB+UHJvZ3Jlc3NUcmFj
a2VyKCk7CiAKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50LmdldCgpOyB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBsb25nIHNfdW5pcXVlSWRlbnRpZmllcjsKIAotICAgIFByb2dyZXNzVHJhY2tlckNsaWVu
dCYgbV9jbGllbnQ7CisgICAgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPEZyYW1lPiBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc0l0ZW0+PiBtX3By
b2dyZXNzSXRlbXM7CiAgICAgVGltZXIgbV9wcm9ncmVzc0hlYXJ0YmVhdFRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IDMwZGUyNjU0
NjNiNDBjOGY5YjRiYzA1ZTM1NzhkYzllNmQ3MTIyMWQuLjM2MmZjYzQ4ODIxMzk0OTQxM2JiNjkw
NjBjOGVhMTJiNDg2NzlkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgKQEAgLTMwLDExICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZyYW1lOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgflByb2dyZXNzVHJhY2tlckNsaWVudCgpID0gZGVmYXVsdDsKLQorICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVz
c1RyYWNrZXJEZXN0cm95ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5Qcm9ncmVzc1RyYWNrZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjBiNWZiYjYyNDAwMjQ5MTMyYzliMDQ5MDg2
YTkzMTNmMjgxNmM2Li43ZjBlMDBkZDI4ZGQ5ZjlhMTQwNDA2NzY0NmY0NjA1YTkyNGNlNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJv
bGxlcihtYWtlVW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KG1ha2VVbmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKKyAgICAsIG1fcHJvZ3Jlc3MobWFrZVVuaXF1ZTxQcm9ncmVzc1RyYWNr
ZXI+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihtYWtlVW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQp
KSkKICAgICAsIG1fbWFpbkZyYW1lKEZyYW1lOjpjcmVhdGUodGhpcywgbnVsbHB0ciwgcGFnZUNv
bmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIG1fZWRpdG9yQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMmQzM2Q3NjMxOTNmNGYxNWYwODFk
OWI0OWE4ZmFhOTZiNTJkMzliNS4uYTY5OGRhZTYyN2VkYjdlN2ZjOWM3MDVmMjMwNmM5YjU2NTM4
NjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MSwxMSArNTIsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphcikKK1BhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVK
YXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dy
ZXNzVHJhY2tlckNsaWVudCkKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0
b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RG
TW92ZShzb2NrZXRQcm92aWRlcikpCiAgICAgLCBsaWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKGxp
YldlYlJUQ1Byb3ZpZGVyKSkKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChXVEZNb3ZlKHBy
b2dyZXNzVHJhY2tlckNsaWVudCkpCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA2MDZkNjM4YmM4OWMx
M2VjNWQwZGI4Yjc4NWRlYzU4NjU0NjYyZTYxLi4wOTI4YzNjZTI2MjUxODgxZjQzMmExYzc4MmIy
NjBjYjU2MTgxOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBA
IC02OCw3ICs2OCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1
cmF0aW9uJiYpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+IGxpYldlYlJUQ1Byb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsdWdJbkNsaWVudD4gcGx1Z0luQ2xpZW50OwotICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsgbnVsbHB0ciB9OworICAgIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+IHByb2dyZXNzVHJhY2tlckNsaWVudDsKICAgICBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgIFJlZjxDb29raWVKYXI+IGNvb2tpZUph
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcApp
bmRleCBhZjkyYjZkMjE2MjAzNTBiYzczYzQ0MTdkYjhlMWE3YzczMmNkMjU1Li5iODI3N2E2Y2Q5
ZTM5ODc3YmZkNmFlYmFkMmY4NWMxNGU5YzQ2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmNwcApAQCAtMzksMTIgKzM5LDcgQEAgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OjpXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1f
d2ViUGFnZSh3ZWJQYWdlKQogewogfQotICAgIAotdm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0g
ICAgCisKIHZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKIHsKICAgICBpZiAoIW9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZS5pc01haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVu
dC5oCmluZGV4IDYzZDc3NGU1YTk0MjdjNzM1YjUyNDkwYmQwMWNkNzlhYjc0YTEwZTkuLjExNDgy
ZWVhN2E3Yjk0MjU1NGRlNWE0MjdhZjYyMzY1MWYyNjViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChXZWJQYWdlJik7CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIHBy
b2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
JiBvcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZ3Jlc3NG
aW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmVmOGU0NWQyODVmYWVhNGJhMDFlNjlkNDQwOTM0ZjIyNjljNDYzYi4uMzVjZGY0OTM3MmE0MWQz
OTg0NGExOWM0ZGU3MmYwYzkwNjNmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcj4o
KSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhpcyksCi0gICAg
ICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkKKyAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC00NjUsNyAr
NDY2LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cGx1Z0luQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQbHVnSW5DbGllbnQ+KCp0aGlzKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50
ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ+KCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNWZhMGU3Njhh
NzgyMDQyZTQ3MjdlZDQ4YjBlYjZmMjEwNzg5ZGU2Zi4uMTMzOGM4NTIzOGRlMTVhZWFmOTk0Mzk3
NDkyYmRjOGNjNzJhNTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCkBA
IC0yMzEsNiArMjMxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVNfV2ViQ29y
ZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
ICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAogICAgIHdp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorICAgIHdpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCisgICAgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRM
aW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAppbmRleCBjMzhi
NDYwNjc0YzQxNzk0MDNmOWI3ZDEyZDgyNDFhOTJmOTk4MzFkLi4yMzExZTM5YWZjZmZkNGQ0N2Y0
ZGU4YjM1NWUyZDI5YmQ1MmJkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHByb2dyZXNzVHJhY2tl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50Lm1tCmluZGV4IGUyMzc0NzNhYWIzOWQ2NzJkYzA5MGNlZTkwNTk5OTMw
ZWI4MDUzOGYuLmNjMzhlZjE2MWU3NTNkNTE5MTY0ZmVkMzBkZDU4NzY1MTgwOGJmMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0KQEAgLTM5LDExICszOSw2IEBAIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudDo6V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiB2b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6d2lsbENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiZGRkZmU0OTA4Njk3NjQ0YWQxZjU5MWU3NDUzZDhmNTQ5OTA0NjQ5Li42
NTEyZjBjYzhhYmU0NDEwN2Y5MTE0MzkwNjA4YjkxMTM3MTIxODU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAtICh2
b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVO
YW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCi0gICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKICAg
ICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDYwLDcgKzE0NjEs
NiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5n
ICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ+
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJndlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRl
ciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0
b24oKTsKQEAgLTE3MDYsNyArMTcwNiw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKLSAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSkKKyAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTcxOSw3ICsxNzIwLDYgQEAgLSAoaWQpaW5pdFNpbXBsZUhU
TUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1l
IHByZWYKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
YXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+
Z3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGI1ODdjZjkxNWIxNDIwZGZjZDkzOGE2ZDU5MmM4OGFlMTlhZDhkZDUuLmVl
YWU3NDE2Y2RjOTNmMjZmYjMxMjQwMDg2OWIyM2MwNDczZjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTY0MywyNyArNjQzLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUUKICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0g
ICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZp
ZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOwotICAgIElXZWJOb3RpZmljYXRpb25DZW50
ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlcklu
dGVybmFsKCk7Ci0gICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVz
c1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXco
KSksIDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0gICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NFc3Rp
bWF0ZUNoYW5nZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRXN0aW1hdGVD
aGFuZ2VkTm90aWZpY2F0aW9uKTsKLSAgICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlD
ZW50ZXIgPSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwot
ICAgIG5vdGlmeUNlbnRlci0+cG9zdE5vdGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NFc3RpbWF0ZUNo
YW5nZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSks
IDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0ZpbmlzaGVkKFdl
YkNvcmU6OkZyYW1lJikKLXsKLSAgICBzdGF0aWMgQlNUUiBwcm9ncmVzc0ZpbmlzaGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKTsKLSAg
ICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlDZW50ZXIgPSBXZWJOb3RpZmljYXRpb25D
ZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwotICAgIG5vdGlmeUNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NGaW5pc2hlZE5hbWUsIHN0YXRpY19jYXN0PElXZWJWaWV3
Kj4obV93ZWJGcmFtZS0+d2ViVmlldygpKSwgMCk7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIC8qIHN1Z2dlc3RlZE5hbWUgKi8pCiB7CiAgICAgbV93ZWJGcmFtZS0+d2ViVmll
dygpLT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDY3NmE4ZDYxYzUzODkwYjk5YTRlNDQ3NzgwZTVmYWQwYzkyOTI2ODEuLmNjODY5MzIx
MWJkYjQ5OTg2MzZhNjMzNzEyZDA4NTNiYmEwNWM3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXI7CiBjbGFzcyBXZWJIaXN0b3J5OwogCi1jbGFzcyBXZWJGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6
OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2Vi
RnJhbWUqID0gbnVsbHB0cik7CiAgICAgfldlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKICAgICB2
b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJh
bWU7IH0KQEAgLTEyMCwxMCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25s
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcHJvZ3Jlc3NTdGFydGVk
KFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvZ3Jlc3NGaW5pc2hl
ZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmNGFj
YzQ3MTI2NzE5YmJkZDczZjY4MWQ4N2ZhNjZlMTgyNzE2NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCIKKworI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIldlYlZp
ZXcuaCIKKwordm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChX
ZWJDb3JlOjpGcmFtZSYpCit7CisgICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOworICAg
IElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNl
bnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90
aWZpY2F0aW9uTmFtZShwcm9ncmVzc1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+
KG1fd2ViRnJhbWUtPndlYlZpZXcoKSksIDApOworfQorCit2b2lkIFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAg
IHN0YXRpYyBCU1RSIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSA9IFN5c0FsbG9jU3RyaW5n
KFdlYlZpZXdQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik7CisgICAgSVdlYk5v
dGlmaWNhdGlvbkNlbnRlciogbm90aWZ5Q2VudGVyID0gV2ViTm90aWZpY2F0aW9uQ2VudGVyOjpk
ZWZhdWx0Q2VudGVySW50ZXJuYWwoKTsKKyAgICBub3RpZnlDZW50ZXItPnBvc3ROb3RpZmljYXRp
b25OYW1lKHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcq
PihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KKwordm9pZCBXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAgIHN0YXRp
YyBCU1RSIHByb2dyZXNzRmluaXNoZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb24pOworICAgIElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5v
dGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFs
KCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVzc0Zpbmlz
aGVkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAw
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRkYzgy
NDg0YzRiMjM1Njg4NTU3NDJmODk1OTRhZTA5ZDQ3NjIzMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZyYW1l
OworfQorCitjbGFzcyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2b2lkIHByb2dyZXNz
U3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQgcHJvZ3Jlc3NFc3RpbWF0
ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIHByb2dyZXNzRmluaXNo
ZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDdlYzRmZjExYTY5MjRkNjBmZGE0OGJjODIyNzQzZjkzZTE0M2NkMjMuLjYwMTQ0
ODE1YWVhODY5OWM5MWE4OWJkMWRmMTlhMGJjYTI4YWI2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlZpZXcuY3BwCkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJXZWJTY3Jp
cHRXb3JsZC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAt
MzExOSw3ICszMTIwLDggQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJh
bWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9y
YWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgp
LAotICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKQor
ICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9yYWdlUHJvdmlkZXIuY29weVJlZigpKSwKKyAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCkKICAgICApOwog
ICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlz
KTsKICAgICBjb25maWd1cmF0aW9uLmNvbnRleHRNZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRN
ZW51Q2xpZW50KHRoaXMpOwpAQCAtMzEyOSw3ICszMTMxLDYgQEAgSFJFU1VMVCBXZWJWaWV3Ojpp
bml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBn
cm91cE4KICAgICBjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJldlYkFw
cGxpY2F0aW9uQ2FjaGU6OnN0b3JhZ2UoKTsKICAgICBjb25maWd1cmF0aW9uLmRhdGFiYXNlUHJv
dmlkZXIgPSAmV2ViRGF0YWJhc2VQcm92aWRlcjo6c2luZ2xldG9uKCk7CiAgICAgY29uZmlndXJh
dGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgPSAmbV93ZWJWaWV3R3JvdXAtPnN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcigpOwotICAgIGNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihjb25maWd1cmF0aW9uLmxv
YWRlckNsaWVudEZvck1haW5GcmFtZSk7CiAgICAgY29uZmlndXJhdGlvbi51c2VyQ29udGVudFBy
b3ZpZGVyID0gJm1fd2ViVmlld0dyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKTsKICAgICBj
b25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUgPSAmbV93ZWJWaWV3R3JvdXAtPnZpc2l0ZWRM
aW5rU3RvcmUoKTsKICAgICBjb25maWd1cmF0aW9uLnBsdWdpbkluZm9Qcm92aWRlciA9ICZXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbigpOwpAQCAtMzE0OSw2ICszMTUwLDcgQEAgSFJF
U1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5h
bWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
Y3JlYXRlSW5zdGFuY2UoKTsKICAgICB3ZWJGcmFtZS0+aW5pdFdpdGhXZWJWaWV3KHRoaXMsIG1f
cGFnZSk7CiAgICAgc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQmPihtX3BhZ2UtPm1h
aW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKS5zZXRXZWJGcmFtZSh3ZWJGcmFtZSk7CisgICAg
c3RhdGljX2Nhc3Q8V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Jj4obV9wYWdlLT5wcm9ncmVzcygp
LmNsaWVudCgpKS5zZXRXZWJGcmFtZSh3ZWJGcmFtZSk7CiAgICAgbV9tYWluRnJhbWUgPSB3ZWJG
cmFtZTsKICAgICB3ZWJGcmFtZS0+UmVsZWFzZSgpOyAvLyBUaGUgV2ViRnJhbWUgaXMgb3duZWQg
YnkgdGhlIEZyYW1lLCBzbyByZWxlYXNlIG91ciByZWZlcmVuY2UgdG8gaXQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384828</attachid>
            <date>2019-12-04 10:43:26 -0800</date>
            <delta_ts>2019-12-04 12:22:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204854-20191204104308.patch</filename>
            <type>text/plain</type>
            <size>35225</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4OWQ1MDRiM2UzZjQ2
ZWM2YmM4OTkxNzRiMmY5ZmY3ZTUyYjg5Yi4uYmYxZjZjOWM4MGI0MjdlMDAyNzAzM2VhYzdkZDVi
OWJhNDUxNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246
OnByb2dyZXNzVHJhY2tlckNsaWVudCBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5
Q2xpZW50cyk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OlByb2dyZXNzVHJhY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyOjp+UHJvZ3Jlc3NUcmFja2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDE5LTEy
LTAzICBEb3VnIEtlbGx5ICA8ZG91Z2tAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiB3
aGVuIGVuY291bnRlcmluZyBVX09USEVSX05FVVRSQUwgaW4gY3JlYXRlQmlkaVJ1bnNGb3JMaW5l
IGF0IGVuZCBvZiBydW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4NzljN2I4ZGJjMTMyYWIzNzEyMTc1NzU3Y2Nh
OTE1YWY5ZmMxNC4uNjNlOGI0MWIzOWFmYzNiMWY0ZWM5ZDg3YjlmYTE2NDc0ZGEwYzE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJD
bGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSAzIHNlY29uZCB0aW1lb3V0IGZvciB0
aGUgdmlldyBnZXN0dXJlIHNuYXBzaG90IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDFlYzViMmRkNWY4OTE5M2ZhZmYzNWRmYjg1OWFmZGI2MmI2ZjEwNmYuLjE2NzczNGY4YzEyZTM0
N2ZmMDE3N2MwZDk2NjBjYWM2YTJiZmY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHNob3VsZCB1
c2UgYSBzbWFydCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE5LTEyLTAyICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtBcHBsZVdpbl0gV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy5kbGwgaXNuJ3QgY29tcGlsZWQgc2luY2UgcjI0ODQ0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgxN2Q5NjlkMTEwNDZiZWI2N2U1Njg3MzQ4
YTY3YjNkMzQ5ODQ5M2QuLjQxMjY0NzNjMzdmNDIwMmY0ZmFiZjBiMTVmMmI2ODdkNDIwYTNlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0w
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1
cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50Ojpwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBp
bml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFt
ZTpdKToKKwogMjAxOS0xMi0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIG1lZGlhIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2Zi
ZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjkuLjFiMWJhMzgwNGQ5ODRhY2YzMTVjODlkZGUxOTExMmVl
ZTE0Yzg1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBh
Z2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTktMTItMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgV2ViIEFu
aW1hdGlvbnMgY29tcG9zaXRlIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggNWNlOWUxMWVjMGI2NjA1N2M1N2JkMzhkYjk1NmY0MGU3M2M5OGU2MC4u
NjAwZWY3YjZiYWM4NmNhNmY0YzE1YTFmY2YwNjE4OWFkOTg1OTM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1Myw3ICs1NTMsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIENh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgYWRvcHRSZWYoKm5ldyBFbXB0
eUJhY2tGb3J3YXJkQ2xpZW50KSwKLSAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYo
Km5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKQorICAgICAgICBDb29raWVKYXI6OmNy
ZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAorICAgICAg
ICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVD
bGllbnQ7CkBAIC01ODAsOSArNTgxLDYgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRl
ckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOwotCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAyODE3YTc2NjY0NTdiMjM5NzNh
NjhmY2Y3YmMwMTgwYzEyYmY1Y2QzLi5lMjRmZGVkMjIyNWYxYzE5MThmNDU0MDE3NTY2NzE3ZTIw
NDg0ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAt
NzcsMTYgKzc3LDEzIEBAIHB1YmxpYzoKIAogdW5zaWduZWQgbG9uZyBQcm9ncmVzc1RyYWNrZXI6
OnNfdW5pcXVlSWRlbnRpZmllciA9IDA7CiAKLVByb2dyZXNzVHJhY2tlcjo6UHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50
KQorUHJvZ3Jlc3NUcmFja2VyOjpQcm9ncmVzc1RyYWNrZXIoVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBjbGllbnQpCisgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVudCkpCiAg
ICAgLCBtX3Byb2dyZXNzSGVhcnRiZWF0VGltZXIoKnRoaXMsICZQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzSGVhcnRiZWF0VGltZXJGaXJlZCkKIHsKIH0KIAotUHJvZ3Jlc3NUcmFja2VyOjp+UHJv
Z3Jlc3NUcmFja2VyKCkKLXsKLSAgICBtX2NsaWVudC5wcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQo
KTsKLX0KK1Byb2dyZXNzVHJhY2tlcjo6flByb2dyZXNzVHJhY2tlcigpID0gZGVmYXVsdDsKIAog
ZG91YmxlIFByb2dyZXNzVHJhY2tlcjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewpAQCAt
MTE3LDcgKzExNCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIGZyYW1lKQogewogICAgIExPRyhQcm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAt
IGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRp
bmcgZnJhbWUgJXAiLCB0aGlzLCAmZnJhbWUsIGZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tl
ZEZyYW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOwogCi0gICAgbV9jbGll
bnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgaWYgKCFtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyB8fCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSA9PSAmZnJhbWUpIHsKICAgICAgICAg
cmVzZXQoKTsKQEAgLTEzMywxMyArMTMwLDEzIEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9n
cmVzc1N0YXJ0ZWQoRnJhbWUmIGZyYW1lKQogICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJm
cmFtZVBhcnRPZk1haW5Mb2FkVGhyZXNob2xkID0gMV9zOwogICAgICAgICBtX2lzTWFpbkxvYWQg
PSBpc01haW5GcmFtZSB8fCBlbGFwc2VkVGltZVNpbmNlTWFpbkxvYWRDb21wbGV0ZSA8IHN1YmZy
YW1lUGFydE9mTWFpbkxvYWRUaHJlc2hvbGQ7CiAKLSAgICAgICAgbV9jbGllbnQucHJvZ3Jlc3NT
dGFydGVkKCptX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7CisgICAgICAgIG1fY2xpZW50LT5w
cm9ncmVzc1N0YXJ0ZWQoKm1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKICAgICB9CiAgICAg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInByb2dyZXNzU3RhcnRlZDogZnJhbWUgJXAsIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAl
ZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAsIGlzTWFpbkxvYWQgJWQiLCAmZnJhbWUsIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpLCBtX2lzTWFpbkxvYWQpOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmco
ZnJhbWUpOwogfQogCkBAIC0xNTEsMTMgKzE0OCwxMyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6
cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX251bVByb2dyZXNzVHJh
Y2tlZEZyYW1lcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCk7CiAKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcy0tOwogICAgIGlm
ICghbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgfHwgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJh
bWUgPT0gJmZyYW1lKQogICAgICAgICBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5h
bFByb2dyZXNzQ29tcGxldGUoKQpAQCAtMTcxLDcgKzE2OCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFj
a2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgIC8vIHdpdGggZmluYWwgcHJvZ3Jlc3Mg
dmFsdWUuCiAgICAgaWYgKCFtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCkgewogICAgICAgICBt
X3Byb2dyZXNzVmFsdWUgPSAxOwotICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZCgqZnJhbWUpOworICAgICAgICBtX2NsaWVudC0+cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQo
KmZyYW1lKTsKICAgICB9CiAKICAgICByZXNldCgpOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgICAgICBtX21haW5M
b2FkQ29tcGxldGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5zZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KHRydWUpOwotICAgIG1f
Y2xpZW50LnByb2dyZXNzRmluaXNoZWQoKmZyYW1lKTsKKyAgICBtX2NsaWVudC0+cHJvZ3Jlc3NG
aW5pc2hlZCgqZnJhbWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkUHJvZ3Jlc3NpbmdTdGF0
dXNDaGFuZ2VkKCk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBl
ZExvYWRpbmcoKmZyYW1lKTsKQEAgLTIxOSw3ICsyMTYsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCB1bnNpZ25lZCBi
eXRlcwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lOwogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAg
bV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgZG91YmxlIGlu
Y3JlbWVudCwgcGVyY2VudE9mUmVtYWluaW5nQnl0ZXM7CiAgICAgbG9uZyBsb25nIHJlbWFpbmlu
Z0J5dGVzLCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0czsKQEAgLTI1OSwxNCArMjU2
LDE0IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIHVuc2lnbmVkIGJ5dGVzCiAgICAgICAgICAgICBpZiAobV9wcm9ncmVz
c1ZhbHVlID09IDEpCiAgICAgICAgICAgICAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQg
PSB0cnVlOwogCi0gICAgICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hhbmdlZCgq
ZnJhbWUpOworICAgICAgICAgICAgbV9jbGllbnQtPnByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKCpm
cmFtZSk7CiAKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NWYWx1ZSA9IG1fcHJv
Z3Jlc3NWYWx1ZTsKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NUaW1lID0gbm93
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCmluZGV4IDQ0
NTQwNTFhZGQ5OGU1MjgxMThlNTgyYWY5OTRkNjgxNDMwMjVjYTEuLjQzM2M4ZDliMzc4MTNiZjVi
NWQwNjAzNTQxMjM5YjI1YmQ2N2EyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyLmgKQEAgLTM5LDExICszOSwxNCBAQCBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CiBzdHJ1Y3QgUHJvZ3Jlc3NJdGVtOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYpOworICAgIGV4cGxpY2l0IFByb2dyZXNzVHJhY2tl
cihVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmKTsKICAgICB+UHJvZ3Jlc3NUcmFj
a2VyKCk7CiAKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50LmdldCgpOyB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBsb25nIHNfdW5pcXVlSWRlbnRpZmllcjsKIAotICAgIFByb2dyZXNzVHJhY2tlckNsaWVu
dCYgbV9jbGllbnQ7CisgICAgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPEZyYW1lPiBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc0l0ZW0+PiBtX3By
b2dyZXNzSXRlbXM7CiAgICAgVGltZXIgbV9wcm9ncmVzc0hlYXJ0YmVhdFRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IDMwZGUyNjU0
NjNiNDBjOGY5YjRiYzA1ZTM1NzhkYzllNmQ3MTIyMWQuLjM2MmZjYzQ4ODIxMzk0OTQxM2JiNjkw
NjBjOGVhMTJiNDg2NzlkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgKQEAgLTMwLDExICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZyYW1lOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgflByb2dyZXNzVHJhY2tlckNsaWVudCgpID0gZGVmYXVsdDsKLQorICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVz
c1RyYWNrZXJEZXN0cm95ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5Qcm9ncmVzc1RyYWNrZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjBiNWZiYjYyNDAwMjQ5MTMyYzliMDQ5MDg2
YTkzMTNmMjgxNmM2Li43ZjBlMDBkZDI4ZGQ5ZjlhMTQwNDA2NzY0NmY0NjA1YTkyNGNlNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJv
bGxlcihtYWtlVW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KG1ha2VVbmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKKyAgICAsIG1fcHJvZ3Jlc3MobWFrZVVuaXF1ZTxQcm9ncmVzc1RyYWNr
ZXI+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihtYWtlVW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQp
KSkKICAgICAsIG1fbWFpbkZyYW1lKEZyYW1lOjpjcmVhdGUodGhpcywgbnVsbHB0ciwgcGFnZUNv
bmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIG1fZWRpdG9yQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMmQzM2Q3NjMxOTNmNGYxNWYwODFk
OWI0OWE4ZmFhOTZiNTJkMzliNS4uYTY5OGRhZTYyN2VkYjdlN2ZjOWM3MDVmMjMwNmM5YjU2NTM4
NjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MSwxMSArNTIsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphcikKK1BhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVK
YXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dy
ZXNzVHJhY2tlckNsaWVudCkKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0
b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RG
TW92ZShzb2NrZXRQcm92aWRlcikpCiAgICAgLCBsaWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKGxp
YldlYlJUQ1Byb3ZpZGVyKSkKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChXVEZNb3ZlKHBy
b2dyZXNzVHJhY2tlckNsaWVudCkpCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA2MDZkNjM4YmM4OWMx
M2VjNWQwZGI4Yjc4NWRlYzU4NjU0NjYyZTYxLi4wOTI4YzNjZTI2MjUxODgxZjQzMmExYzc4MmIy
NjBjYjU2MTgxOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBA
IC02OCw3ICs2OCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1
cmF0aW9uJiYpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+IGxpYldlYlJUQ1Byb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsdWdJbkNsaWVudD4gcGx1Z0luQ2xpZW50OwotICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsgbnVsbHB0ciB9OworICAgIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+IHByb2dyZXNzVHJhY2tlckNsaWVudDsKICAgICBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgIFJlZjxDb29raWVKYXI+IGNvb2tpZUph
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcApp
bmRleCBhZjkyYjZkMjE2MjAzNTBiYzczYzQ0MTdkYjhlMWE3YzczMmNkMjU1Li5iODI3N2E2Y2Q5
ZTM5ODc3YmZkNmFlYmFkMmY4NWMxNGU5YzQ2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmNwcApAQCAtMzksMTIgKzM5LDcgQEAgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OjpXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1f
d2ViUGFnZSh3ZWJQYWdlKQogewogfQotICAgIAotdm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0g
ICAgCisKIHZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKIHsKICAgICBpZiAoIW9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZS5pc01haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVu
dC5oCmluZGV4IDYzZDc3NGU1YTk0MjdjNzM1YjUyNDkwYmQwMWNkNzlhYjc0YTEwZTkuLjExNDgy
ZWVhN2E3Yjk0MjU1NGRlNWE0MjdhZjYyMzY1MWYyNjViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChXZWJQYWdlJik7CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIHBy
b2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
JiBvcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZ3Jlc3NG
aW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmVmOGU0NWQyODVmYWVhNGJhMDFlNjlkNDQwOTM0ZjIyNjljNDYzYi4uMzVjZGY0OTM3MmE0MWQz
OTg0NGExOWM0ZGU3MmYwYzkwNjNmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcj4o
KSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhpcyksCi0gICAg
ICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkKKyAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC00NjUsNyAr
NDY2LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cGx1Z0luQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQbHVnSW5DbGllbnQ+KCp0aGlzKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50
ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ+KCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNWZhMGU3Njhh
NzgyMDQyZTQ3MjdlZDQ4YjBlYjZmMjEwNzg5ZGU2Zi4uMTMzOGM4NTIzOGRlMTVhZWFmOTk0Mzk3
NDkyYmRjOGNjNzJhNTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCkBA
IC0yMzEsNiArMjMxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVNfV2ViQ29y
ZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
ICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAogICAgIHdp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorICAgIHdpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCisgICAgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRM
aW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAppbmRleCBjMzhi
NDYwNjc0YzQxNzk0MDNmOWI3ZDEyZDgyNDFhOTJmOTk4MzFkLi4yMzExZTM5YWZjZmZkNGQ0N2Y0
ZGU4YjM1NWUyZDI5YmQ1MmJkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHByb2dyZXNzVHJhY2tl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50Lm1tCmluZGV4IGUyMzc0NzNhYWIzOWQ2NzJkYzA5MGNlZTkwNTk5OTMw
ZWI4MDUzOGYuLmNjMzhlZjE2MWU3NTNkNTE5MTY0ZmVkMzBkZDU4NzY1MTgwOGJmMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0KQEAgLTM5LDExICszOSw2IEBAIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudDo6V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiB2b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6d2lsbENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiZGRkZmU0OTA4Njk3NjQ0YWQxZjU5MWU3NDUzZDhmNTQ5OTA0NjQ5Li42
NTEyZjBjYzhhYmU0NDEwN2Y5MTE0MzkwNjA4YjkxMTM3MTIxODU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAtICh2
b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVO
YW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCi0gICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKICAg
ICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDYwLDcgKzE0NjEs
NiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5n
ICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ+
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJndlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRl
ciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0
b24oKTsKQEAgLTE3MDYsNyArMTcwNiw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKLSAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSkKKyAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTcxOSw3ICsxNzIwLDYgQEAgLSAoaWQpaW5pdFNpbXBsZUhU
TUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1l
IHByZWYKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
YXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+
Z3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGI1ODdjZjkxNWIxNDIwZGZjZDkzOGE2ZDU5MmM4OGFlMTlhZDhkZDUuLmVl
YWU3NDE2Y2RjOTNmMjZmYjMxMjQwMDg2OWIyM2MwNDczZjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTY0MywyNyArNjQzLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUUKICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0g
ICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZp
ZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOwotICAgIElXZWJOb3RpZmljYXRpb25DZW50
ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlcklu
dGVybmFsKCk7Ci0gICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVz
c1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXco
KSksIDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0gICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NFc3Rp
bWF0ZUNoYW5nZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRXN0aW1hdGVD
aGFuZ2VkTm90aWZpY2F0aW9uKTsKLSAgICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlD
ZW50ZXIgPSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwot
ICAgIG5vdGlmeUNlbnRlci0+cG9zdE5vdGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NFc3RpbWF0ZUNo
YW5nZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSks
IDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0ZpbmlzaGVkKFdl
YkNvcmU6OkZyYW1lJikKLXsKLSAgICBzdGF0aWMgQlNUUiBwcm9ncmVzc0ZpbmlzaGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKTsKLSAg
ICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlDZW50ZXIgPSBXZWJOb3RpZmljYXRpb25D
ZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwotICAgIG5vdGlmeUNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NGaW5pc2hlZE5hbWUsIHN0YXRpY19jYXN0PElXZWJWaWV3
Kj4obV93ZWJGcmFtZS0+d2ViVmlldygpKSwgMCk7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIC8qIHN1Z2dlc3RlZE5hbWUgKi8pCiB7CiAgICAgbV93ZWJGcmFtZS0+d2ViVmll
dygpLT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDY3NmE4ZDYxYzUzODkwYjk5YTRlNDQ3NzgwZTVmYWQwYzkyOTI2ODEuLmNjODY5MzIx
MWJkYjQ5OTg2MzZhNjMzNzEyZDA4NTNiYmEwNWM3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXI7CiBjbGFzcyBXZWJIaXN0b3J5OwogCi1jbGFzcyBXZWJGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6
OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2Vi
RnJhbWUqID0gbnVsbHB0cik7CiAgICAgfldlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKICAgICB2
b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJh
bWU7IH0KQEAgLTEyMCwxMCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25s
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcHJvZ3Jlc3NTdGFydGVk
KFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvZ3Jlc3NGaW5pc2hl
ZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmNGFj
YzQ3MTI2NzE5YmJkZDczZjY4MWQ4N2ZhNjZlMTgyNzE2NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCIKKworI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIldlYlZp
ZXcuaCIKKwordm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChX
ZWJDb3JlOjpGcmFtZSYpCit7CisgICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOworICAg
IElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNl
bnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90
aWZpY2F0aW9uTmFtZShwcm9ncmVzc1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+
KG1fd2ViRnJhbWUtPndlYlZpZXcoKSksIDApOworfQorCit2b2lkIFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAg
IHN0YXRpYyBCU1RSIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSA9IFN5c0FsbG9jU3RyaW5n
KFdlYlZpZXdQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik7CisgICAgSVdlYk5v
dGlmaWNhdGlvbkNlbnRlciogbm90aWZ5Q2VudGVyID0gV2ViTm90aWZpY2F0aW9uQ2VudGVyOjpk
ZWZhdWx0Q2VudGVySW50ZXJuYWwoKTsKKyAgICBub3RpZnlDZW50ZXItPnBvc3ROb3RpZmljYXRp
b25OYW1lKHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcq
PihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KKwordm9pZCBXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAgIHN0YXRp
YyBCU1RSIHByb2dyZXNzRmluaXNoZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb24pOworICAgIElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5v
dGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFs
KCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVzc0Zpbmlz
aGVkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAw
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDIyZDY3
Y2QwNjA2ZmNjYTYzNTZmOGY2MDdkZjQ3YWFmMzRiNDQ0MgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZyYW1l
OworfQorCitjbGFzcyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldFdlYkZy
YW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJhbWU7IH0KKworICAg
IHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBw
cm9ncmVzc0VzdGltYXRlQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQg
cHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworCitwcml2YXRlOgorICAg
IFdlYkZyYW1lKiBtX3dlYkZyYW1lIHsgbnVsbHB0ciB9OworfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKaW5kZXggN2VjNGZmMTFhNjkyNGQ2MGZkYTQ4YmM4MjI3NDNmOTNlMTQzY2Qy
My4uNjAxNDQ4MTVhZWE4Njk5YzkxYTg5YmQxZGYxOWEwYmNhMjhhYjY0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCIKICNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgorI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUg
IldlYlNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
LmgiCkBAIC0zMTE5LDcgKzMxMjAsOCBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUo
UkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAg
ICBtYWtlVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPigpLAogICAgICAgICBXZWJDb3JlOjpD
YWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIEJhY2tGb3J3YXJkTGlzdDo6
Y3JlYXRlKCksCi0gICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5
UmVmKCkpCisgICAgICAgIENvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVm
KCkpLAorICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oKQog
ICAgICk7CiAgICAgY29uZmlndXJhdGlvbi5jaHJvbWVDbGllbnQgPSBuZXcgV2ViQ2hyb21lQ2xp
ZW50KHRoaXMpOwogICAgIGNvbmZpZ3VyYXRpb24uY29udGV4dE1lbnVDbGllbnQgPSBuZXcgV2Vi
Q29udGV4dE1lbnVDbGllbnQodGhpcyk7CkBAIC0zMTI5LDcgKzMxMzEsNiBAQCBIUkVTVUxUIFdl
YlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0lu
XyBCU1RSIGdyb3VwTgogICAgIGNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmV2ViQXBwbGljYXRpb25DYWNoZTo6c3RvcmFnZSgpOwogICAgIGNvbmZpZ3VyYXRpb24uZGF0
YWJhc2VQcm92aWRlciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBj
b25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZtX3dlYlZpZXdHcm91cC0+
c3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyKCk7Ci0gICAgY29uZmlndXJhdGlvbi5wcm9ncmVzc1Ry
YWNrZXJDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGNvbmZpZ3Vy
YXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKTsKICAgICBjb25maWd1cmF0aW9uLnVzZXJD
b250ZW50UHJvdmlkZXIgPSAmbV93ZWJWaWV3R3JvdXAtPnVzZXJDb250ZW50Q29udHJvbGxlcigp
OwogICAgIGNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9yZSA9ICZtX3dlYlZpZXdHcm91cC0+
dmlzaXRlZExpbmtTdG9yZSgpOwogICAgIGNvbmZpZ3VyYXRpb24ucGx1Z2luSW5mb1Byb3ZpZGVy
ID0gJldlYlBsdWdpbkluZm9Qcm92aWRlcjo6c2luZ2xldG9uKCk7CkBAIC0zMTQ5LDYgKzMxNTAs
NyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RS
IGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdl
YkZyYW1lOjpjcmVhdGVJbnN0YW5jZSgpOwogICAgIHdlYkZyYW1lLT5pbml0V2l0aFdlYlZpZXco
dGhpcywgbV9wYWdlKTsKICAgICBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCY+KG1f
cGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuY2xpZW50KCkpLnNldFdlYkZyYW1lKHdlYkZyYW1l
KTsKKyAgICBzdGF0aWNfY2FzdDxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQmPihtX3BhZ2UtPnBy
b2dyZXNzKCkuY2xpZW50KCkpLnNldFdlYkZyYW1lKHdlYkZyYW1lKTsKICAgICBtX21haW5GcmFt
ZSA9IHdlYkZyYW1lOwogICAgIHdlYkZyYW1lLT5SZWxlYXNlKCk7IC8vIFRoZSBXZWJGcmFtZSBp
cyBvd25lZCBieSB0aGUgRnJhbWUsIHNvIHJlbGVhc2Ugb3VyIHJlZmVyZW5jZSB0byBpdC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384832</attachid>
            <date>2019-12-04 12:22:28 -0800</date>
            <delta_ts>2019-12-04 17:24:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204854-20191204122209.patch</filename>
            <type>text/plain</type>
            <size>35244</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA4OWQ1MDRiM2UzZjQ2
ZWM2YmM4OTkxNzRiMmY5ZmY3ZTUyYjg5Yi4uYmYxZjZjOWM4MGI0MjdlMDAyNzAzM2VhYzdkZDVi
OWJhNDUxNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUGFnZUNvbmZpZ3VyYXRpb246
OnByb2dyZXNzVHJhY2tlckNsaWVudCBzaG91bGQgdXNlIGEgc21hcnQgcG9pbnRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5
Q2xpZW50cyk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OlByb2dyZXNzVHJhY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzU3RhcnRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OnByb2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyZXNzVHJhY2tlcjo6ZmluYWxQcm9ncmVzc0NvbXBsZXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NUcmFja2VyOjp+UHJvZ3Jlc3NUcmFja2VyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVz
c1RyYWNrZXI6OmNsaWVudCk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmln
dXJhdGlvbik6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDE5LTEy
LTAzICBEb3VnIEtlbGx5ICA8ZG91Z2tAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiB3
aGVuIGVuY291bnRlcmluZyBVX09USEVSX05FVVRSQUwgaW4gY3JlYXRlQmlkaVJ1bnNGb3JMaW5l
IGF0IGVuZCBvZiBydW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4NzljN2I4ZGJjMTMyYWIzNzEyMTc1NzU3Y2Nh
OTE1YWY5ZmMxNC4uNjNlOGI0MWIzOWFmYzNiMWY0ZWM5ZDg3YjlmYTE2NDc0ZGEwYzE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJD
bGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
cm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDMgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSAzIHNlY29uZCB0aW1lb3V0IGZvciB0
aGUgdmlldyBnZXN0dXJlIHNuYXBzaG90IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4
IDFlYzViMmRkNWY4OTE5M2ZhZmYzNWRmYjg1OWFmZGI2MmI2ZjEwNmYuLjE2NzczNGY4YzEyZTM0
N2ZmMDE3N2MwZDk2NjBjYWM2YTJiZmY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTktMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWdlQ29uZmlndXJhdGlvbjo6cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHNob3VsZCB1
c2UgYSBzbWFydCBwb2ludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ4NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOgorCiAyMDE5LTEyLTAyICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtBcHBsZVdpbl0gV2Vi
S2l0UXVhcnR6Q29yZUFkZGl0aW9ucy5kbGwgaXNuJ3QgY29tcGlsZWQgc2luY2UgcjI0ODQ0NApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgxN2Q5NjlkMTEwNDZiZWI2N2U1Njg3MzQ4
YTY3YjNkMzQ5ODQ5M2QuLjQxMjY0NzNjMzdmNDIwMmY0ZmFiZjBiMTVmMmI2ODdkNDIwYTNlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0xMi0w
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBhZ2VDb25maWd1
cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0IHBvaW50ZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50Ojpwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBp
bml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFt
ZTpdKToKKwogMjAxOS0xMi0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIHNldHRpbmcgZm9yIG1lZGlhIGluIHRoZSBHUFUg
cHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDlhNWEwMmExMWM4NTRjY2Zi
ZTVmOTVhZWNkNzIxYmU5ZDMzYWJjZjkuLjFiMWJhMzgwNGQ5ODRhY2YzMTVjODlkZGUxOTExMmVl
ZTE0Yzg1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxOS0xMi0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFBh
Z2VDb25maWd1cmF0aW9uOjpwcm9ncmVzc1RyYWNrZXJDbGllbnQgc2hvdWxkIHVzZSBhIHNtYXJ0
IHBvaW50ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZCk6Cisg
ICAgICAgIChXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzRXN0aW1hdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhG
cmFtZSk6CisKIDIwMTktMTItMDMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgV2ViIEFu
aW1hdGlvbnMgY29tcG9zaXRlIG9wZXJhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKaW5kZXggNWNlOWUxMWVjMGI2NjA1N2M1N2JkMzhkYjk1NmY0MGU3M2M5OGU2MC4u
NjAwZWY3YjZiYWM4NmNhNmY0YzE1YTFmY2YwNjE4OWFkOTg1OTM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU1Myw3ICs1NTMsOCBAQCBQYWdlQ29uZmlndXJh
dGlvbiBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogICAgICAgICBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCksCiAgICAgICAgIENh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgYWRvcHRSZWYoKm5ldyBFbXB0
eUJhY2tGb3J3YXJkQ2xpZW50KSwKLSAgICAgICAgQ29va2llSmFyOjpjcmVhdGUoYWRvcHRSZWYo
Km5ldyBFbXB0eVN0b3JhZ2VTZXNzaW9uUHJvdmlkZXIpKQorICAgICAgICBDb29raWVKYXI6OmNy
ZWF0ZShhZG9wdFJlZigqbmV3IEVtcHR5U3RvcmFnZVNlc3Npb25Qcm92aWRlcikpLAorICAgICAg
ICBtYWtlVW5pcXVlUmVmPEVtcHR5UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PigpCiAgICAgfTsKIAog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxFbXB0eUNocm9tZUNsaWVudD4gZHVtbXlDaHJvbWVD
bGllbnQ7CkBAIC01ODAsOSArNTgxLDYgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlGcmFtZUxvYWRlckNsaWVudD4gZHVtbXlGcmFtZUxvYWRl
ckNsaWVudDsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSAmZHVtbXlGcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKIAotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxFbXB0eVByb2dyZXNzVHJhY2tlckNsaWVudD4gZHVtbXlQcm9ncmVzc1RyYWNrZXJDbGll
bnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gJmR1bW15
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmdldCgpOwotCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPEVtcHR5RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQ+KCk7CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVhdGUoeyB9LCB7IH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAppbmRleCAyODE3YTc2NjY0NTdiMjM5NzNh
NjhmY2Y3YmMwMTgwYzEyYmY1Y2QzLi5lMjRmZGVkMjIyNWYxYzE5MThmNDU0MDE3NTY2NzE3ZTIw
NDg0ZWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcApAQCAt
NzcsMTYgKzc3LDEzIEBAIHB1YmxpYzoKIAogdW5zaWduZWQgbG9uZyBQcm9ncmVzc1RyYWNrZXI6
OnNfdW5pcXVlSWRlbnRpZmllciA9IDA7CiAKLVByb2dyZXNzVHJhY2tlcjo6UHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGllbnQoY2xpZW50
KQorUHJvZ3Jlc3NUcmFja2VyOjpQcm9ncmVzc1RyYWNrZXIoVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiBjbGllbnQpCisgICAgOiBtX2NsaWVudChXVEZNb3ZlKGNsaWVudCkpCiAg
ICAgLCBtX3Byb2dyZXNzSGVhcnRiZWF0VGltZXIoKnRoaXMsICZQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzSGVhcnRiZWF0VGltZXJGaXJlZCkKIHsKIH0KIAotUHJvZ3Jlc3NUcmFja2VyOjp+UHJv
Z3Jlc3NUcmFja2VyKCkKLXsKLSAgICBtX2NsaWVudC5wcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQo
KTsKLX0KK1Byb2dyZXNzVHJhY2tlcjo6flByb2dyZXNzVHJhY2tlcigpID0gZGVmYXVsdDsKIAog
ZG91YmxlIFByb2dyZXNzVHJhY2tlcjo6ZXN0aW1hdGVkUHJvZ3Jlc3MoKSBjb25zdAogewpAQCAt
MTE3LDcgKzExNCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIGZyYW1lKQogewogICAgIExPRyhQcm9ncmVzcywgIlByb2dyZXNzIHN0YXJ0ZWQgKCVwKSAt
IGZyYW1lICVwKFwiJXNcIiksIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAlZCwgb3JpZ2luYXRp
bmcgZnJhbWUgJXAiLCB0aGlzLCAmZnJhbWUsIGZyYW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSwgbV9wcm9ncmVzc1ZhbHVlLCBtX251bVByb2dyZXNzVHJhY2tl
ZEZyYW1lcywgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUuZ2V0KCkpOwogCi0gICAgbV9jbGll
bnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPndpbGxDaGFu
Z2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgaWYgKCFtX251bVByb2dyZXNzVHJhY2tlZEZy
YW1lcyB8fCBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSA9PSAmZnJhbWUpIHsKICAgICAgICAg
cmVzZXQoKTsKQEAgLTEzMywxMyArMTMwLDEzIEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpwcm9n
cmVzc1N0YXJ0ZWQoRnJhbWUmIGZyYW1lKQogICAgICAgICBzdGF0aWMgY29uc3QgYXV0byBzdWJm
cmFtZVBhcnRPZk1haW5Mb2FkVGhyZXNob2xkID0gMV9zOwogICAgICAgICBtX2lzTWFpbkxvYWQg
PSBpc01haW5GcmFtZSB8fCBlbGFwc2VkVGltZVNpbmNlTWFpbkxvYWRDb21wbGV0ZSA8IHN1YmZy
YW1lUGFydE9mTWFpbkxvYWRUaHJlc2hvbGQ7CiAKLSAgICAgICAgbV9jbGllbnQucHJvZ3Jlc3NT
dGFydGVkKCptX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7CisgICAgICAgIG1fY2xpZW50LT5w
cm9ncmVzc1N0YXJ0ZWQoKm1fb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKTsKICAgICB9CiAgICAg
bV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMrKzsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInByb2dyZXNzU3RhcnRlZDogZnJhbWUgJXAsIHZhbHVlICVmLCB0cmFja2VkIGZyYW1lcyAl
ZCwgb3JpZ2luYXRpbmcgZnJhbWUgJXAsIGlzTWFpbkxvYWQgJWQiLCAmZnJhbWUsIG1fcHJvZ3Jl
c3NWYWx1ZSwgbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMsIG1fb3JpZ2luYXRpbmdQcm9ncmVz
c0ZyYW1lLmdldCgpLCBtX2lzTWFpbkxvYWQpOwogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0
aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jl
c3MoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RhcnRlZExvYWRpbmco
ZnJhbWUpOwogfQogCkBAIC0xNTEsMTMgKzE0OCwxMyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6
cHJvZ3Jlc3NDb21wbGV0ZWQoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX251bVByb2dyZXNzVHJh
Y2tlZEZyYW1lcyA8PSAwKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+d2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCk7CiAKICAgICBtX251bVByb2dyZXNzVHJhY2tlZEZyYW1lcy0tOwogICAgIGlm
ICghbV9udW1Qcm9ncmVzc1RyYWNrZWRGcmFtZXMgfHwgbV9vcmlnaW5hdGluZ1Byb2dyZXNzRnJh
bWUgPT0gJmZyYW1lKQogICAgICAgICBmaW5hbFByb2dyZXNzQ29tcGxldGUoKTsKIAotICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgbV9jbGllbnQtPmRpZENo
YW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjpmaW5h
bFByb2dyZXNzQ29tcGxldGUoKQpAQCAtMTcxLDcgKzE2OCw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFj
a2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgIC8vIHdpdGggZmluYWwgcHJvZ3Jlc3Mg
dmFsdWUuCiAgICAgaWYgKCFtX2ZpbmFsUHJvZ3Jlc3NDaGFuZ2VkU2VudCkgewogICAgICAgICBt
X3Byb2dyZXNzVmFsdWUgPSAxOwotICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZCgqZnJhbWUpOworICAgICAgICBtX2NsaWVudC0+cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQo
KmZyYW1lKTsKICAgICB9CiAKICAgICByZXNldCgpOwpAQCAtMTgwLDcgKzE3Nyw3IEBAIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjpmaW5hbFByb2dyZXNzQ29tcGxldGUoKQogICAgICAgICBtX21haW5M
b2FkQ29tcGxldGlvblRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5zZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KHRydWUpOwotICAgIG1f
Y2xpZW50LnByb2dyZXNzRmluaXNoZWQoKmZyYW1lKTsKKyAgICBtX2NsaWVudC0+cHJvZ3Jlc3NG
aW5pc2hlZCgqZnJhbWUpOwogICAgIGZyYW1lLT5sb2FkZXIoKS5sb2FkUHJvZ3Jlc3NpbmdTdGF0
dXNDaGFuZ2VkKCk7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lU3RvcHBl
ZExvYWRpbmcoKmZyYW1lKTsKQEAgLTIxOSw3ICsyMTYsNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tl
cjo6aW5jcmVtZW50UHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCB1bnNpZ25lZCBi
eXRlcwogCiAgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lOwogCi0gICAgbV9jbGllbnQud2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCk7CisgICAg
bV9jbGllbnQtPndpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpOwogCiAgICAgZG91YmxlIGlu
Y3JlbWVudCwgcGVyY2VudE9mUmVtYWluaW5nQnl0ZXM7CiAgICAgbG9uZyBsb25nIHJlbWFpbmlu
Z0J5dGVzLCBlc3RpbWF0ZWRCeXRlc0ZvclBlbmRpbmdSZXF1ZXN0czsKQEAgLTI1OSwxNCArMjU2
LDE0IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIHVuc2lnbmVkIGJ5dGVzCiAgICAgICAgICAgICBpZiAobV9wcm9ncmVz
c1ZhbHVlID09IDEpCiAgICAgICAgICAgICAgICAgbV9maW5hbFByb2dyZXNzQ2hhbmdlZFNlbnQg
PSB0cnVlOwogCi0gICAgICAgICAgICBtX2NsaWVudC5wcm9ncmVzc0VzdGltYXRlQ2hhbmdlZCgq
ZnJhbWUpOworICAgICAgICAgICAgbV9jbGllbnQtPnByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKCpm
cmFtZSk7CiAKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NWYWx1ZSA9IG1fcHJv
Z3Jlc3NWYWx1ZTsKICAgICAgICAgICAgIG1fbGFzdE5vdGlmaWVkUHJvZ3Jlc3NUaW1lID0gbm93
OwogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9jbGllbnQuZGlkQ2hhbmdlRXN0aW1hdGVkUHJv
Z3Jlc3MoKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0K
IAogdm9pZCBQcm9ncmVzc1RyYWNrZXI6OmNvbXBsZXRlUHJvZ3Jlc3ModW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5oCmluZGV4IDQ0
NTQwNTFhZGQ5OGU1MjgxMThlNTgyYWY5OTRkNjgxNDMwMjVjYTEuLjQzM2M4ZDliMzc4MTNiZjVi
NWQwNjAzNTQxMjM5YjI1YmQ2N2EyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcm9ncmVzc1RyYWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyLmgKQEAgLTM5LDExICszOSwxNCBAQCBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CiBzdHJ1Y3QgUHJvZ3Jlc3NJdGVtOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFByb2dyZXNzVHJhY2tlcik7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3Jlc3NUcmFj
a2VyKFByb2dyZXNzVHJhY2tlckNsaWVudCYpOworICAgIGV4cGxpY2l0IFByb2dyZXNzVHJhY2tl
cihVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmKTsKICAgICB+UHJvZ3Jlc3NUcmFj
a2VyKCk7CiAKKyAgICBQcm9ncmVzc1RyYWNrZXJDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1f
Y2xpZW50LmdldCgpOyB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBjcmVhdGVVbmlxdWVJ
ZGVudGlmaWVyKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZXN0aW1hdGVkUHJvZ3Jl
c3MoKSBjb25zdDsKQEAgLTY5LDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyB1bnNp
Z25lZCBsb25nIHNfdW5pcXVlSWRlbnRpZmllcjsKIAotICAgIFByb2dyZXNzVHJhY2tlckNsaWVu
dCYgbV9jbGllbnQ7CisgICAgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4gbV9jbGll
bnQ7CiAgICAgUmVmUHRyPEZyYW1lPiBtX29yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZTsKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc0l0ZW0+PiBtX3By
b2dyZXNzSXRlbXM7CiAgICAgVGltZXIgbV9wcm9ncmVzc0hlYXJ0YmVhdFRpbWVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IDMwZGUyNjU0
NjNiNDBjOGY5YjRiYzA1ZTM1NzhkYzllNmQ3MTIyMWQuLjM2MmZjYzQ4ODIxMzk0OTQxM2JiNjkw
NjBjOGVhMTJiNDg2NzlkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcm9n
cmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmgKQEAgLTMwLDExICszMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEZyYW1lOwogCiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgewotcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgflByb2dyZXNzVHJhY2tlckNsaWVudCgpID0gZGVmYXVsdDsKLQorICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVz
c1RyYWNrZXJEZXN0cm95ZWQoKSB7IH0KKyAgICB2aXJ0dWFsIH5Qcm9ncmVzc1RyYWNrZXJDbGll
bnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFBy
b2dyZXNzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNz
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjBiNWZiYjYyNDAwMjQ5MTMyYzliMDQ5MDg2
YTkzMTNmMjgxNmM2Li43ZjBlMDBkZDI4ZGQ5ZjlhMTQwNDA2NzY0NmY0NjA1YTkyNGNlNTczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3BvaW50ZXJMb2NrQ29udHJv
bGxlcihtYWtlVW5pcXVlPFBvaW50ZXJMb2NrQ29udHJvbGxlcj4oKnRoaXMpKQogI2VuZGlmCiAg
ICAgLCBtX3NldHRpbmdzKFNldHRpbmdzOjpjcmVhdGUodGhpcykpCi0gICAgLCBtX3Byb2dyZXNz
KG1ha2VVbmlxdWU8UHJvZ3Jlc3NUcmFja2VyPigqcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NU
cmFja2VyQ2xpZW50KSkKKyAgICAsIG1fcHJvZ3Jlc3MobWFrZVVuaXF1ZTxQcm9ncmVzc1RyYWNr
ZXI+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50KSkpCiAg
ICAgLCBtX2JhY2tGb3J3YXJkQ29udHJvbGxlcihtYWtlVW5pcXVlPEJhY2tGb3J3YXJkQ29udHJv
bGxlcj4oKnRoaXMsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYmFja0ZvcndhcmRDbGllbnQp
KSkKICAgICAsIG1fbWFpbkZyYW1lKEZyYW1lOjpjcmVhdGUodGhpcywgbnVsbHB0ciwgcGFnZUNv
bmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lKSkKICAgICAsIG1fZWRpdG9yQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZWRpdG9yQ2xpZW50KSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMmQzM2Q3NjMxOTNmNGYxNWYwODFk
OWI0OWE4ZmFhOTZiNTJkMzliNS4uYTY5OGRhZTYyN2VkYjdlN2ZjOWM3MDVmMjMwNmM5YjU2NTM4
NjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIlBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9Qcm92aWRlci5o
IgorI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MSwxMSArNTIsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNs
aWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92
aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJh
Y2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphcikKK1BhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVK
YXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dy
ZXNzVHJhY2tlckNsaWVudCkKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBlZGl0
b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJvdmlkZXIoV1RG
TW92ZShzb2NrZXRQcm92aWRlcikpCiAgICAgLCBsaWJXZWJSVENQcm92aWRlcihXVEZNb3ZlKGxp
YldlYlJUQ1Byb3ZpZGVyKSkKKyAgICAsIHByb2dyZXNzVHJhY2tlckNsaWVudChXVEZNb3ZlKHBy
b2dyZXNzVHJhY2tlckNsaWVudCkpCiAgICAgLCBiYWNrRm9yd2FyZENsaWVudChXVEZNb3ZlKGJh
Y2tGb3J3YXJkQ2xpZW50KSkKICAgICAsIGNvb2tpZUphcihXVEZNb3ZlKGNvb2tpZUphcikpCiAg
ICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hlU3RvcmFnZVByb3ZpZGVyKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA2MDZkNjM4YmM4OWMx
M2VjNWQwZGI4Yjc4NWRlYzU4NjU0NjYyZTYxLi4wOTI4YzNjZTI2MjUxODgxZjQzMmExYzc4MmIy
NjBjYjU2MTgxOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBA
IC02OCw3ICs2OCw3IEBAIGNsYXNzIFNwZWVjaFN5bnRoZXNpc0NsaWVudDsKIGNsYXNzIFBhZ2VD
b25maWd1cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlv
bik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50
PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4m
JiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYs
IFJlZjxDb29raWVKYXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9u
KFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJv
dmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFn
ZVByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1
cmF0aW9uJiYpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBVbmlxdWVSZWY8TGli
V2ViUlRDUHJvdmlkZXI+IGxpYldlYlJUQ1Byb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBsdWdJbkNsaWVudD4gcGx1Z0luQ2xpZW50OwotICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCog
cHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsgbnVsbHB0ciB9OworICAgIFVuaXF1ZVJlZjxQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+IHByb2dyZXNzVHJhY2tlckNsaWVudDsKICAgICBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+IGJhY2tGb3J3YXJkQ2xpZW50OwogICAgIFJlZjxDb29raWVKYXI+IGNvb2tpZUph
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcApp
bmRleCBhZjkyYjZkMjE2MjAzNTBiYzczYzQ0MTdkYjhlMWE3YzczMmNkMjU1Li5iODI3N2E2Y2Q5
ZTM5ODc3YmZkNmFlYmFkMmY4NWMxNGU5YzQ2ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NU
cmFja2VyQ2xpZW50LmNwcApAQCAtMzksMTIgKzM5LDcgQEAgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50OjpXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoV2ViUGFnZSYgd2ViUGFnZSkKICAgICA6IG1f
d2ViUGFnZSh3ZWJQYWdlKQogewogfQotICAgIAotdm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0g
ICAgCisKIHZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoRnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKIHsKICAgICBpZiAoIW9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZS5pc01haW5GcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVu
dC5oCmluZGV4IDYzZDc3NGU1YTk0MjdjNzM1YjUyNDkwYmQwMWNkNzlhYjc0YTEwZTkuLjExNDgy
ZWVhN2E3Yjk0MjU1NGRlNWE0MjdhZjYyMzY1MWYyNjViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50LmgKQEAgLTM4LDggKzM4LDYgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudChXZWJQYWdlJik7CiAgICAgCiBwcml2YXRlOgotICAg
IHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0KICAgICB2b2lkIHBy
b2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
JiBvcmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZ3Jlc3NG
aW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
NmVmOGU0NWQyODVmYWVhNGJhMDFlNjlkNDQwOTM0ZjIyNjljNDYzYi4uMzVjZGY0OTM3MmE0MWQz
OTg0NGExOWM0ZGU3MmYwYzkwNjNmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ0OSw3ICs0NDksOCBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcj4o
KSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KSwKICAgICAgICAgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmNyZWF0ZSgqdGhpcyksCi0gICAg
ICAgIFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkKKyAgICAgICAgV2ViQ29va2llSmFyOjpjcmVhdGUo
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ+KCp0aGlz
KQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNo
cm9tZUNsaWVudCgqdGhpcyk7CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC00NjUsNyAr
NDY2LDYgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
cGx1Z0luQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQbHVnSW5DbGllbnQ+KCp0aGlzKTsKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVM
b2FkZXJDbGllbnQ7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50
ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtYWtlVW5pcXVlPFdlYkRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50PigqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ+KCp0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9ybVdpbi5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggNWZhMGU3Njhh
NzgyMDQyZTQ3MjdlZDQ4YjBlYjZmMjEwNzg5ZGU2Zi4uMTMzOGM4NTIzOGRlMTVhZWFmOTk0Mzk3
NDkyYmRjOGNjNzJhNTUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9QbGF0Zm9y
bVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1BsYXRmb3JtV2luLmNtYWtlCkBA
IC0yMzEsNiArMjMxLDggQEAgbGlzdChBUFBFTkQgV2ViS2l0TGVnYWN5X1NPVVJDRVNfV2ViQ29y
ZVN1cHBvcnQKICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgK
ICAgICB3aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAogICAgIHdp
bi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorICAgIHdpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuY3BwCisgICAgd2luL1dlYkNvcmVTdXBw
b3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlZpc2l0ZWRMaW5rU3RvcmUuY3BwCiAgICAgd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRM
aW5rU3RvcmUuaAogKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAppbmRleCBjMzhi
NDYwNjc0YzQxNzk0MDNmOWI3ZDEyZDgyNDFhOTJmOTk4MzFkLi4yMzExZTM5YWZjZmZkNGQ0N2Y0
ZGU4YjM1NWUyZDI5YmQ1MmJkYmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aApAQCAtMzUsOCArMzUsNiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50KFdlYlZpZXcqKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHByb2dyZXNzVHJhY2tl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jl
c3NUcmFja2VyQ2xpZW50Lm1tCmluZGV4IGUyMzc0NzNhYWIzOWQ2NzJkYzA5MGNlZTkwNTk5OTMw
ZWI4MDUzOGYuLmNjMzhlZjE2MWU3NTNkNTE5MTY0ZmVkMzBkZDU4NzY1MTgwOGJmMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNz
VHJhY2tlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQubW0KQEAgLTM5LDExICszOSw2IEBAIFdlYlBy
b2dyZXNzVHJhY2tlckNsaWVudDo6V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KFdlYlZpZXcgKndl
YlZpZXcpCiB7CiB9CiAKLXZvaWQgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCiB2b2lkIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudDo6d2lsbENoYW5nZUVz
dGltYXRlZFByb2dyZXNzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBiZGRkZmU0OTA4Njk3NjQ0YWQxZjU5MWU3NDUzZDhmNTQ5OTA0NjQ5Li42
NTEyZjBjYzhhYmU0NDEwN2Y5MTE0MzkwNjA4YjkxMTM3MTIxODU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNDM3LDcgKzE0MzcsOCBAQCAtICh2
b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVO
YW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlKCksCiAgICAgICAgIFdlYkNvcmU6OkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUo
KSwKICAgICAgICAgQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoc2VsZiksCi0gICAgICAgIFdlYkNv
cmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpCisgICAgICAg
IFdlYkNvcmU6OkNvb2tpZUphcjo6Y3JlYXRlKHN0b3JhZ2VQcm92aWRlci5jb3B5UmVmKCkpLAor
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlByb2dyZXNzVHJhY2tlckNsaWVudD4oc2VsZikKICAg
ICApOwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmNo
cm9tZUNsaWVudCA9IG5ldyBXZWJDaHJvbWVDbGllbnQoc2VsZik7CkBAIC0xNDYwLDcgKzE0NjEs
NiBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5n
ICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYWx0
ZXJuYXRpdmVUZXh0Q2xpZW50ID0gbWFrZVVuaXF1ZTxXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQ+
KHNlbGYpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudDsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5wcm9ncmVz
c1RyYWNrZXJDbGllbnQgPSBuZXcgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50KHNlbGYpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlID0gJndlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRl
ciA9ICZXZWJEYXRhYmFzZVByb3ZpZGVyOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ29uZmlndXJh
dGlvbi5wbHVnaW5JbmZvUHJvdmlkZXIgPSAmV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpzaW5nbGV0
b24oKTsKQEAgLTE3MDYsNyArMTcwNiw4IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUoKSwKICAgICAgICAgV2ViQ29y
ZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAgICBCYWNrRm9yd2FyZExp
c3Q6OmNyZWF0ZShzZWxmKSwKLSAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVhdGUoc3Rv
cmFnZVByb3ZpZGVyLmNvcHlSZWYoKSkKKyAgICAgICAgV2ViQ29yZTo6Q29va2llSmFyOjpjcmVh
dGUoc3RvcmFnZVByb3ZpZGVyLmNvcHlSZWYoKSksCisgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PihzZWxmKQogICAgICk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uY2hyb21lQ2xpZW50ID0gbmV3IFdlYkNocm9tZUNsaWVudElPUyhzZWxmKTsKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpAQCAtMTcxOSw3ICsxNzIwLDYgQEAgLSAoaWQpaW5pdFNpbXBsZUhU
TUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1l
IHByZWYKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDb25maWd1
cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZVN0b3JhZ2Ug
PSAmd2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5k
YXRhYmFzZVByb3ZpZGVyID0gJldlYkRhdGFiYXNlUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciA9ICZfcHJpdmF0ZS0+
Z3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGI1ODdjZjkxNWIxNDIwZGZjZDkzOGE2ZDU5MmM4OGFlMTlhZDhkZDUuLmVl
YWU3NDE2Y2RjOTNmMjZmYjMxMjQwMDg2OWIyM2MwNDczZjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTY0MywyNyArNjQzLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6c2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUUKICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0g
ICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9IFN5c0FsbG9jU3RyaW5nKFdlYlZp
ZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOwotICAgIElXZWJOb3RpZmljYXRpb25DZW50
ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlcklu
dGVybmFsKCk7Ci0gICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVz
c1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXco
KSksIDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSYpCi17Ci0gICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NFc3Rp
bWF0ZUNoYW5nZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dyZXNzRXN0aW1hdGVD
aGFuZ2VkTm90aWZpY2F0aW9uKTsKLSAgICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlD
ZW50ZXIgPSBXZWJOb3RpZmljYXRpb25DZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwot
ICAgIG5vdGlmeUNlbnRlci0+cG9zdE5vdGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NFc3RpbWF0ZUNo
YW5nZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+KG1fd2ViRnJhbWUtPndlYlZpZXcoKSks
IDApOwotfQotCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm9ncmVzc0ZpbmlzaGVkKFdl
YkNvcmU6OkZyYW1lJikKLXsKLSAgICBzdGF0aWMgQlNUUiBwcm9ncmVzc0ZpbmlzaGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKTsKLSAg
ICBJV2ViTm90aWZpY2F0aW9uQ2VudGVyKiBub3RpZnlDZW50ZXIgPSBXZWJOb3RpZmljYXRpb25D
ZW50ZXI6OmRlZmF1bHRDZW50ZXJJbnRlcm5hbCgpOwotICAgIG5vdGlmeUNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWUocHJvZ3Jlc3NGaW5pc2hlZE5hbWUsIHN0YXRpY19jYXN0PElXZWJWaWV3
Kj4obV93ZWJGcmFtZS0+d2ViVmlldygpKSwgMCk7Ci19Ci0KIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIC8qIHN1Z2dlc3RlZE5hbWUgKi8pCiB7CiAgICAgbV93ZWJGcmFtZS0+d2ViVmll
dygpLT5kb3dubG9hZFVSTChyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDY3NmE4ZDYxYzUzODkwYjk5YTRlNDQ3NzgwZTVmYWQwYzkyOTI2ODEuLmNjODY5MzIx
MWJkYjQ5OTg2MzZhNjMzNzEyZDA4NTNiYmEwNWM3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtNDEsOSArNDEsOSBAQCBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXI7CiBjbGFzcyBXZWJIaXN0b3J5OwogCi1jbGFzcyBXZWJGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6
OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgV2ViRnJhbWVM
b2FkZXJDbGllbnQoV2ViRnJhbWUqID0gMCk7CisgICAgV2ViRnJhbWVMb2FkZXJDbGllbnQoV2Vi
RnJhbWUqID0gbnVsbHB0cik7CiAgICAgfldlYkZyYW1lTG9hZGVyQ2xpZW50KCk7CiAKICAgICB2
b2lkIHNldFdlYkZyYW1lKFdlYkZyYW1lKiB3ZWJGcmFtZSkgeyBtX3dlYkZyYW1lID0gd2ViRnJh
bWU7IH0KQEAgLTEyMCwxMCArMTIwLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydERvd25s
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2Vz
dGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcHJvZ3Jlc3NTdGFydGVk
KFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvZ3Jlc3NGaW5pc2hl
ZChXZWJDb3JlOjpGcmFtZSYpIG92ZXJyaWRlOwotCiAgICAgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmNGFj
YzQ3MTI2NzE5YmJkZDczZjY4MWQ4N2ZhNjZlMTgyNzE2NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCIKKworI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNlbnRlci5oIgorI2luY2x1ZGUgIldlYlZp
ZXcuaCIKKwordm9pZCBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzU3RhcnRlZChX
ZWJDb3JlOjpGcmFtZSYpCit7CisgICAgc3RhdGljIEJTVFIgcHJvZ3Jlc3NTdGFydGVkTmFtZSA9
IFN5c0FsbG9jU3RyaW5nKFdlYlZpZXdQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOworICAg
IElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5vdGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNl
bnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFsKCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90
aWZpY2F0aW9uTmFtZShwcm9ncmVzc1N0YXJ0ZWROYW1lLCBzdGF0aWNfY2FzdDxJV2ViVmlldyo+
KG1fd2ViRnJhbWUtPndlYlZpZXcoKSksIDApOworfQorCit2b2lkIFdlYlByb2dyZXNzVHJhY2tl
ckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAg
IHN0YXRpYyBCU1RSIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSA9IFN5c0FsbG9jU3RyaW5n
KFdlYlZpZXdQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik7CisgICAgSVdlYk5v
dGlmaWNhdGlvbkNlbnRlciogbm90aWZ5Q2VudGVyID0gV2ViTm90aWZpY2F0aW9uQ2VudGVyOjpk
ZWZhdWx0Q2VudGVySW50ZXJuYWwoKTsKKyAgICBub3RpZnlDZW50ZXItPnBvc3ROb3RpZmljYXRp
b25OYW1lKHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcq
PihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAwKTsKK30KKwordm9pZCBXZWJQcm9ncmVzc1RyYWNr
ZXJDbGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKQoreworICAgIHN0YXRp
YyBCU1RSIHByb2dyZXNzRmluaXNoZWROYW1lID0gU3lzQWxsb2NTdHJpbmcoV2ViVmlld1Byb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb24pOworICAgIElXZWJOb3RpZmljYXRpb25DZW50ZXIqIG5v
dGlmeUNlbnRlciA9IFdlYk5vdGlmaWNhdGlvbkNlbnRlcjo6ZGVmYXVsdENlbnRlckludGVybmFs
KCk7CisgICAgbm90aWZ5Q2VudGVyLT5wb3N0Tm90aWZpY2F0aW9uTmFtZShwcm9ncmVzc0Zpbmlz
aGVkTmFtZSwgc3RhdGljX2Nhc3Q8SVdlYlZpZXcqPihtX3dlYkZyYW1lLT53ZWJWaWV3KCkpLCAw
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUwMWNm
YjI3ZTUwZTZjMDFlYjgyZjY3MjQ4MzliMjZjMGI3NDQwMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNs
aWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZyYW1l
OworfQorCitjbGFzcyBXZWJGcmFtZTsKKworY2xhc3MgV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlByb2dyZXNzVHJhY2tlckNsaWVudCB7CitwdWJsaWM6
CisgICAgdm9pZCBzZXRXZWJGcmFtZShXZWJGcmFtZSogd2ViRnJhbWUpIHsgbV93ZWJGcmFtZSA9
IHdlYkZyYW1lOyB9CisKKyAgICB2b2lkIHByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOworICAgIHZvaWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUm
KSBmaW5hbDsKKyAgICB2b2lkIHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKSBmaW5h
bDsKKworcHJpdmF0ZToKKyAgICBXZWJGcmFtZSogbV93ZWJGcmFtZSB7IG51bGxwdHIgfTsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdlYzRmZjExYTY5MjRkNjBmZGE0
OGJjODIyNzQzZjkzZTE0M2NkMjMuLjYwMTQ0ODE1YWVhODY5OWM5MWE4OWJkMWRmMTlhMGJjYTI4
YWI2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC02NCw2ICs2NCw3IEBA
CiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKyNpbmNsdWRlICJX
ZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRXb3JsZC5oIgogI2luY2x1ZGUgIldlYlN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtMzExOSw3ICszMTIwLDggQEAgSFJFU1VMVCBXZWJW
aWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8g
QlNUUiBncm91cE4KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4oKSwK
ICAgICAgICAgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpLAogICAgICAg
ICBCYWNrRm9yd2FyZExpc3Q6OmNyZWF0ZSgpLAotICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShz
dG9yYWdlUHJvdmlkZXIuY29weVJlZigpKQorICAgICAgICBDb29raWVKYXI6OmNyZWF0ZShzdG9y
YWdlUHJvdmlkZXIuY29weVJlZigpKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJQcm9ncmVz
c1RyYWNrZXJDbGllbnQ+KCkKICAgICApOwogICAgIGNvbmZpZ3VyYXRpb24uY2hyb21lQ2xpZW50
ID0gbmV3IFdlYkNocm9tZUNsaWVudCh0aGlzKTsKICAgICBjb25maWd1cmF0aW9uLmNvbnRleHRN
ZW51Q2xpZW50ID0gbmV3IFdlYkNvbnRleHRNZW51Q2xpZW50KHRoaXMpOwpAQCAtMzEyOSw3ICsz
MTMxLDYgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8g
QlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICBjb25maWd1cmF0aW9uLmFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlID0gJldlYkFwcGxpY2F0aW9uQ2FjaGU6OnN0b3JhZ2UoKTsKICAg
ICBjb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSAmV2ViRGF0YWJhc2VQcm92aWRlcjo6
c2luZ2xldG9uKCk7CiAgICAgY29uZmlndXJhdGlvbi5zdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIg
PSAmbV93ZWJWaWV3R3JvdXAtPnN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcigpOwotICAgIGNvbmZp
Z3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQqPihjb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSk7CiAgICAg
Y29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gJm1fd2ViVmlld0dyb3VwLT51c2Vy
Q29udGVudENvbnRyb2xsZXIoKTsKICAgICBjb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUg
PSAmbV93ZWJWaWV3R3JvdXAtPnZpc2l0ZWRMaW5rU3RvcmUoKTsKICAgICBjb25maWd1cmF0aW9u
LnBsdWdpbkluZm9Qcm92aWRlciA9ICZXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnNpbmdsZXRvbigp
OwpAQCAtMzE0OSw2ICszMTUwLDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJF
Q1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6Y3JlYXRlSW5zdGFuY2UoKTsKICAgICB3ZWJGcmFt
ZS0+aW5pdFdpdGhXZWJWaWV3KHRoaXMsIG1fcGFnZSk7CiAgICAgc3RhdGljX2Nhc3Q8V2ViRnJh
bWVMb2FkZXJDbGllbnQmPihtX3BhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKS5z
ZXRXZWJGcmFtZSh3ZWJGcmFtZSk7CisgICAgc3RhdGljX2Nhc3Q8V2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50Jj4obV9wYWdlLT5wcm9ncmVzcygpLmNsaWVudCgpKS5zZXRXZWJGcmFtZSh3ZWJGcmFt
ZSk7CiAgICAgbV9tYWluRnJhbWUgPSB3ZWJGcmFtZTsKICAgICB3ZWJGcmFtZS0+UmVsZWFzZSgp
OyAvLyBUaGUgV2ViRnJhbWUgaXMgb3duZWQgYnkgdGhlIEZyYW1lLCBzbyByZWxlYXNlIG91ciBy
ZWZlcmVuY2UgdG8gaXQuCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>