<?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>238344</bug_id>
          
          <creation_ts>2022-03-24 12:52:19 -0700</creation_ts>
          <short_desc>FileSystem::pathByAppendingComponent() should take in StringViews instead of Strings</short_desc>
          <delta_ts>2022-03-25 08:55:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854819</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 12:52:19 -0700</bug_when>
    <thetext>FileSystem::pathByAppendingComponent() should take in StringViews instead of Strings, to avoid unnecessary String constructor in many instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854827</commentid>
    <comment_count>1</comment_count>
      <attachid>455671</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 13:31:26 -0700</bug_when>
    <thetext>Created attachment 455671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854830</commentid>
    <comment_count>2</comment_count>
      <attachid>455673</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 13:37:16 -0700</bug_when>
    <thetext>Created attachment 455673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854844</commentid>
    <comment_count>3</comment_count>
      <attachid>455678</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 14:04:20 -0700</bug_when>
    <thetext>Created attachment 455678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854907</commentid>
    <comment_count>4</comment_count>
      <attachid>455678</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-24 16:08:46 -0700</bug_when>
    <thetext>Comment on attachment 455678
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854954</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-24 17:17:17 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 455678 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854968</commentid>
    <comment_count>6</comment_count>
      <attachid>455714</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 17:48:41 -0700</bug_when>
    <thetext>Created attachment 455714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854987</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-24 19:06:21 -0700</bug_when>
    <thetext>Committed r291842 (248856@main): &lt;https://commits.webkit.org/248856@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455714.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854988</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-24 19:07:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/90811502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855106</commentid>
    <comment_count>9</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-03-25 08:55:50 -0700</bug_when>
    <thetext>Committed r291854 (248866@trunk): &lt;https://commits.webkit.org/248866@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455671</attachid>
            <date>2022-03-24 13:31:26 -0700</date>
            <delta_ts>2022-03-24 13:37:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238344-20220324133125.patch</filename>
            <type>text/plain</type>
            <size>36072</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YjA2ZjEwMTFiZmE1MDY1NDMzYThiY2JkYzYyY2QwZTQwZWU5MzRmLi43YzAyZTI2YWFjM2FhZWRi
NzQxNTg1OTJmYmJiODdhNDAxNzRjNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0
YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2MuY3BwOgorCiAyMDIyLTAzLTI0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3Mgc3RhcnRz
V2l0aCgpIC8gZW5kc1dpdGgoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1Zp
ZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2ODVkN2JiYTFiNzI2ZjEyYWFhNzRjZGYxZDc1
YzA2OWVlMTUxN2Y3Li4wOTMzNTEwYmI1NjBlZGYyMGRiZWFkNjBmMzM1Y2I5ZTAxNDQyY2QxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkg
c2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9m
IFN0cmluZ3MsIHRvIGF2b2lkCisgICAgICAgIHVubmVjZXNzYXJ5IFN0cmluZyBjb25zdHJ1Y3Rv
ciBpbiBtYW55IGluc3RhbmNlcy4KKworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCk6Cisg
ICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiB3dGYvcG9zaXgvRmlsZVN5c3Rl
bVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTdHJpbmcncyBzdGFydHNXaXRoKCkgLyBlbmRzV2l0aCgpIC8gcmVwbGFj
ZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggODYzYjcwZGVmMzk3YzJkZTUxYmJmZmM4N2I5M2NjYWM1Nzc5OGMzYS4uNzJiZWQx
ZWU4N2JlZmE5ZmE4ZTRhNWE1ZTM1MWFlM2Q5ZDQwMmE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
SWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5k
VmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tV
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFkZWRE
YXRhYmFzZURpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5M
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2tGaWxlTmFtZUZvclBhdGgpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnNldFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBzdGFydHNXaXRoKCkg
LyBlbmRzV2l0aCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0
ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5NGMzYWZhNzI0M2NmMWNhZGU4MTA1YTY2ZGZk
MzdmOWQxNjg3ZDMuLjc3YzhjODQ1MGUyNTQxN2QxMGNiMzkyMzUwZDY4ZWZjMDllMzJhYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODM0NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6c3RvcmFnZVBhdGgpOgorICAgICAgICAo
V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpjYWNoZXNMaXN0RmlsZW5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpDYWNoZVN0b3JhZ2U6OmNhY2hlc09yaWdpbkZpbGVuYW1lKToKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpDYWNoZXM6OmNhY2hlc1NpemVGaWxlbmFtZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkJsb2JTdG9yYWdlOjpibG9iUGF0aEZvckhhc2ggY29u
c3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om1ha2VDYWNoZVBhdGgpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJREJTdG9yYWdlTWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9y
eSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVzb3VyY2VV
UkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yUmVzb3VyY2VV
UkxTY2hlbWVIYW5kbGVyOjpwbGF0Zm9ybVN0YXJ0VGFzayk6CisKIDIwMjItMDMtMjQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyBy
ZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0
ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMWIwNjAzZTYw
ODc2NTU4NTcxZjYxY2UzYzMxNTQ4NzFkNDBkNTRmMS4uYTJjN2QxODc5Y2YzZDcwODUwZTliOGM2
MmVhZjM1YmZkMjliYjQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5t
bToKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eVBhdGgpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwogMjAy
Mi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmlu
ZydzIHN0YXJ0c1dpdGgoKSAvIGVuZHNXaXRoKCkgLyByZXBsYWNlKCkgc2hvdWxkIHRha2UgaW4g
YSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
YmQyZWI4MTJjNmMzN2VkNTJlZGM2M2I5MjY3ZmNiY2E5ODE1OTRhMy4uMTI2MzY5Y2FiMDcwZGEy
MWU2NDhiOGI1ZWVkOWFkNjcxMjFlYmVkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTEwOTYs
NyArMTA5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBj
b25zdCBjaGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRoKCk7CiAgICAgICAg
IFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVTeXN0
ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3JpZ2lu
KCkudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSkpOwotICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0cmluZyB7IGNhY2hlUGF0aCB9LCBtYWtlU3RyaW5n
KHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVjb2RlLWNh
Y2hlIikpOworICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGNhY2hlUGF0aCwgbWFrZVN0cmluZyhzb3VyY2UoKS50b1N0cmluZygpLmhhc2goKSwgJy0n
LCBmaWxlbmFtZSwgIi5ieXRlY29kZS1jYWNoZSIpKTsKICAgICB9CiAKICAgICB2b2lkIGxvYWRC
eXRlY29kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNw
cCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGQ1YzIyNDk4MmRhOTI5MGY1
M2NlNzBhMDQ4Y2I0MjcxYTJjNDljMTAuLjcxZTRkY2ZhNWNkNjk0MTdkYmVjY2NjOWNhY2FlOGYx
NTQ4NWFkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC04MjEsNyArODIxLDcgQEAgYm9vbCBt
YWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiAhZWM7CiB9
CiAKLVN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBj
b25zdCBTdHJpbmcmIGNvbXBvbmVudCkKK1N0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
U3RyaW5nVmlldyBwYXRoLCBTdHJpbmdWaWV3IGNvbXBvbmVudCkKIHsKICAgICByZXR1cm4gZnJv
bVN0ZEZpbGVTeXN0ZW1QYXRoKHRvU3RkRmlsZVN5c3RlbVBhdGgocGF0aCkgLyB0b1N0ZEZpbGVT
eXN0ZW1QYXRoKGNvbXBvbmVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmls
ZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmluZGV4IDk5NTFhNGIxNGMw
YmY5NDFhZTBmYjY3YzA2ZDQzMjMwNmI1Y2YwM2QuLjQyZWZiYzQzNmNmM2FiM2M3M2ZjNGU5N2Y5
YjQwNzkwYTFhZWNiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBXVEZf
RVhQT1JUX1BSSVZBVEUgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZmlsZU1vZGlmaWNhdGlvblRp
bWUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB1cGRhdGVGaWxlTW9k
aWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpOyAvLyBTZXRzIG1vZGlmaWNhdGlvbiB0
aW1lIHRvIG5vdy4KIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBm
aWxlQ3JlYXRpb25UaW1lKGNvbnN0IFN0cmluZyYpOyAvLyBOb3QgYWxsIHBsYXRmb3JtcyBzdG9y
ZSBmaWxlIGNyZWF0aW9uIHRpbWUuCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0hpZGRlbkZp
bGUoY29uc3QgU3RyaW5nJik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50
KTsKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0
cmluZ1ZpZXcgcGF0aCwgU3RyaW5nVmlldyBjb21wb25lbnQpOwogV1RGX0VYUE9SVF9QUklWQVRF
IFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcgcGF0aCwgY29uc3Qg
VmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wb25lbnRzKTsKIFdURl9FWFBPUlRfUFJJVkFURSBTdHJp
bmcgbGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChjb25zdCBTdHJpbmcm
IHBhdGgpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0
IFN0cmluZyYgcGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lz
dGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApp
bmRleCBiNzQ5Y2IxOTM2Y2YyZmZlNjA3MjYxM2RkOWM0ZWY1MDhmZDVkMjIzLi4zZTY3NjliNmM1
ZjFlNGEzOWYyMTZkYTI5MzRkOWQ3MGY2OGZmNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0Zp
bGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTI5OCwxMSArMjk4LDExIEBAIGJvb2wgbWFrZUFsbERpcmVj
dG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3RyaW5n
IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29tcG9uZW50KQorU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChTdHJpbmdWaWV3
IHBhdGgsIFN0cmluZ1ZpZXcgY29tcG9uZW50KQogewogICAgIGlmIChwYXRoLmVuZHNXaXRoKCcv
JykpCi0gICAgICAgIHJldHVybiBwYXRoICsgY29tcG9uZW50OwotICAgIHJldHVybiBwYXRoICsg
Ii8iICsgY29tcG9uZW50OworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhwYXRoLCBjb21wb25l
bnQpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHBhdGgsICcvJywgY29tcG9uZW50KTsKIH0KIAog
U3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBW
ZWN0b3I8U3RyaW5nVmlldz4mIGNvbXBvbmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcAppbmRleCBk
OGY4NTY3NGNkMTEwYjMxMDlmNmE5ZTQ4Zjc5YzZkN2ZmNWI0M2Q0Li45NTZjZDlhYmMxMjQwYzA1
MWY5NjRmMTZhNTliMjY4MzFhZTU5ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKQEAgLTYwLDE0
ICs2MCwxNCBAQCBJREJEYXRhYmFzZUlkZW50aWZpZXIgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpp
c29sYXRlZENvcHkoKSAmJgogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi1TdHJpbmcgSURC
RGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0
IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSBjb25z
dAorU3RyaW5nIElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2
ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9u
U3RyaW5nKSBjb25zdAogewogICAgIHJldHVybiBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9S
b290KG1fb3JpZ2luLCByb290RGlyZWN0b3J5LCB2ZXJzaW9uU3RyaW5nKTsKIH0KIAotU3RyaW5n
IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChj
b25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBj
b25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCitTdHJpbmcgSURCRGF0YWJhc2VJZGVudGlmaWVy
OjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9uU3Ry
aW5nKQogewotICAgIFN0cmluZyB2ZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHJvb3REaXJlY3RvcnksIHZlcnNpb25TdHJpbmcpOworICAgIFN0
cmluZyB2ZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHJvb3REaXJlY3RvcnksIFN0cmluZ1ZpZXcgeyB2ZXJzaW9uU3RyaW5nIH0pOwogICAgIFN0
cmluZyBtYWluRnJhbWVEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQodmVyc2lvbkRpcmVjdG9yeSwgb3JpZ2luLnRvcE9yaWdpbi5kYXRhYmFzZUlkZW50aWZp
ZXIoKSk7CiAKICAgICAvLyBJZiB0aGUgb3BlbmluZyBvcmlnaW4gYW5kIG1haW4gZnJhbWUgb3Jp
Z2lucyBhcmUgdGhlIHNhbWUsIHRoZXJlIGlzIG5vIHBhcnRpdGlvbmluZy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgKaW5kZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4uNjM4ZTFm
MGI2YjVlMmQwNThkOTlmZGY5YThmZDgwMTg0MTU3YzYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKQEAg
LTcwLDggKzcwLDggQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKCkg
Y29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcm
IHZlcnNpb25TdHJpbmc9InYxIikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0
cmluZyBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IENsaWVudE9yaWdpbiYs
IGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5n
KTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJp
bmcmIHJvb3REaXJlY3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9uU3RyaW5nID0gInYxIl9zKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiByb290RGly
ZWN0b3J5LCBBU0NJSUxpdGVyYWwgdmVyc2lvblN0cmluZyk7CiAKICAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SURCRGF0YWJhc2VJZGVudGlmaWVyPiBk
ZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCA3N2RmNjY3ZDQwOTlkNmZiN2Q4NWEwNTVj
MjAwNGU2N2IyYWI1YjFkLi5lODk4N2E2OTFmZTIzYTY4ZTMyOTIzYThhNGEwZDVhZmFjMDk1NmI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcApAQCAtNTMwLDEwICs1MzAsMTAgQEAgdm9pZCBJREJTZXJ2ZXI6OmdldEFs
bERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b24KICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoV1RGTW92ZSgqbmFtZUFuZFZlcnNpb24pKTsK
ICAgICB9CiAKLSAgICBhdXRvIG9sZERpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6
ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIG1fZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoLCAidjAiKTsKKyAgICBhdXRvIG9sZERpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRp
Zmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIG1fZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLCAidjAiX3MpOwogICAgIGdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9t
T3JpZ2luRGlyZWN0b3J5KG9sZERpcmVjdG9yeSwgdmlzaXRlZERhdGFiYXNlUGF0aHMsIHJlc3Vs
dCk7CiAKLSAgICBhdXRvIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LCAidjEiKTsKKyAgICBhdXRvIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0
YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLCAidjEiX3MpOwogICAgIGdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGly
ZWN0b3J5KGRpcmVjdG9yeSwgdmlzaXRlZERhdGFiYXNlUGF0aHMsIHJlc3VsdCk7CiAKICAgICBh
dXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKQEAgLTc1OCw4ICs3NTgsOCBAQCB1aW50NjRfdCBJREJTZXJ2ZXI6OmRpc2tVc2Fn
ZShjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IENsaWVudE9yaWdpbiYgbwogewog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBvbGRWZXJzaW9uT3JpZ2lu
RGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0
aXZlVG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIl9zdHIpOwotICAgIGF1dG8gbmV3
VmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3RvcnksICJ2MSJfc3RyKTsK
KyAgICBhdXRvIG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5
LCAidjAiX3MpOworICAgIGF1dG8gbmV3VmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFi
YXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJv
b3REaXJlY3RvcnksICJ2MSJfcyk7CiAgICAgcmV0dXJuIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShvbGRWZXJzaW9uT3JpZ2luRGlyZWN0b3J5KSArIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGF0YWJhc2VzU2l6ZUZvckRpcmVjdG9yeShuZXdWZXJzaW9u
T3JpZ2luRGlyZWN0b3J5KTsKIH0KIApAQCAtNzc1LDkgKzc3NSw5IEBAIHZvaWQgSURCU2VydmVy
Ojp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAKIFN0cmluZyBJREJTZXJ2ZXI6OnVwZ3JhZGVk
RGF0YWJhc2VEaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQogewotICAgIFN0cmluZyBvbGRPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVy
LmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgs
ICJ2MCIpOworICAgIFN0cmluZyBvbGRPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVyLmRhdGFi
YXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJf
cyk7CiAgICAgU3RyaW5nIG9sZERhdGFiYXNlRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KG9sZE9yaWdpbkRpcmVjdG9yeSwgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUoaWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKSkpOwotICAg
IFN0cmluZyBuZXdPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVyLmRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIFN0cmlu
ZyBuZXdPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVyLmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRp
dmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgU3RyaW5nIGZp
bGVOYW1lSGFzaCA9IFNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1dGVIYXNoRm9yRmlsZU5hbWUoaWRl
bnRpZmllci5kYXRhYmFzZU5hbWUoKSk7CiAgICAgU3RyaW5nIG5ld0RhdGFiYXNlRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG5ld09yaWdpbkRpcmVjdG9y
eSwgZmlsZU5hbWVIYXNoKTsKICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMobmV3
RGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvT3JpZ2luTG9jay5jcHAKaW5kZXggNzU2MGNkMDk1ZGI1OTk2MzA4YWZkZTYwODMyOGI0
NTRjMjI3ZWVlZi4uZDQ2NTFkYmU5MzBhYTRiNzZjZTU5ZGE1MmMyOTZlNmFlNjlmMDI3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3Bw
CkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFN0cmluZyBs
b2NrRmlsZU5hbWVGb3JQYXRoKGNvbnN0IFN0cmluZyYgb3JpZ2luUGF0aCkKIHsKLSAgICByZXR1
cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBhdGgsICIubG9j
ayJfcyk7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChv
cmlnaW5QYXRoLCAiLmxvY2siKTsKIH0KIAogT3JpZ2luTG9jazo6T3JpZ2luTG9jayhjb25zdCBT
dHJpbmcmIG9yaWdpblBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDIxYTI3OTky
ZDIyNzA5ODk5ZDBkM2ViNjBiNThkZmNlMmNhZDBjMGEuLjc2ZTYzMWI1ZmFhMjNkNzQ1MmM2OTAw
N2ZjZTRjNTkxNWVkMWRlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC00MDUsOCAr
NDA1LDggQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3Rv
cmFnZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHN0b3IKICAgICAgICAgaWYgKCFGaWxlU3lzdGVt
OjptYWtlQWxsRGlyZWN0b3JpZXMoc3RvcmFnZURpcmVjdG9yeSkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfSBlbHNlIGlmICgqZmlsZVR5cGUgIT0gRmlsZVN5c3RlbTo6RmlsZVR5cGU6OkRp
cmVjdG9yeSkgewotICAgICAgICBhdXRvIHRlbXBEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpjcmVh
dGVUZW1wb3JhcnlEaXJlY3RvcnkoQCJNZWRpYUtleXMiKTsKLSAgICAgICAgaWYgKCF0ZW1wRGly
ZWN0b3J5KQorICAgICAgICBTdHJpbmcgdGVtcERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIk1lZGlhS2V5cyIpOworICAgICAgICBpZiAodGVtcERpcmVj
dG9yeS5pc051bGwoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHRlbXBT
dG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRGly
ZWN0b3J5LCBGaWxlU3lzdGVtOjpwYXRoRmlsZU5hbWUoc3RvcmFnZVBhdGgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5h
Z2VyLmNwcAppbmRleCAzYmQyY2M3NDI4NmVjNDY3ODY0MDI0OGM1ZTFjZmVjYzVhMDI2N2JkLi4w
MzQ2MGY1MjU5YjA4NWYxNzRlNjIzN2RjNzdhZDViNjRjODEzMjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIu
Y3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9pZCBDdXJsQ2FjaGVNYW5hZ2VyOjpsb2FkSW5kZXgo
KQogICAgIGlmIChtX2Rpc2FibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgaW5k
ZXhGaWxlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2NhY2hl
RGlyLCAiaW5kZXguZGF0Il9zKTsKKyAgICBTdHJpbmcgaW5kZXhGaWxlUGF0aCA9IEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2NhY2hlRGlyLCAiaW5kZXguZGF0Iik7CiAg
ICAgYXV0byBidWZmZXIgPSBGaWxlU3lzdGVtOjpyZWFkRW50aXJlRmlsZShpbmRleEZpbGVQYXRo
KTsKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBMT0coTmV0d29yaywgIkNhY2hlIEVycm9y
OiBDb3VsZCBub3QgcmVhZCAlc1xuIiwgaW5kZXhGaWxlUGF0aC5sYXRpbjEoKS5kYXRhKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKaW5kZXggNTE2YTJmNTAyY2M5MGNjY2UxMzZiNDMyZjI4OGEwZjM0YzA1OWY0ZC4uY2M2MTUy
NDc5M2MwZjExY2ZlYjhkNGE4NGVjZmE5YWY0ZTZlMmFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0zMTQsNyArMzE0
LDcgQEAgc3RhdGljIEhhc2hTZXQ8UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUq
PiYgYWxsU3RvcmVzKCkKIAogUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OlJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlKFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSYgc3RvcmUsIFN1c3BlbmRhYmxlV29ya1F1ZXVlJiB3b3JrUXVldWUsIFNob3VsZElu
Y2x1ZGVMb2NhbGhvc3Qgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgY29uc3QgU3RyaW5nJiBzdG9y
YWdlRGlyZWN0b3J5UGF0aCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlKHN0b3JlLCB3b3JrUXVldWUsIHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3QpCi0gICAgLCBEYXRhYmFzZVV0aWxpdGllcyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeVBhdGgsICJvYnNlcnZhdGlvbnMuZGIiX3MpKQor
ICAgICwgRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCAib2JzZXJ2YXRpb25zLmRiIikpCiAgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhdGFiYXNlLmNwcAppbmRleCBjMDkwY2JlNTcxODRiNzhjYjUyMTYwMGExMTNkY2Qy
MmQyODlhNDI5Li5kNmJjMDkwMTIwMzMxZjgzMDYwYmNkYTYxNGQ5MzJhYTU5YTIxY2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYXRhYmFzZS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIEhhc2hTZXQ8RGF0
YWJhc2UqPiYgYWxsRGF0YWJhc2VzKCkKIH0KIAogRGF0YWJhc2U6OkRhdGFiYXNlKGNvbnN0IFN0
cmluZyYgc3RvcmFnZURpcmVjdG9yeSkKLSAgICA6IERhdGFiYXNlVXRpbGl0aWVzKEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAicGNtLmRiIl9z
KSkKKyAgICA6IERhdGFiYXNlVXRpbGl0aWVzKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAicGNtLmRiIikpCiB7CiAgICAgQVNTRVJUKCFSdW5M
b29wOjppc01haW4oKSk7CiAgICAgb3BlbkRhdGFiYXNlQW5kQ3JlYXRlU2NoZW1hSWZOZWNlc3Nh
cnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCAyZDgzNTkwMDEyMDMwNTJmMTY2MzM5OThlNDQw
YzNiNWY2YTZkOTFiLi40MWNjNGQ5MjEwYWMxNDg4ODVmYTIzNGJkMDkxMjkyMWYzZGMwMDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgU3RyaW5nIEVuZ2luZTo6c3Rv
cmFnZVBhdGgoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmkKICAgICBpZiAocm9vdERpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwogCi0gICAgU3RyaW5nIHNhbHRQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHJvb3REaXJlY3RvcnksICJzYWx0Il9zKTsKKyAgICBTdHJpbmcg
c2FsdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVj
dG9yeSwgInNhbHQiKTsKICAgICBhdXRvIHNhbHQgPSBGaWxlU3lzdGVtOjpyZWFkT3JNYWtlU2Fs
dChzYWx0UGF0aCk7CiAgICAgaWYgKCFzYWx0KQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKQEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIEVuZ2luZTo6aW5pdGlhbGl6ZShDb21wbGV0aW9u
Q2FsbGJhY2smJiBjYWxsYmFjaykKIAogICAgIG1faW9RdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJvb3RQYXRoID0gbV9yb290UGF0aC5pc29sYXRl
ZENvcHkoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rv
cmllcyhyb290UGF0aCk7Ci0gICAgICAgIFN0cmluZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChyb290UGF0aCwgInNhbHQiX3MpOworICAgICAgICBTdHJp
bmcgc2FsdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocm9vdFBh
dGgsICJzYWx0Iik7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgd2Vh
a1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgc2FsdCA9IEZpbGVTeXN0ZW06OnJlYWRPck1ha2VT
YWx0KHNhbHRQYXRoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCmluZGV4
IDc3YWQwMGJiYWVhNTJkZWI3MzE0ZjA3ODkxNDljNDhlZTQ4NzFhMGMuLmZkYTg1NGRlMzhhYmFh
NGZlNDMxNzkxNjA1Y2M3NDg2ZDk2ZGI3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5j
cHAKQEAgLTQzLDE3ICs0MywxNyBAQCB1c2luZyBuYW1lc3BhY2UgTmV0d29ya0NhY2hlOwogCiBz
dGF0aWMgaW5saW5lIFN0cmluZyBjYWNoZXNMaXN0RmlsZW5hbWUoY29uc3QgU3RyaW5nJiBjYWNo
ZXNSb290UGF0aCkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGNhY2hlc1Jvb3RQYXRoLCAiY2FjaGVzbGlzdCJfcyk7CisgICAgcmV0dXJuIEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNoZXNSb290UGF0aCwgImNhY2hlc2xp
c3QiKTsKIH0KIAogc3RhdGljIGlubGluZSBTdHJpbmcgY2FjaGVzT3JpZ2luRmlsZW5hbWUoY29u
c3QgU3RyaW5nJiBjYWNoZXNSb290UGF0aCkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RQYXRoLCAib3JpZ2luIl9zKTsKKyAgICBy
ZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RQYXRo
LCAib3JpZ2luIik7CiB9CiAKIFN0cmluZyBDYWNoZXM6OmNhY2hlc1NpemVGaWxlbmFtZShjb25z
dCBTdHJpbmcmIGNhY2hlc1Jvb3RzUGF0aCkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RzUGF0aCwgImVzdGltYXRlZHNpemUiX3Mp
OworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVz
Um9vdHNQYXRoLCAiZXN0aW1hdGVkc2l6ZSIpOwogfQogCiBSZWY8Q2FjaGVzPiBDYWNoZXM6OmNy
ZWF0ZShFbmdpbmUmIGVuZ2luZSwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdHJp
bmcmJiByb290UGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAKaW5kZXggM2Q5ZGZiOTI0
YzhkM2I1NTI5YjM5MWNlYTFkODgwYmViOTRmNzY0NC4uYzIzNDlhMDgyYjU2OGRlYmUzZmE1NmQz
NThkNTVkZDljNjg4ZjYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAKQEAgLTc5LDcg
Kzc5LDcgQEAgdm9pZCBCbG9iU3RvcmFnZTo6c3luY2hyb25pemUoKQogU3RyaW5nIEJsb2JTdG9y
YWdlOjpibG9iUGF0aEZvckhhc2goY29uc3QgU0hBMTo6RGlnZXN0JiBoYXNoKSBjb25zdAogewog
ICAgIGF1dG8gaGFzaEFzU3RyaW5nID0gU0hBMTo6aGV4RGlnZXN0KGhhc2gpOwotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmxvYkRpcmVjdG9yeVBhdGhJ
c29sYXRlZENvcHkoKSwgU3RyaW5nOjpmcm9tVVRGOChoYXNoQXNTdHJpbmcpKTsKKyAgICByZXR1
cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGJsb2JEaXJlY3RvcnlQYXRo
SXNvbGF0ZWRDb3B5KCksIGhhc2hBc1N0cmluZy5kYXRhKCkpOwogfQogCiBCbG9iU3RvcmFnZTo6
QmxvYiBCbG9iU3RvcmFnZTo6YWRkKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgRGF0YSYgZGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGIxZTZmZjNjMDc4YmU4NzFkOTUxMGZhMzc2YzQ3
MDBlMzNjMTlmYTYuLjA5MWNhM2EwNzA1MDc1ZmE3N2QzODg2NWI5ZmU0YTdlNDQ0ZmIwOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdG9yYWdlLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIHN0YXRpYyBTdHJpbmcgbWFr
ZUNhY2hlUGF0aChjb25zdCBTdHJpbmcmIGJhc2VDYWNoZVBhdGgpCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIC8vIFB1dCBkZXZlbG9wbWVudCBjYWNoZSB0byBhIGRpZmZlcmVudCBkaXJlY3Rvcnkg
dG8gYXZvaWQgYWZmZWN0aW5nIHRoZSBzeXN0ZW0gY2FjaGUuCiAgICAgaWYgKCFBdXhpbGlhcnlQ
cm9jZXNzOjppc1N5c3RlbVdlYktpdCgpKQotICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGJhc2VDYWNoZVBhdGgsICJEZXZlbG9wbWVudCJfcyk7Cisg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmFzZUNh
Y2hlUGF0aCwgIkRldmVsb3BtZW50Iik7CiAjZW5kaWYKICAgICByZXR1cm4gYmFzZUNhY2hlUGF0
aDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9J
REJTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGU3YjUyNmEyOTEzM2M3M2FjZjhkYzgyYmZl
NWVhMWRhODY5MWFkNzcuLjBhN2U0ZDNjNDcxOWQyODZjN2I5YmM1YjNlMzMxM2VhZmFlYmFiYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJTdG9y
YWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNzEsOCArNzEsOCBAQCBTdHJpbmcgSURCU3RvcmFn
ZU1hbmFnZXI6OmlkYlN0b3JhZ2VPcmlnaW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiByb290RGly
ZWN0b3J5LAogICAgIGlmIChyb290RGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiAKLSAgICBhdXRvIG9yaWdpbkRpcmVjdG9yeSA9IFdlYkNvcmU6OklE
QkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmln
aW4sIHJvb3REaXJlY3RvcnksICJ2MSIpOwotICAgIGF1dG8gb2xkT3JpZ2luRGlyZWN0b3J5ID0g
V2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZl
VG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIik7CisgICAgYXV0byBvcmlnaW5EaXJl
Y3RvcnkgPSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjEiX3MpOworICAgIGF1dG8g
b2xkT3JpZ2luRGlyZWN0b3J5ID0gV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRh
YmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIl9z
KTsKICAgICBtaWdyYXRlT3JpZ2luRGF0YUltcGwob2xkT3JpZ2luRGlyZWN0b3J5LCBvcmlnaW5E
aXJlY3RvcnksIFtdKGNvbnN0IFN0cmluZyYgbmFtZSkgewogICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6U1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxlTmFtZShXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVjb2RlRGF0YWJhc2VOYW1lKG5hbWUpKTsK
ICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA2YzE0NWFjZWU3NTg4ZDY5NWEz
ODdkMjdjYjljYjBjM2M4MzE0ZmU3Li5jZDJjNTFmNTE5YzRjMGNkMTcxOGJiNWZlOTE3YmY3Njc4
MzFjYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TG9jYWxTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zNSwxNyArMzUsMTcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIC8vIFN1Z2dlc3RlZCBieSBodHRwczovL3d3dy53My5vcmcvVFIv
d2Vic3RvcmFnZS8jZGlzay1zcGFjZQogY29uc3RleHByIHVuc2lnbmVkIGxvY2FsU3RvcmFnZVF1
b3RhSW5CeXRlcyA9IDUgKiBNQjsKLWNvbnN0ZXhwciBhdXRvIGZpbGVTdWZmaXggPSAiLmxvY2Fs
c3RvcmFnZSJfczsKLWNvbnN0ZXhwciBhdXRvIGZpbGVOYW1lID0gImxvY2Fsc3RvcmFnZS5zcWxp
dGUzIl9zOworY29uc3RleHByIGF1dG8gc19maWxlU3VmZml4ID0gIi5sb2NhbHN0b3JhZ2UiX3M7
Citjb25zdGV4cHIgYXV0byBzX2ZpbGVOYW1lID0gImxvY2Fsc3RvcmFnZS5zcWxpdGUzIl9zOwog
CiAvLyBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIGV4aXN0aW5nIGZpbGVzLgogLy8g
V2Ugc2hvdWxkIG5vdCBpbmNsdWRlIG9yaWdpbiBpbiBmaWxlIG5hbWUuCiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IGZpbGVOYW1lVG9PcmlnaW4oY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKLSAgICBpZiAoIWZpbGVOYW1lLmVuZHNXaXRoKFN0cmlu
Z1ZpZXcgeyBmaWxlU3VmZml4IH0pKQorICAgIGlmICghZmlsZU5hbWUuZW5kc1dpdGgoU3RyaW5n
VmlldyB7IHNfZmlsZVN1ZmZpeCB9KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAot
ICAgIGF1dG8gc3VmZml4TGVuZ3RoID0gc3RybGVuKGZpbGVTdWZmaXgpOworICAgIGF1dG8gc3Vm
Zml4TGVuZ3RoID0gc19maWxlU3VmZml4Lmxlbmd0aCgpOwogICAgIGF1dG8gZmlsZU5hbWVMZW5n
dGggPSBmaWxlTmFtZS5sZW5ndGgoKTsKICAgICBpZiAoZmlsZU5hbWVMZW5ndGggPD0gc3VmZml4
TGVuZ3RoKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtODYsNyArODYsNyBAQCBT
dHJpbmcgTG9jYWxTdG9yYWdlTWFuYWdlcjo6bG9jYWxTdG9yYWdlRmlsZVBhdGgoY29uc3QgU3Ry
aW5nJiBkaXJlY3RvcnkpCiAgICAgaWYgKGRpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChkaXJlY3RvcnksIGZpbGVOYW1lKTsKKyAgICByZXR1cm4gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgU3RyaW5nVmlldyB7IHNfZmls
ZU5hbWUgfSk7CiB9CiAKIExvY2FsU3RvcmFnZU1hbmFnZXI6OkxvY2FsU3RvcmFnZU1hbmFnZXIo
Y29uc3QgU3RyaW5nJiBwYXRoLCBTdG9yYWdlQXJlYVJlZ2lzdHJ5JiByZWdpc3RyeSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVz
b3VyY2VVUkxTY2hlbWVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci93aW4vSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmNwcAppbmRleCA0NzRh
NThjZGViMDU2YjY4ZWFmZTExYzA0ZWE5MDAyNDI5MDI3YjU1Li42OTUyN2VkYTcyNjNkOGYzN2Uz
YTgwOTYyNTI4ZWUxNjNkNmQ3NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3Ivd2luL0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JSZXNvdXJj
ZVVSTFNjaGVtZUhhbmRsZXIuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VVUkxTY2hlbWVIYW5kbGVyOjpwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmLCBX
ZWJVUkxTCiAgICAgaWYgKHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgoIlxcIikpCiAgICAgICAgIHJl
cXVlc3RQYXRoLnJlbW92ZSgwKTsKICAgICBhdXRvIHBhdGggPSBVUkwoYWRvcHRDRihDRkJ1bmRs
ZUNvcHlCdW5kbGVVUkwoV2ViQ29yZTo6d2ViS2l0QnVuZGxlKCkpKS5nZXQoKSkuZmlsZVN5c3Rl
bVBhdGgoKTsKLSAgICBwYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHBhdGgsICJXZWJJbnNwZWN0b3JVSSJfcyk7CisgICAgcGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCAiV2ViSW5zcGVjdG9yVUkiKTsKICAgICBwYXRoID0g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIHJlcXVlc3RQYXRoKTsK
ICAgICBib29sIHN1Y2Nlc3M7CiAgICAgRmlsZVN5c3RlbTo6TWFwcGVkRmlsZURhdGEgZmlsZShw
YXRoLCBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlTW9kZTo6UHJpdmF0ZSwgc3VjY2Vzcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJl
dmlld01vZGVsUGxheWVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21h
Yy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQppbmRleCAzMThmYWQxYWQ2ZmM1
ZWM3MjcwNzMzYWEwZDk5MjRhYmZkYjhkNjIyLi40OTg5ZjM4ZDA4NGJkMjQ1ODJjOGQ2ODNlNWFl
ODcyYzM3MjQ1MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
bWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMu
bW0KQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEFSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
TWFjOjpjcmVhdGVGaWxlKFdlYkNvcmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSkKICAgICB9CiAKICAg
ICAvLyBXZSBuZWVkIHRvIHN1cHBvcnQgLnJlYWxpdHkgZmlsZXMgYXMgd2VsbCwgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzU2OC4KLSAgICBhdXRvIGZpbGVOYW1l
ID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoY3JlYXRlVmVyc2lvbjRVVUlEU3RyaW5n
KCkpICsgIi51c2R6IjsKKyAgICBTdHJpbmcgZmlsZU5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVG
b3JGaWxlTmFtZShjcmVhdGVWZXJzaW9uNFVVSURTdHJpbmcoKSkgKyAiLnVzZHoiOwogICAgIGF1
dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aFRv
RGlyZWN0b3J5LCBmaWxlTmFtZSk7CiAgICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6b3BlbkZp
bGUoZmlsZVBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOwogICAgIGlmIChm
aWxlIDw9IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFn
ZVN5bmNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlU3lu
Y01hbmFnZXIuY3BwCmluZGV4IDIyOGY0YTM2ZDRiMGYyMjJjMTc4NjBkMGJjNDk4YzFmOWUwODlh
MjEuLmIzNjExZGU3ZmI5NzkzOTIxMmQ4NGRmOGNmNWFkNDE0MjhlNmY4ODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwCkBAIC02
MCw3ICs2MCw3IEBAIFN0cmluZyBTdG9yYWdlU3luY01hbmFnZXI6OmZ1bGxEYXRhYmFzZUZpbGVu
YW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyCiAgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKICAgICB9CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fcGF0aCwgZGF0YWJhc2VJZGVudGlmaWVyICsgIi5sb2NhbHN0b3JhZ2UiKTsKKyAg
ICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcGF0aCwgbWFr
ZVN0cmluZyhkYXRhYmFzZUlkZW50aWZpZXIsICIubG9jYWxzdG9yYWdlIikpOwogfQogCiB2b2lk
IFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZGlzcGF0Y2goRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0b3JhZ2UvV2ViRGF0YWJh
c2VQcm92aWRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0b3JhZ2UvV2ViRGF0YWJh
c2VQcm92aWRlci5tbQppbmRleCBhZGM0YzM5ODg0YzRjYjJkMmEzYmViNmIxOTViY2RhMDAwODlj
MTcxLi5jODczMzA3ZDBmMmRiZGM1NGM1ZjdjYzc2YzExNWY0NWMxNTk0YTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVy
Lm1tCkBAIC0zMyw5ICszMyw5IEBAIFN0cmluZyBXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnlQYXRoKCkKICAgICBOU1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwogICAgIE5TU3RyaW5nICpkYXRh
YmFzZXNEaXJlY3RvcnkgPSBbZGVmYXVsdHMgb2JqZWN0Rm9yS2V5OldlYkRhdGFiYXNlRGlyZWN0
b3J5RGVmYXVsdHNLZXldOwogICAgIGlmICghZGF0YWJhc2VzRGlyZWN0b3J5IHx8ICFbZGF0YWJh
c2VzRGlyZWN0b3J5IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCi0gICAgICAgIGRh
dGFiYXNlc0RpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgi
fi9MaWJyYXJ5L1dlYktpdC9EYXRhYmFzZXMvX19fSW5kZXhlZERCIl9zLCBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKTsKKyAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCJ+L0xpYnJhcnkvV2ViS2l0
L0RhdGFiYXNlcy9fX19JbmRleGVkREIiLCBTdHJpbmcoW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBi
dW5kbGVJZGVudGlmaWVyXSkpOwogICAgIGVsc2UKLSAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlc0RpcmVjdG9y
eSwgIl9fX0luZGV4ZWREQiJfcyk7CisgICAgICAgIGRhdGFiYXNlc0RpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChTdHJpbmcoZGF0YWJhc2VzRGlyZWN0b3J5
KSwgIl9fX0luZGV4ZWREQiIpOwogICAgIAogICAgIHJldHVybiBbZGF0YWJhc2VzRGlyZWN0b3J5
IHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGE5YzZlYmE0MmIzYTdlM2Y3MDRlZDUyYTI1NzQxYTMw
Y2MzNTRjNmIuLjk2ODIyOTI1MGI4YzNiMGMxYWNmNmVjMThlYTk4NjJhNmJiN2ViZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE1MzQsNyArMTUz
NCw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJp
bmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
TykKLSAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFDYWNoZURpcmVj
dG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoTlNUZW1wb3JhcnlEaXJl
Y3RvcnkoKSwgIk1lZGlhQ2FjaGUvIl9zKSk7CisgICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNldE1lZGlhQ2FjaGVEaXJlY3RvcnkoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KFN0cmluZyhOU1RlbXBvcmFyeURpcmVjdG9yeSgpKSwgIk1lZGlhQ2FjaGUvIikp
OwogI2VuZGlmCiAgICAgICAgIGRpZE9uZVRpbWVJbml0aWFsaXphdGlvbiA9IHRydWU7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE4
ODE4MzdlNDRiY2UwMjczOGI3Yzk4YTRmMzg0YTEyNjc5NjU5ZDkuLjUzNTkxOTdlYWNjYzQyNjBj
NDE1YjU5NzliYjQ1YTQ3NjdiNzI3OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3Ry
aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgb3V0ZGF0ZWQgY29tbWVudCBhZnRl
ciByMjkxNzg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmls
ZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cAppbmRleCA5OTk1NzVhNmVjMjcyZjhiNDIxYmJlMDI0MTI3MGQ5NjQzMGJjZTM0Li5jNDY3NGFm
YTYwODc2MzY3YjNjZjY3NmMyZTU3ZmRkYjMwYjg4NDkxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMjY0LDEzICsyNjQsMTMgQEAgVEVTVF9G
KEZpbGVTeXN0ZW1UZXN0LCBmaWxlRXhpc3RzKQogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06
OmZpbGVFeGlzdHModGVtcEZpbGVTeW1saW5rUGF0aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmls
ZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlGaWxlUGF0aCgpKSk7CiAgICAgRVhQRUNUX1RS
VUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlGb2xkZXJQYXRoKCkpKTsKLSAgICBF
WFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiX3Mp
KSk7CisgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90
LWV4aXN0IikpKTsKIH0KIAogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlRXhpc3RzQnJva2Vu
U3ltbGluaykKIHsKLSAgICBhdXRvIGRvZXNOb3RFeGlzdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhp
c3QiX3MpOwotICAgIGF1dG8gc3ltbGlua1BhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3Qtc3ltbGlu
ayJfcyk7CisgICAgYXV0byBkb2VzTm90RXhpc3RQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Iik7
CisgICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdC1zeW1saW5rIik7CiAg
ICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Y3JlYXRlU3ltYm9saWNMaW5rKGRvZXNOb3RFeGlz
dFBhdGgsIHN5bWxpbmtQYXRoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMoZG9lc05vdEV4aXN0UGF0aCkpOwogICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpm
aWxlRXhpc3RzKHN5bWxpbmtQYXRoKSk7IC8vIGZpbGVFeGlzdHMoKSBmb2xsb3dzIHN5bWxpbmtz
LgpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgZmlsZUV4aXN0c0Jy
b2tlblN5bWxpbmspCiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGZpbGVFeGlzdHNTeW1saW5rVG9T
eW1saW5rKQogewogICAgIC8vIENyZWF0ZSBhIHZhbGlkIHN5bWxpbmsgdG8gYSBzeW1saW5rIHRv
IGEgcmVndWxhciBmaWxlLgotICAgIGF1dG8gc3ltbGlua1BhdGggPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAic3ltbGluayJfcyk7
CisgICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJzeW1saW5rIik7CiAgICAgRVhQRUNUX1RSVUUo
RmlsZVN5c3RlbTo6Y3JlYXRlU3ltYm9saWNMaW5rKHRlbXBGaWxlU3ltbGlua1BhdGgoKSwgc3lt
bGlua1BhdGgpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHN5bWxp
bmtQYXRoKSk7CiAgICAgRVhQRUNUX0VRKEZpbGVTeXN0ZW06OmZpbGVUeXBlKHN5bWxpbmtQYXRo
KSwgRmlsZVN5c3RlbTo6RmlsZVR5cGU6OlN5bWJvbGljTGluayk7CkBAIC00NjgsNyArNDY4LDcg
QEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlU2l6ZSkKICAgICBBU1NFUlRfVFJVRShmaWxl
U2l6ZSk7CiAgICAgRVhQRUNUX0VRKCpmaWxlU2l6ZSwgMFUpOwogCi0gICAgU3RyaW5nIGZpbGVU
aGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRl
bXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Il9zKTsKKyAgICBTdHJpbmcgZmls
ZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
dGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsKICAgICBmaWxlU2l6ZSA9
IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGVUaGF0RG9lc05vdEV4aXN0KTsKICAgICBFWFBFQ1Rf
VFJVRSghZmlsZVNpemUpOwogfQpAQCAtNDk4LDcgKzQ5OCw3IEBAIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgdm9sdW1lRnJlZVNwYWNlKQogICAgIEFTU0VSVF9UUlVFKGZyZWVTcGFjZSk7CiAgICAg
RVhQRUNUX0dUKCpmcmVlU3BhY2UsIDBVKTsKIAotICAgIFN0cmluZyBmaWxlVGhhdERvZXNOb3RF
eGlzdCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xk
ZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJfcyk7CisgICAgU3RyaW5nIGZpbGVUaGF0RG9lc05v
dEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZv
bGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Iik7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0
ZW06OnZvbHVtZUZyZWVTcGFjZShmaWxlVGhhdERvZXNOb3RFeGlzdCkpOwogfQogCkBAIC01MzMs
MTAgKzUzMywxMCBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZVN5bWJvbGljTGlua0Zv
bGRlcikKIAogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBjcmVhdGVTeW1ib2xpY0xpbmtGaWxlRG9l
c05vdEV4aXN0KQogewotICAgIFN0cmluZyBmaWxlVGhhdERvZXNOb3RFeGlzdCA9IEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2Vz
LW5vdC1leGlzdCJfcyk7CisgICAgU3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRv
ZXMtbm90LWV4aXN0Iik7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
ZmlsZVRoYXREb2VzTm90RXhpc3QpKTsKIAotICAgIGF1dG8gc3ltbGlua1BhdGggPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9l
cy1ub3QtZXhpc3Qtc3ltbGluayJfcyk7CisgICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2Vz
LW5vdC1leGlzdC1zeW1saW5rIik7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMoc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpjcmVhdGVT
eW1ib2xpY0xpbmsoZmlsZVRoYXREb2VzTm90RXhpc3QsIHN5bWxpbmtQYXRoKSk7CiAgICAgRVhQ
RUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc3ltbGlua1BhdGgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455673</attachid>
            <date>2022-03-24 13:37:16 -0700</date>
            <delta_ts>2022-03-24 14:13:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238344-20220324133715.patch</filename>
            <type>text/plain</type>
            <size>35927</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMDFkMjYyMGI4ZmNhMTQx
NDY1ZjFiYmQyOWU4M2Q3NDI2ZDk4ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0
YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2MuY3BwOgorCiAyMDIyLTAzLTIzICBH
ZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEZpeCByZW1vdGVG
dW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5YmMzMGI4ZTZlY2QyZDdjMzliYzIy
MDAxNTc1OWJjNDg1MjFjNzlkLi43M2Y2MWVlOWJkMGZiYWUwYzI1N2M3Y2FkNWYwZDcwZjQ2OWRh
MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0
ZWFkIG9mIFN0cmluZ3MsIHRvIGF2b2lkCisgICAgICAgIHVubmVjZXNzYXJ5IFN0cmluZyBjb25z
dHJ1Y3RvciBpbiBtYW55IGluc3RhbmNlcy4KKworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dCk6CisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyByZXZlcnNlRmluZCgpIC8gcmVw
bGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggMDQ1ZTIyOWQ0MjBiY2JhZTNhM2UxMjlhMjkzMGQyNmI5YmY3NmVhMy4uMzFk
ZTNlNDE0ZTJjNjU0NmZkMjJmZWY0ZjkzM2NmMmJhZDRjMjc5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRh
a2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9S
b290KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRp
c2tVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFk
ZWREYXRhYmFzZURpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9Pcmln
aW5Mb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2tGaWxlTmFtZUZvclBhdGgpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNldFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCk6CisKIDIwMjItMDMtMjQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyBy
ZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0
ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI5NGMzYWZhNzI0M2NmMWNhZGU4MTA1YTY2ZGZk
MzdmOWQxNjg3ZDMuLjc3YzhjODQ1MGUyNTQxN2QxMGNiMzkyMzUwZDY4ZWZjMDllMzJhYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODM0NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6c3RvcmFnZVBhdGgpOgorICAgICAgICAo
V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpjYWNoZXNMaXN0RmlsZW5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpDYWNoZVN0b3JhZ2U6OmNhY2hlc09yaWdpbkZpbGVuYW1lKToKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpDYWNoZXM6OmNhY2hlc1NpemVGaWxlbmFtZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkJsb2JTdG9yYWdlOjpibG9iUGF0aEZvckhhc2ggY29u
c3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om1ha2VDYWNoZVBhdGgpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJREJTdG9yYWdlTWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9y
eSk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVzb3VyY2VV
UkxTY2hlbWVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yUmVzb3VyY2VV
UkxTY2hlbWVIYW5kbGVyOjpwbGF0Zm9ybVN0YXJ0VGFzayk6CisKIDIwMjItMDMtMjQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyBy
ZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0
ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRjODFiNTI0
NTdkOTg3NWQyODBmNzUwZDI1NzM1ZWVlNjcwYzY4Yi4uMzljMzI3ZmZmMGQ5NDliNmJiMDBmYTAz
NDAyNmExNGY0YzA3MTdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5t
bToKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9y
eVBhdGgpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwogMjAy
Mi0wMy0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPUyAxNS40XSBGaXggdW51c2VkIHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBi
ZDJlYjgxMmM2YzM3ZWQ1MmVkYzYzYjkyNjdmY2JjYTk4MTU5NGEzLi4xMjYzNjljYWIwNzBkYTIx
ZTY0OGI4YjVlZWQ5YWQ2NzEyMWViZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMTA5Niw3
ICsxMDk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIGNv
bnN0IGNoYXIqIGNhY2hlUGF0aCA9IE9wdGlvbnM6OmRpc2tDYWNoZVBhdGgoKTsKICAgICAgICAg
U3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoRmlsZVN5c3Rl
bTo6bGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChzb3VyY2VPcmlnaW4o
KS51cmwoKS5maWxlU3lzdGVtUGF0aCgpKSk7Ci0gICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3RyaW5nIHsgY2FjaGVQYXRoIH0sIG1ha2VTdHJpbmco
c291cmNlKCkudG9TdHJpbmcoKS5oYXNoKCksICctJywgZmlsZW5hbWUsICIuYnl0ZWNvZGUtY2Fj
aGUiKSk7CisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoY2FjaGVQYXRoLCBtYWtlU3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScs
IGZpbGVuYW1lLCAiLmJ5dGVjb2RlLWNhY2hlIikpOwogICAgIH0KIAogICAgIHZvaWQgbG9hZEJ5
dGVjb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3Bw
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggZDVjMjI0OTgyZGE5MjkwZjUz
Y2U3MGEwNDhjYjQyNzFhMmM0OWMxMC4uNzFlNGRjZmE1Y2Q2OTQxN2RiZWNjY2M5Y2FjYWU4ZjE1
NDg1YWQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTgyMSw3ICs4MjEsNyBAQCBib29sIG1h
a2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuICFlYzsKIH0K
IAotU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgY29tcG9uZW50KQorU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChT
dHJpbmdWaWV3IHBhdGgsIFN0cmluZ1ZpZXcgY29tcG9uZW50KQogewogICAgIHJldHVybiBmcm9t
U3RkRmlsZVN5c3RlbVBhdGgodG9TdGRGaWxlU3lzdGVtUGF0aChwYXRoKSAvIHRvU3RkRmlsZVN5
c3RlbVBhdGgoY29tcG9uZW50KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxl
U3lzdGVtLmggYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKaW5kZXggOTk1MWE0YjE0YzBi
Zjk0MWFlMGZiNjdjMDZkNDMyMzA2YjVjZjAzZC4uNDJlZmJjNDM2Y2YzYWIzYzczZmM0ZTk3Zjli
NDA3OTBhMWFlY2JkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaApAQCAtMTE3LDcgKzExNyw3IEBAIFdURl9F
WFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBmaWxlTW9kaWZpY2F0aW9uVGlt
ZShjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHVwZGF0ZUZpbGVNb2Rp
ZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCk7IC8vIFNldHMgbW9kaWZpY2F0aW9uIHRp
bWUgdG8gbm93LgogV1RGX0VYUE9SVF9QUklWQVRFIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IGZp
bGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0b3Jl
IGZpbGUgY3JlYXRpb24gdGltZS4KIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzSGlkZGVuRmls
ZShjb25zdCBTdHJpbmcmKTsKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQp
OworV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3Ry
aW5nVmlldyBwYXRoLCBTdHJpbmdWaWV3IGNvbXBvbmVudCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUg
U3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25zdCBW
ZWN0b3I8U3RyaW5nVmlldz4mIGNvbXBvbmVudHMpOwogV1RGX0VYUE9SVF9QUklWQVRFIFN0cmlu
ZyBsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYg
cGF0aCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3Qg
U3RyaW5nJiBwYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Bvc2l4L0ZpbGVTeXN0
ZW1QT1NJWC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmlu
ZGV4IGI3NDljYjE5MzZjZjJmZmU2MDcyNjEzZGQ5YzRlZjUwOGZkNWQyMjMuLjNlNjc2OWI2YzVm
MWU0YTM5ZjIxNmRhMjkzNGQ5ZDcwZjY4ZmY2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcApAQCAtMjk4LDExICsyOTgsMTEgQEAgYm9vbCBtYWtlQWxsRGlyZWN0
b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1TdHJpbmcg
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5n
JiBjb21wb25lbnQpCitTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0cmluZ1ZpZXcg
cGF0aCwgU3RyaW5nVmlldyBjb21wb25lbnQpCiB7CiAgICAgaWYgKHBhdGguZW5kc1dpdGgoJy8n
KSkKLSAgICAgICAgcmV0dXJuIHBhdGggKyBjb21wb25lbnQ7Ci0gICAgcmV0dXJuIHBhdGggKyAi
LyIgKyBjb21wb25lbnQ7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKHBhdGgsIGNvbXBvbmVu
dCk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcocGF0aCwgJy8nLCBjb21wb25lbnQpOwogfQogCiBT
dHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyhTdHJpbmdWaWV3IHBhdGgsIGNvbnN0IFZl
Y3RvcjxTdHJpbmdWaWV3PiYgY29tcG9uZW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwCmluZGV4IGQ4
Zjg1Njc0Y2QxMTBiMzEwOWY2YTllNDhmNzljNmQ3ZmY1YjQzZDQuLjk1NmNkOWFiYzEyNDBjMDUx
Zjk2NGYxNmE1OWIyNjgzMWFlNTlkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcApAQCAtNjAsMTQg
KzYwLDE0IEBAIElEQkRhdGFiYXNlSWRlbnRpZmllciBJREJEYXRhYmFzZUlkZW50aWZpZXI6Omlz
b2xhdGVkQ29weSgpICYmCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLVN0cmluZyBJREJE
YXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3Qg
U3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpIGNvbnN0
CitTdHJpbmcgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZl
VG9Sb290KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25T
dHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jv
b3QobV9vcmlnaW4sIHJvb3REaXJlY3RvcnksIHZlcnNpb25TdHJpbmcpOwogfQogCi1TdHJpbmcg
SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNv
bnN0IENsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNv
bnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKK1N0cmluZyBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmln
aW4sIGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25TdHJp
bmcpCiB7Ci0gICAgU3RyaW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgdmVyc2lvblN0cmluZyk7CisgICAgU3Ry
aW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQocm9vdERpcmVjdG9yeSwgU3RyaW5nVmlldyB7IHZlcnNpb25TdHJpbmcgfSk7CiAgICAgU3Ry
aW5nIG1haW5GcmFtZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh2ZXJzaW9uRGlyZWN0b3J5LCBvcmlnaW4udG9wT3JpZ2luLmRhdGFiYXNlSWRlbnRpZmll
cigpKTsKIAogICAgIC8vIElmIHRoZSBvcGVuaW5nIG9yaWdpbiBhbmQgbWFpbiBmcmFtZSBvcmln
aW5zIGFyZSB0aGUgc2FtZSwgdGhlcmUgaXMgbm8gcGFydGl0aW9uaW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIu
aAppbmRleCAyNzFkZWQ0ZGVlOGI4ODhkMzFlNGM0YzExZTFkMWZjODg5ZGJhNmFiLi42MzhlMWYw
YjZiNWUyZDA1OGQ5OWZkZjlhOGZkODAxODQxNTdjNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaApAQCAt
NzAsOCArNzAsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4oKSBj
b25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGJvb2wgaXNUcmFuc2llbnQoKSBjb25zdCB7
IHJldHVybiBtX2lzVHJhbnNpZW50OyB9CiAKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYg
dmVyc2lvblN0cmluZz0idjEiKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3Ry
aW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50T3JpZ2luJiwg
Y29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcp
OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IFN0cmlu
ZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25TdHJpbmcgPSAidjEiX3MpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3REaXJl
Y3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9uU3RyaW5nKTsKIAogICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJREJEYXRhYmFzZUlkZW50aWZpZXI+IGRl
Y29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDc3ZGY2NjdkNDA5OWQ2ZmI3ZDg1YTA1NWMy
MDA0ZTY3YjJhYjViMWQuLmU4OTg3YTY5MWZlMjNhNjhlMzI5MjNhOGE0YTBkNWFmYWMwOTU2Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCkBAIC01MzAsMTAgKzUzMCwxMCBAQCB2b2lkIElEQlNlcnZlcjo6Z2V0QWxs
RGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKCpuYW1lQW5kVmVyc2lvbikpOwog
ICAgIH0KIAotICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpk
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9y
eVBhdGgsICJ2MCIpOworICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlm
aWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURp
cmVjdG9yeVBhdGgsICJ2MCJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21P
cmlnaW5EaXJlY3Rvcnkob2xkRGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVzdWx0
KTsKIAotICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFz
ZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgs
ICJ2MSIpOworICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRh
YmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBh
dGgsICJ2MSJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21PcmlnaW5EaXJl
Y3RvcnkoZGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVzdWx0KTsKIAogICAgIGF1
dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpOwpAQCAtNzU4LDggKzc1OCw4IEBAIHVpbnQ2NF90IElEQlNlcnZlcjo6ZGlza1VzYWdl
KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBvCiB7CiAg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIG9sZFZlcnNpb25PcmlnaW5E
aXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRp
dmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiX3N0cik7Ci0gICAgYXV0byBuZXdW
ZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURp
cmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYxIl9zdHIpOwor
ICAgIGF1dG8gb2xkVmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmll
cjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3Rvcnks
ICJ2MCJfcyk7CisgICAgYXV0byBuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0gSURCRGF0YWJh
c2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9v
dERpcmVjdG9yeSwgInYxIl9zKTsKICAgICByZXR1cm4gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
YXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkpICsgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG5ld1ZlcnNpb25P
cmlnaW5EaXJlY3RvcnkpOwogfQogCkBAIC03NzUsOSArNzc1LDkgQEAgdm9pZCBJREJTZXJ2ZXI6
OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KCkKIAogU3RyaW5nIElEQlNlcnZlcjo6dXBncmFkZWRE
YXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXImIGlk
ZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIu
ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9z
KTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKSk7Ci0gICAg
U3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5n
IG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2
ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBTdHJpbmcgZmls
ZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxlTmFtZShpZGVu
dGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VEaXJlY3Rvcnkg
PSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2luRGlyZWN0b3J5
LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhuZXdE
YXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCA3NTYwY2QwOTVkYjU5OTYzMDhhZmRlNjA4MzI4YjQ1
NGMyMjdlZWVmLi5kNDY1MWRiZTkzMGFhNGI3NmNlNTlkYTUyYzI5NmU2YWU2OWYwMjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU3RyaW5nIGxv
Y2tGaWxlTmFtZUZvclBhdGgoY29uc3QgU3RyaW5nJiBvcmlnaW5QYXRoKQogewotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob3JpZ2luUGF0aCwgIi5sb2Nr
Il9zKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9y
aWdpblBhdGgsICIubG9jayIpOwogfQogCiBPcmlnaW5Mb2NrOjpPcmlnaW5Mb2NrKGNvbnN0IFN0
cmluZyYgb3JpZ2luUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggMjFhMjc5OTJk
MjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMwYS4uNzZlNjMxYjVmYWEyM2Q3NDUyYzY5MDA3
ZmNlNGM1OTE1ZWQxZGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTQwNSw4ICs0
MDUsOCBAQCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9y
YWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3RvcgogICAgICAgICBpZiAoIUZpbGVTeXN0ZW06
Om1ha2VBbGxEaXJlY3RvcmllcyhzdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICB9IGVsc2UgaWYgKCpmaWxlVHlwZSAhPSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6RGly
ZWN0b3J5KSB7Ci0gICAgICAgIGF1dG8gdGVtcERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0
ZVRlbXBvcmFyeURpcmVjdG9yeShAIk1lZGlhS2V5cyIpOwotICAgICAgICBpZiAoIXRlbXBEaXJl
Y3RvcnkpCisgICAgICAgIFN0cmluZyB0ZW1wRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3JlYXRl
VGVtcG9yYXJ5RGlyZWN0b3J5KEAiTWVkaWFLZXlzIik7CisgICAgICAgIGlmICh0ZW1wRGlyZWN0
b3J5LmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gdGVtcFN0
b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBEaXJl
Y3RvcnksIEZpbGVTeXN0ZW06OnBhdGhGaWxlTmFtZShzdG9yYWdlUGF0aCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFn
ZXIuY3BwCmluZGV4IDNiZDJjYzc0Mjg2ZWM0Njc4NjQwMjQ4YzVlMWNmZWNjNWEwMjY3YmQuLjAz
NDYwZjUyNTliMDg1ZjE3NGU2MjM3ZGM3N2FkNWI2NGM4MTMyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5j
cHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCgp
CiAgICAgaWYgKG1fZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBpbmRl
eEZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2FjaGVE
aXIsICJpbmRleC5kYXQiX3MpOworICAgIFN0cmluZyBpbmRleEZpbGVQYXRoID0gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2FjaGVEaXIsICJpbmRleC5kYXQiKTsKICAg
ICBhdXRvIGJ1ZmZlciA9IEZpbGVTeXN0ZW06OnJlYWRFbnRpcmVGaWxlKGluZGV4RmlsZVBhdGgp
OwogICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPRyhOZXR3b3JrLCAiQ2FjaGUgRXJyb3I6
IENvdWxkIG5vdCByZWFkICVzXG4iLCBpbmRleEZpbGVQYXRoLmxhdGluMSgpLmRhdGEoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNw
cAppbmRleCA1MTZhMmY1MDJjYzkwY2NjZTEzNmI0MzJmMjg4YTBmMzRjMDU5ZjRkLi5jYzYxNTI0
NzkzYzBmMTFjZmViOGQ0YTg0ZWNmYTlhZjRlNmUyYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTMxNCw3ICszMTQs
NyBAQCBzdGF0aWMgSGFzaFNldDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZSo+
JiBhbGxTdG9yZXMoKQogCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlJiBzdG9yZSwgU3VzcGVuZGFibGVXb3JrUXVldWUmIHdvcmtRdWV1ZSwgU2hvdWxkSW5j
bHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJpbmcmIHN0b3Jh
Z2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxkSW5jbHVkZUxvY2Fs
aG9zdCkKLSAgICAsIERhdGFiYXNlVXRpbGl0aWVzKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5UGF0aCwgIm9ic2VydmF0aW9ucy5kYiJfcykpCisg
ICAgLCBEYXRhYmFzZVV0aWxpdGllcyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoc3RvcmFnZURpcmVjdG9yeVBhdGgsICJvYnNlcnZhdGlvbnMuZGIiKSkKICAgICAsIG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50RGF0YWJhc2UuY3BwCmluZGV4IGMwOTBjYmU1NzE4NGI3OGNiNTIxNjAwYTExM2RjZDIy
ZDI4OWE0MjkuLmQ2YmMwOTAxMjAzMzFmODMwNjBiY2RhNjE0ZDkzMmFhNTlhMjFjYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhdGFiYXNlLmNwcApAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgSGFzaFNldDxEYXRh
YmFzZSo+JiBhbGxEYXRhYmFzZXMoKQogfQogCiBEYXRhYmFzZTo6RGF0YWJhc2UoY29uc3QgU3Ry
aW5nJiBzdG9yYWdlRGlyZWN0b3J5KQotICAgIDogRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJwY20uZGIiX3Mp
KQorICAgIDogRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJwY20uZGIiKSkKIHsKICAgICBBU1NFUlQoIVJ1bkxv
b3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRDcmVhdGVTY2hlbWFJZk5lY2Vzc2Fy
eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDJkODM1OTAwMTIwMzA1MmYxNjYzMzk5OGU0NDBj
M2I1ZjZhNmQ5MWIuLjQxY2M0ZDkyMTBhYzE0ODg4NWZhMjM0YmQwOTEyOTIxZjNkYzAwNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBTdHJpbmcgRW5naW5lOjpzdG9y
YWdlUGF0aChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaQogICAgIGlmIChyb290RGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiAKLSAgICBTdHJpbmcgc2FsdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgInNhbHQiX3MpOworICAgIFN0cmluZyBz
YWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChyb290RGlyZWN0
b3J5LCAic2FsdCIpOwogICAgIGF1dG8gc2FsdCA9IEZpbGVTeXN0ZW06OnJlYWRPck1ha2VTYWx0
KHNhbHRQYXRoKTsKICAgICBpZiAoIXNhbHQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygp
OwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRW5naW5lOjppbml0aWFsaXplKENvbXBsZXRpb25D
YWxsYmFjayYmIGNhbGxiYWNrKQogCiAgICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcm9vdFBhdGggPSBtX3Jvb3RQYXRoLmlzb2xhdGVk
Q29weSgpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9y
aWVzKHJvb3RQYXRoKTsKLSAgICAgICAgU3RyaW5nIHNhbHRQYXRoID0gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJvb3RQYXRoLCAic2FsdCJfcyk7CisgICAgICAgIFN0cmlu
ZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChyb290UGF0
aCwgInNhbHQiKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3ZWFr
VGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBzYWx0ID0gRmlsZVN5c3RlbTo6cmVhZE9yTWFrZVNh
bHQoc2FsdFBhdGgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKaW5kZXgg
NzdhZDAwYmJhZWE1MmRlYjczMTRmMDc4OTE0OWM0OGVlNDg3MWEwYy4uZmRhODU0ZGUzOGFiYWE0
ZmU0MzE3OTE2MDVjYzc0ODZkOTZkYjczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNw
cApAQCAtNDMsMTcgKzQzLDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGU7CiAKIHN0
YXRpYyBpbmxpbmUgU3RyaW5nIGNhY2hlc0xpc3RGaWxlbmFtZShjb25zdCBTdHJpbmcmIGNhY2hl
c1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoY2FjaGVzUm9vdFBhdGgsICJjYWNoZXNsaXN0Il9zKTsKKyAgICByZXR1cm4gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RQYXRoLCAiY2FjaGVzbGlz
dCIpOwogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBjYWNoZXNPcmlnaW5GaWxlbmFtZShjb25z
dCBTdHJpbmcmIGNhY2hlc1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBhdGgsICJvcmlnaW4iX3MpOworICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBhdGgs
ICJvcmlnaW4iKTsKIH0KIAogU3RyaW5nIENhY2hlczo6Y2FjaGVzU2l6ZUZpbGVuYW1lKGNvbnN0
IFN0cmluZyYgY2FjaGVzUm9vdHNQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdHNQYXRoLCAiZXN0aW1hdGVkc2l6ZSJfcyk7
CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNoZXNS
b290c1BhdGgsICJlc3RpbWF0ZWRzaXplIik7CiB9CiAKIFJlZjxDYWNoZXM+IENhY2hlczo6Y3Jl
YXRlKEVuZ2luZSYgZW5naW5lLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0cmlu
ZyYmIHJvb3RQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAppbmRleCAzZDlkZmI5MjRj
OGQzYjU1MjliMzkxY2VhMWQ4ODBiZWI5NGY3NjQ0Li5jMjM0OWEwODJiNTY4ZGViZTNmYTU2ZDM1
OGQ1NWRkOWM2ODhmNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcApAQCAtNzksNyAr
NzksNyBAQCB2b2lkIEJsb2JTdG9yYWdlOjpzeW5jaHJvbml6ZSgpCiBTdHJpbmcgQmxvYlN0b3Jh
Z2U6OmJsb2JQYXRoRm9ySGFzaChjb25zdCBTSEExOjpEaWdlc3QmIGhhc2gpIGNvbnN0CiB7CiAg
ICAgYXV0byBoYXNoQXNTdHJpbmcgPSBTSEExOjpoZXhEaWdlc3QoaGFzaCk7Ci0gICAgcmV0dXJu
IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChibG9iRGlyZWN0b3J5UGF0aElz
b2xhdGVkQ29weSgpLCBTdHJpbmc6OmZyb21VVEY4KGhhc2hBc1N0cmluZykpOworICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmxvYkRpcmVjdG9yeVBhdGhJ
c29sYXRlZENvcHkoKSwgaGFzaEFzU3RyaW5nLmRhdGEoKSk7CiB9CiAKIEJsb2JTdG9yYWdlOjpC
bG9iIEJsb2JTdG9yYWdlOjphZGQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBEYXRhJiBkYXRh
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggYjFlNmZmM2MwNzhiZTg3MWQ5NTEwZmEzNzZjNDcw
MGUzM2MxOWZhNi4uMDkxY2EzYTA3MDUwNzVmYTc3ZDM4ODY1YjlmZTRhN2U0NDRmYjA5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVT
dG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZVN0b3JhZ2UuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIFN0cmluZyBtYWtl
Q2FjaGVQYXRoKGNvbnN0IFN0cmluZyYgYmFzZUNhY2hlUGF0aCkKICNpZiBQTEFURk9STShNQUMp
CiAgICAgLy8gUHV0IGRldmVsb3BtZW50IGNhY2hlIHRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeSB0
byBhdm9pZCBhZmZlY3RpbmcgdGhlIHN5c3RlbSBjYWNoZS4KICAgICBpZiAoIUF1eGlsaWFyeVBy
b2Nlc3M6OmlzU3lzdGVtV2ViS2l0KCkpCi0gICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoYmFzZUNhY2hlUGF0aCwgIkRldmVsb3BtZW50Il9zKTsKKyAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChiYXNlQ2Fj
aGVQYXRoLCAiRGV2ZWxvcG1lbnQiKTsKICNlbmRpZgogICAgIHJldHVybiBiYXNlQ2FjaGVQYXRo
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lE
QlN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9JREJTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggZTdiNTI2YTI5MTMzYzczYWNmOGRjODJiZmU1
ZWExZGE4NjkxYWQ3Ny4uMGE3ZTRkM2M0NzE5ZDI4NmM3YjliYzViM2UzMzEzZWFmYWViYWJjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3Jh
Z2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
SURCU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03MSw4ICs3MSw4IEBAIFN0cmluZyBJREJTdG9yYWdl
TWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIHJvb3REaXJl
Y3RvcnksCiAgICAgaWYgKHJvb3REaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIAotICAgIGF1dG8gb3JpZ2luRGlyZWN0b3J5ID0gV2ViQ29yZTo6SURC
RGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdp
biwgcm9vdERpcmVjdG9yeSwgInYxIik7Ci0gICAgYXV0byBvbGRPcmlnaW5EaXJlY3RvcnkgPSBX
ZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVU
b1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiKTsKKyAgICBhdXRvIG9yaWdpbkRpcmVj
dG9yeSA9IFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlS
ZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3RvcnksICJ2MSJfcyk7CisgICAgYXV0byBv
bGRPcmlnaW5EaXJlY3RvcnkgPSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFi
YXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiX3Mp
OwogICAgIG1pZ3JhdGVPcmlnaW5EYXRhSW1wbChvbGRPcmlnaW5EaXJlY3RvcnksIG9yaWdpbkRp
cmVjdG9yeSwgW10oY29uc3QgU3RyaW5nJiBuYW1lKSB7CiAgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpTUUxpdGVGaWxlU3lzdGVtOjpjb21wdXRlSGFzaEZvckZpbGVOYW1lKFdlYkNvcmU6OklEQlNl
cnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWNvZGVEYXRhYmFzZU5hbWUobmFtZSkpOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGI0ZjNkODU1MTA0MmQ5NTRkZWNh
YTkxOWIyMDIxNjMyZmI4NTczZTIuLmJiMjdmNDllMzZjYzA5NGI3MGZiMTRmYzFmMGVhMmIzOTYz
NGEwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9M
b2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTM1LDE3ICszNSwxNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogLy8gU3VnZ2VzdGVkIGJ5IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93
ZWJzdG9yYWdlLyNkaXNrLXNwYWNlCiBjb25zdGV4cHIgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVv
dGFJbkJ5dGVzID0gNSAqIE1COwotY29uc3RleHByIGF1dG8gZmlsZVN1ZmZpeCA9ICIubG9jYWxz
dG9yYWdlIl9zOwotY29uc3RleHByIGF1dG8gZmlsZU5hbWUgPSAibG9jYWxzdG9yYWdlLnNxbGl0
ZTMiX3M7Citjb25zdGV4cHIgYXV0byBzX2ZpbGVTdWZmaXggPSAiLmxvY2Fsc3RvcmFnZSJfczsK
K2NvbnN0ZXhwciBhdXRvIHNfZmlsZU5hbWUgPSAibG9jYWxzdG9yYWdlLnNxbGl0ZTMiX3M7CiAK
IC8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZXhpc3RpbmcgZmlsZXMuCiAvLyBX
ZSBzaG91bGQgbm90IGluY2x1ZGUgb3JpZ2luIGluIGZpbGUgbmFtZS4KIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZmlsZU5hbWVUb09yaWdpbihjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKQogewotICAgIGlmICghZmlsZU5hbWUuZW5kc1dpdGgoZmlsZVN1
ZmZpeCkpCisgICAgaWYgKCFmaWxlTmFtZS5lbmRzV2l0aChzX2ZpbGVTdWZmaXgpKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBzdWZmaXhMZW5ndGggPSBzdHJsZW4o
ZmlsZVN1ZmZpeCk7CisgICAgYXV0byBzdWZmaXhMZW5ndGggPSBzX2ZpbGVTdWZmaXgubGVuZ3Ro
KCk7CiAgICAgYXV0byBmaWxlTmFtZUxlbmd0aCA9IGZpbGVOYW1lLmxlbmd0aCgpOwogICAgIGlm
IChmaWxlTmFtZUxlbmd0aCA8PSBzdWZmaXhMZW5ndGgpCiAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CkBAIC04Niw3ICs4Niw3IEBAIFN0cmluZyBMb2NhbFN0b3JhZ2VNYW5hZ2VyOjpsb2Nh
bFN0b3JhZ2VGaWxlUGF0aChjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSkKICAgICBpZiAoZGlyZWN0
b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1
cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgZmlsZU5h
bWUpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGly
ZWN0b3J5LCBTdHJpbmdWaWV3IHsgc19maWxlTmFtZSB9KTsKIH0KIAogTG9jYWxTdG9yYWdlTWFu
YWdlcjo6TG9jYWxTdG9yYWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIHBhdGgsIFN0b3JhZ2VBcmVh
UmVnaXN0cnkmIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JSZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JSZXNvdXJjZVVSTFNj
aGVtZUhhbmRsZXIuY3BwCmluZGV4IDQ3NGE1OGNkZWIwNTZiNjhlYWZlMTFjMDRlYTkwMDI0Mjkw
MjdiNTUuLjY5NTI3ZWRhNzI2M2Q4ZjM3ZTNhODA5NjI1MjhlZTE2M2Q2ZDc1ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVzb3Vy
Y2VVUkxTY2hlbWVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3Ivd2luL0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ3LDcg
KzQ3LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXI6OnBsYXRmb3Jt
U3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFMKICAgICBpZiAocmVxdWVzdFBhdGguc3Rh
cnRzV2l0aCgiXFwiKSkKICAgICAgICAgcmVxdWVzdFBhdGgucmVtb3ZlKDApOwogICAgIGF1dG8g
cGF0aCA9IFVSTChhZG9wdENGKENGQnVuZGxlQ29weUJ1bmRsZVVSTChXZWJDb3JlOjp3ZWJLaXRC
dW5kbGUoKSkpLmdldCgpKS5maWxlU3lzdGVtUGF0aCgpOwotICAgIHBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgIldlYkluc3BlY3RvclVJIl9zKTsKKyAg
ICBwYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsICJXZWJJ
bnNwZWN0b3JVSSIpOwogICAgIHBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQocGF0aCwgcmVxdWVzdFBhdGgpOwogICAgIGJvb2wgc3VjY2VzczsKICAgICBGaWxlU3lz
dGVtOjpNYXBwZWRGaWxlRGF0YSBmaWxlKHBhdGgsIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2Rl
OjpQcml2YXRlLCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVy
TWFjLm1tCmluZGV4IDMxOGZhZDFhZDZmYzVlYzcyNzA3MzNhYTBkOTkyNGFiZmRiOGQ2MjIuLjQ5
ODlmMzhkMDg0YmQyNDU4MmM4ZDY4M2U1YWU4NzJjMzcyNDUzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElu
bGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgQVJL
aXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwm
IG1vZGVsU291cmNlKQogICAgIH0KIAogICAgIC8vIFdlIG5lZWQgdG8gc3VwcG9ydCAucmVhbGl0
eSBmaWxlcyBhcyB3ZWxsLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI3NTY4LgotICAgIGF1dG8gZmlsZU5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFt
ZShjcmVhdGVWZXJzaW9uNFVVSURTdHJpbmcoKSkgKyAiLnVzZHoiOworICAgIFN0cmluZyBmaWxl
TmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKGNyZWF0ZVZlcnNpb240VVVJRFN0
cmluZygpKSArICIudXNkeiI7CiAgICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChwYXRoVG9EaXJlY3RvcnksIGZpbGVOYW1lKTsKICAgICBhdXRv
IGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShmaWxlUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpXcml0ZSk7CiAgICAgaWYgKGZpbGUgPD0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKaW5kZXggMjI4ZjRhMzZkNGIw
ZjIyMmMxNzg2MGQwYmM0OThjMWY5ZTA4OWEyMS4uYjM2MTFkZTdmYjk3OTM5MjEyZDg0ZGY4Y2Y1
YWQ0MTQyOGU2Zjg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0
b3JhZ2VTeW5jTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0
b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgU3RyaW5nIFN0b3JhZ2VTeW5j
TWFuYWdlcjo6ZnVsbERhdGFiYXNlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50
aWZpZXIKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBkYXRhYmFzZUlkZW50aWZp
ZXIgKyAiLmxvY2Fsc3RvcmFnZSIpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9wYXRoLCBtYWtlU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllciwgIi5s
b2NhbHN0b3JhZ2UiKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChG
dW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLm1tCmluZGV4IGFkYzRjMzk4ODRj
NGNiMmQyYTNiZWI2YjE5NWJjZGEwMDA4OWMxNzEuLmM4NzMzMDdkMGYyZGJkYzU0YzVmN2NjNzZj
MTE1ZjQ1YzE1OTRhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0b3Jh
Z2UvV2ViRGF0YWJhc2VQcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9T
dG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIubW0KQEAgLTMzLDkgKzMzLDkgQEAgU3RyaW5nIFdl
YkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgIE5T
VXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c107CiAgICAgTlNTdHJpbmcgKmRhdGFiYXNlc0RpcmVjdG9yeSA9IFtkZWZhdWx0cyBvYmpl
Y3RGb3JLZXk6V2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleV07CiAgICAgaWYgKCFkYXRh
YmFzZXNEaXJlY3RvcnkgfHwgIVtkYXRhYmFzZXNEaXJlY3RvcnkgaXNLaW5kT2ZDbGFzczpbTlNT
dHJpbmcgY2xhc3NdXSkKLSAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCJ+L0xpYnJhcnkvV2ViS2l0L0RhdGFiYXNlcy9fX19J
bmRleGVkREIiX3MsIFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pOwor
ICAgICAgICBkYXRhYmFzZXNEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoIn4vTGlicmFyeS9XZWJLaXQvRGF0YWJhc2VzL19fX0luZGV4ZWREQiIsIFN0cmlu
ZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKSk7CiAgICAgZWxzZQot
ICAgICAgICBkYXRhYmFzZXNEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoZGF0YWJhc2VzRGlyZWN0b3J5LCAiX19fSW5kZXhlZERCIl9zKTsKKyAgICAgICAg
ZGF0YWJhc2VzRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KFN0cmluZyhkYXRhYmFzZXNEaXJlY3RvcnkpLCAiX19fSW5kZXhlZERCIik7CiAgICAgCiAgICAg
cmV0dXJuIFtkYXRhYmFzZXNEaXJlY3Rvcnkgc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTljNmVi
YTQyYjNhN2UzZjcwNGVkNTJhMjU3NDFhMzBjYzM1NGM2Yi4uOTY4MjI5MjUwYjhjM2IwYzFhY2Y2
ZWMxOGVhOTg2MmE2YmI3ZWJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtMTUzNCw3ICsxNTM0LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6
YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3QK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpzZXRNZWRpYUNhY2hlRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChOU1RlbXBvcmFyeURpcmVjdG9yeSgpLCAiTWVkaWFDYWNoZS8iX3MpKTsKKyAg
ICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFDYWNoZURpcmVjdG9yeShG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3RyaW5nKE5TVGVtcG9yYXJ5RGly
ZWN0b3J5KCkpLCAiTWVkaWFDYWNoZS8iKSk7CiAjZW5kaWYKICAgICAgICAgZGlkT25lVGltZUlu
aXRpYWxpemF0aW9uID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTg4MTgzN2U0NGJjZTAyNzM4YjdjOThhNGYzODRhMTI2
Nzk2NTlkOS4uNTM1OTE5N2VhY2NjNDI2MGM0MTViNTk3OWJiNDVhNDc2N2I3Mjc5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4g
U3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0
ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAyMi0wMy0yNCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVw
ZGF0ZSBvdXRkYXRlZCBjb21tZW50IGFmdGVyIHIyOTE3ODcuCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDk5OTU3NWE2ZWMyNzJmOGI0MjFiYmUw
MjQxMjcwZDk2NDMwYmNlMzQuLmM0Njc0YWZhNjA4NzYzNjdiM2NmNjc2YzJlNTdmZGRiMzBiODg0
OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0u
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBA
IC0yNjQsMTMgKzI2NCwxMyBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGZpbGVFeGlzdHMpCiAg
ICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRmlsZVN5bWxpbmtQYXRo
KCkpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZp
bGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBF
bXB0eUZvbGRlclBhdGgoKSkpOwotICAgIEVYUEVDVF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQ
YXRoKCksICJkb2VzLW5vdC1leGlzdCJfcykpKTsKKyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3Rl
bTo6ZmlsZUV4aXN0cyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVt
cHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKSkpOwogfQogCiBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIGZpbGVFeGlzdHNCcm9rZW5TeW1saW5rKQogewotICAgIGF1dG8gZG9lc05vdEV4
aXN0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlG
b2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJfcyk7Ci0gICAgYXV0byBzeW1saW5rUGF0aCA9
IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRo
KCksICJkb2VzLW5vdC1leGlzdC1zeW1saW5rIl9zKTsKKyAgICBhdXRvIGRvZXNOb3RFeGlzdFBh
dGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVy
UGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsKKyAgICBhdXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRv
ZXMtbm90LWV4aXN0LXN5bWxpbmsiKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpjcmVh
dGVTeW1ib2xpY0xpbmsoZG9lc05vdEV4aXN0UGF0aCwgc3ltbGlua1BhdGgpKTsKICAgICBFWFBF
Q1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhkb2VzTm90RXhpc3RQYXRoKSk7CiAgICAg
RVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc3ltbGlua1BhdGgpKTsgLy8gZmls
ZUV4aXN0cygpIGZvbGxvd3Mgc3ltbGlua3MuCkBAIC0yODEsNyArMjgxLDcgQEAgVEVTVF9GKEZp
bGVTeXN0ZW1UZXN0LCBmaWxlRXhpc3RzQnJva2VuU3ltbGluaykKIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgZmlsZUV4aXN0c1N5bWxpbmtUb1N5bWxpbmspCiB7CiAgICAgLy8gQ3JlYXRlIGEgdmFs
aWQgc3ltbGluayB0byBhIHN5bWxpbmsgdG8gYSByZWd1bGFyIGZpbGUuCi0gICAgYXV0byBzeW1s
aW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlG
b2xkZXJQYXRoKCksICJzeW1saW5rIl9zKTsKKyAgICBhdXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInN5
bWxpbmsiKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpjcmVhdGVTeW1ib2xpY0xpbmso
dGVtcEZpbGVTeW1saW5rUGF0aCgpLCBzeW1saW5rUGF0aCkpOwogICAgIEVYUEVDVF9UUlVFKEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfRVEoRmlsZVN5
c3RlbTo6ZmlsZVR5cGUoc3ltbGlua1BhdGgpLCBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6U3ltYm9s
aWNMaW5rKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGZpbGVT
aXplKQogICAgIEFTU0VSVF9UUlVFKGZpbGVTaXplKTsKICAgICBFWFBFQ1RfRVEoKmZpbGVTaXpl
LCAwVSk7CiAKLSAgICBTdHJpbmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3Qt
ZXhpc3QiX3MpOworICAgIFN0cmluZyBmaWxlVGhhdERvZXNOb3RFeGlzdCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5v
dC1leGlzdCIpOwogICAgIGZpbGVTaXplID0gRmlsZVN5c3RlbTo6ZmlsZVNpemUoZmlsZVRoYXRE
b2VzTm90RXhpc3QpOwogICAgIEVYUEVDVF9UUlVFKCFmaWxlU2l6ZSk7CiB9CkBAIC00OTgsNyAr
NDk4LDcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCB2b2x1bWVGcmVlU3BhY2UpCiAgICAgQVNT
RVJUX1RSVUUoZnJlZVNwYWNlKTsKICAgICBFWFBFQ1RfR1QoKmZyZWVTcGFjZSwgMFUpOwogCi0g
ICAgU3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Il9zKTsK
KyAgICBTdHJpbmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsK
ICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6dm9sdW1lRnJlZVNwYWNlKGZpbGVUaGF0RG9l
c05vdEV4aXN0KSk7CiB9CiAKQEAgLTUzMywxMCArNTMzLDEwIEBAIFRFU1RfRihGaWxlU3lzdGVt
VGVzdCwgY3JlYXRlU3ltYm9saWNMaW5rRm9sZGVyKQogCiBURVNUX0YoRmlsZVN5c3RlbVRlc3Qs
IGNyZWF0ZVN5bWJvbGljTGlua0ZpbGVEb2VzTm90RXhpc3QpCiB7Ci0gICAgU3RyaW5nIGZpbGVU
aGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRl
bXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Il9zKTsKKyAgICBTdHJpbmcgZmls
ZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
dGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsKICAgICBFWFBFQ1RfRkFM
U0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhmaWxlVGhhdERvZXNOb3RFeGlzdCkpOwogCi0gICAg
YXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0
ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdC1zeW1saW5rIl9zKTsKKyAgICBh
dXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRl
bXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0LXN5bWxpbmsiKTsKICAgICBFWFBF
Q1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzeW1saW5rUGF0aCkpOwogICAgIEVYUEVD
VF9UUlVFKEZpbGVTeXN0ZW06OmNyZWF0ZVN5bWJvbGljTGluayhmaWxlVGhhdERvZXNOb3RFeGlz
dCwgc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0
cyhzeW1saW5rUGF0aCkpOwo=
</data>
<flag name="commit-queue"
          id="483733"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455678</attachid>
            <date>2022-03-24 14:04:20 -0700</date>
            <delta_ts>2022-03-24 18:13:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238344-20220324140419.patch</filename>
            <type>text/plain</type>
            <size>37005</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMDFkMjYyMGI4ZmNhMTQx
NDY1ZjFiYmQyOWU4M2Q3NDI2ZDk4ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0
YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2MuY3BwOgorCiAyMDIyLTAzLTIzICBH
ZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtKU0NdIEZpeCByZW1vdGVG
dW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5YmMzMGI4ZTZlY2QyZDdjMzliYzIy
MDAxNTc1OWJjNDg1MjFjNzlkLi43M2Y2MWVlOWJkMGZiYWUwYzI1N2M3Y2FkNWYwZDcwZjQ2OWRh
MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0
ZWFkIG9mIFN0cmluZ3MsIHRvIGF2b2lkCisgICAgICAgIHVubmVjZXNzYXJ5IFN0cmluZyBjb25z
dHJ1Y3RvciBpbiBtYW55IGluc3RhbmNlcy4KKworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dCk6CisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiB3dGYvcG9zaXgvRmls
ZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyByZXZlcnNlRmluZCgpIC8gcmVw
bGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOGNlNjFiZDZjZWRlOTUyODg2YzQ0YWEzNzE5NTQ1MjBjM2JjNjM0OC4uZDlh
MzIzYzRlMmQwMThkNmY3MzQyM2YxNzBlMjAzNjVlMjg3MTg1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRh
a2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9S
b290KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVz
QW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRp
c2tVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFk
ZWREYXRhYmFzZURpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9Pcmln
aW5Mb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2tGaWxlTmFtZUZvclBhdGgpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNldFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRleCk6CisKIDIwMjItMDMtMjQgIEplYW4t
WXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgY2FuJ3QgcGxh
eSB2aWRlbyBjb21wbGV0ZWx5IGF0IGJpbGliaWxpLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NjVkY2UwYjBj
NmExYzM2NzdjMTdhMzcyMDIyOGZjMTFmN2Q4ZjVkLi44M2U1NWJmNjMxNDdmNTYwMzc0ZTMxODVh
ZmU1ZDE1OGI4NWE5ZjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAzLTI0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVh
ZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50RGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpQQ006OkRhdGFiYXNl
OjpEYXRhYmFzZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnN0b3Jh
Z2VQYXRoKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmluaXRpYWxp
emUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Y2FjaGVzTGlzdEZpbGVu
YW1lKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpjYWNoZXNPcmlnaW5GaWxlbmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVzOjpjYWNoZXNTaXplRmls
ZW5hbWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JT
dG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpCbG9iU3RvcmFnZTo6
YmxvYlBhdGhGb3JIYXNoIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpt
YWtlQ2FjaGVQYXRoKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3Jh
Z2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SURCU3RvcmFnZU1hbmFnZXI6OmlkYlN0
b3JhZ2VPcmlnaW5EaXJlY3RvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Ivd2lu
L0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
Okluc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlcjo6cGxhdGZvcm1TdGFydFRhc2spOgor
CiAyMDIyLTAzLTI0ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFtXaW5DYWlyb10gV0NUaWxlR3JpZCBzaG91bGQgY3JlYXRlIHRpbGVzIG9ubHkg
Zm9yIHRoZSBpbnNpZGUgb2YgbGF5ZXIgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM5YzMyN2ZmZjBk
OTQ5YjZiYjAwZmEwMzQwMjZhMTRmNGMwNzE3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgp
IHNob3VsZCB0YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzQ0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlL1dlYkRhdGFi
YXNlUHJvdmlkZXIubW06CisgICAgICAgIChXZWJEYXRhYmFzZVByb3ZpZGVyOjppbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnlQYXRoKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5h
bWU6XSk6CisKIDIwMjItMDMtMTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1MgMTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKaW5kZXggYmQyZWI4MTJjNmMzN2VkNTJlZGM2M2I5MjY3ZmNiY2E5ODE1OTRhMy4uMTI2
MzY5Y2FiMDcwZGEyMWU2NDhiOGI1ZWVkOWFkNjcxMjFlYmVkOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAKQEAgLTEwOTYsNyArMTA5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4geyB9
OwogICAgICAgICBjb25zdCBjaGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRo
KCk7CiAgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVO
YW1lKEZpbGVTeXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2go
c291cmNlT3JpZ2luKCkudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSkpOwotICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0cmluZyB7IGNhY2hlUGF0aCB9
LCBtYWtlU3RyaW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAi
LmJ5dGVjb2RlLWNhY2hlIikpOworICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGNhY2hlUGF0aCwgbWFrZVN0cmluZyhzb3VyY2UoKS50b1N0cmluZygp
Lmhhc2goKSwgJy0nLCBmaWxlbmFtZSwgIi5ieXRlY29kZS1jYWNoZSIpKTsKICAgICB9CiAKICAg
ICB2b2lkIGxvYWRCeXRlY29kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9G
aWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGQ1YzIy
NDk4MmRhOTI5MGY1M2NlNzBhMDQ4Y2I0MjcxYTJjNDljMTAuLjcxZTRkY2ZhNWNkNjk0MTdkYmVj
Y2NjOWNhY2FlOGYxNTQ4NWFkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC04MjEsNyArODIx
LDcgQEAgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJl
dHVybiAhZWM7CiB9CiAKLVN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbXBvbmVudCkKK1N0cmluZyBwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoU3RyaW5nVmlldyBwYXRoLCBTdHJpbmdWaWV3IGNvbXBvbmVudCkKIHsKICAg
ICByZXR1cm4gZnJvbVN0ZEZpbGVTeXN0ZW1QYXRoKHRvU3RkRmlsZVN5c3RlbVBhdGgocGF0aCkg
LyB0b1N0ZEZpbGVTeXN0ZW1QYXRoKGNvbXBvbmVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvRmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmluZGV4
IDk5NTFhNGIxNGMwYmY5NDFhZTBmYjY3YzA2ZDQzMjMwNmI1Y2YwM2QuLjQyZWZiYzQzNmNmM2Fi
M2M3M2ZjNGU5N2Y5YjQwNzkwYTFhZWNiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zp
bGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTExNyw3ICsx
MTcsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZmlsZU1v
ZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB1
cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpOyAvLyBTZXRzIG1v
ZGlmaWNhdGlvbiB0aW1lIHRvIG5vdy4KIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBmaWxlQ3JlYXRpb25UaW1lKGNvbnN0IFN0cmluZyYpOyAvLyBOb3QgYWxsIHBs
YXRmb3JtcyBzdG9yZSBmaWxlIGNyZWF0aW9uIHRpbWUuCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCBpc0hpZGRlbkZpbGUoY29uc3QgU3RyaW5nJik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5n
IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmlu
ZyYgY29tcG9uZW50KTsKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KFN0cmluZ1ZpZXcgcGF0aCwgU3RyaW5nVmlldyBjb21wb25lbnQpOwogV1RGX0VY
UE9SVF9QUklWQVRFIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcg
cGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wb25lbnRzKTsKIFdURl9FWFBPUlRf
UFJJVkFURSBTdHJpbmcgbGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChj
b25zdCBTdHJpbmcmIHBhdGgpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFrZUFsbERpcmVj
dG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3Rl
bVBPU0lYLmNwcAppbmRleCBiNzQ5Y2IxOTM2Y2YyZmZlNjA3MjYxM2RkOWM0ZWY1MDhmZDVkMjIz
Li4zZTY3NjliNmM1ZjFlNGEzOWYyMTZkYTI5MzRkOWQ3MGY2OGZmNjFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTI5OCwxMSArMjk4LDExIEBAIGJvb2wg
bWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQorU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChTdHJpbmdWaWV3IHBhdGgsIFN0cmluZ1ZpZXcgY29tcG9uZW50KQogewogICAgIGlmIChwYXRo
LmVuZHNXaXRoKCcvJykpCi0gICAgICAgIHJldHVybiBwYXRoICsgY29tcG9uZW50OwotICAgIHJl
dHVybiBwYXRoICsgIi8iICsgY29tcG9uZW50OworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhw
YXRoLCBjb21wb25lbnQpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHBhdGgsICcvJywgY29tcG9u
ZW50KTsKIH0KIAogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBw
YXRoLCBjb25zdCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXBvbmVudHMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4v
RmlsZVN5c3RlbVdpbi5jcHAKaW5kZXggMmJjOGYyMDEwNTFjN2Q4NWIxN2I0NGFjMjczOGQyZWQw
MWYyZDk0YS4uYjJjOTZlMGM3YjdlYTEwYjhlYTJkODAzNGYwZTA3MmU1NWQxODBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyBT
dHJpbmcgc3RvcmFnZURpcmVjdG9yeShEV09SRCBwYXRoSWRlbnRpZmllcikKICAgICBidWZmZXIu
c2hyaW5rKHdjc2xlbih3Y2hhckZyb20oYnVmZmVyLmRhdGEoKSkpKTsKICAgICBTdHJpbmcgZGly
ZWN0b3J5ID0gU3RyaW5nOjphZG9wdChXVEZNb3ZlKGJ1ZmZlcikpOwogCi0gICAgZGlyZWN0b3J5
ID0gcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgIkFwcGxlIENvbXB1dGVyXFwi
ICsgYnVuZGxlTmFtZSgpKTsKKyAgICBkaXJlY3RvcnkgPSBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoZGlyZWN0b3J5LCBtYWtlU3RyaW5nKCJBcHBsZSBDb21wdXRlclxcIiwgYnVuZGxlTmFtZSgp
KSk7CiAgICAgaWYgKCFtYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5KSkKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0
ZVRlbXBvcmFyeVBhdGgoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBTdHJpbmcmKT4mIGFjdGlv
bikKIAogICAgICAgICBBU1NFUlQod2NzbGVuKHRlbXBGaWxlKSA9PSBXVEZfQVJSQVlfTEVOR1RI
KHRlbXBGaWxlKSAtIDEpOwogCi0gICAgICAgIHByb3Bvc2VkUGF0aCA9IHBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudCh0ZW1wUGF0aCwgdGVtcEZpbGUpOworICAgICAgICBwcm9wb3NlZFBhdGggPSBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3RyaW5nKHRlbXBQYXRoKSwgU3RyaW5nKHRlbXBGaWxl
KSk7CiAgICAgICAgIGlmIChwcm9wb3NlZFBhdGguaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJl
YWs7CiAgICAgfSB3aGlsZSAoIWFjdGlvbihwcm9wb3NlZFBhdGgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIu
Y3BwCmluZGV4IGQ4Zjg1Njc0Y2QxMTBiMzEwOWY2YTllNDhmNzljNmQ3ZmY1YjQzZDQuLjk1NmNk
OWFiYzEyNDBjMDUxZjk2NGYxNmE1OWIyNjgzMWFlNTlkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNw
cApAQCAtNjAsMTQgKzYwLDE0IEBAIElEQkRhdGFiYXNlSWRlbnRpZmllciBJREJEYXRhYmFzZUlk
ZW50aWZpZXI6Omlzb2xhdGVkQ29weSgpICYmCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAK
LVN0cmluZyBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVU
b1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNpb25T
dHJpbmcpIGNvbnN0CitTdHJpbmcgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVj
dG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRl
cmFsIHZlcnNpb25TdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QobV9vcmlnaW4sIHJvb3REaXJlY3RvcnksIHZlcnNpb25TdHJpbmcpOwog
fQogCi1TdHJpbmcgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0
aXZlVG9Sb290KGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHJvb3RE
aXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKK1N0cmluZyBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50
T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFs
IHZlcnNpb25TdHJpbmcpCiB7Ci0gICAgU3RyaW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgdmVyc2lvblN0cmlu
Zyk7CisgICAgU3RyaW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgU3RyaW5nVmlldyB7IHZlcnNpb25TdHJpbmcg
fSk7CiAgICAgU3RyaW5nIG1haW5GcmFtZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudCh2ZXJzaW9uRGlyZWN0b3J5LCBvcmlnaW4udG9wT3JpZ2luLmRhdGFi
YXNlSWRlbnRpZmllcigpKTsKIAogICAgIC8vIElmIHRoZSBvcGVuaW5nIG9yaWdpbiBhbmQgbWFp
biBmcmFtZSBvcmlnaW5zIGFyZSB0aGUgc2FtZSwgdGhlcmUgaXMgbm8gcGFydGl0aW9uaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUlkZW50aWZpZXIuaAppbmRleCAyNzFkZWQ0ZGVlOGI4ODhkMzFlNGM0YzExZTFkMWZjODg5ZGJh
NmFiLi42MzhlMWYwYjZiNWUyZDA1OGQ5OWZkZjlhOGZkODAxODQxNTdjNjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50
aWZpZXIuaApAQCAtNzAsOCArNzAsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ2xpZW50T3JpZ2lu
JiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGJvb2wgaXNUcmFuc2ll
bnQoKSBjb25zdCB7IHJldHVybiBtX2lzVHJhbnNpZW50OyB9CiAKLSAgICBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNv
bnN0IFN0cmluZyYgdmVyc2lvblN0cmluZz0idjEiKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZl
cnNpb25TdHJpbmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290
KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25TdHJpbmcg
PSAidjEiX3MpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmIHJvb3REaXJlY3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9uU3RyaW5nKTsKIAogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJREJEYXRhYmFzZUlk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDc3ZGY2NjdkNDA5OWQ2
ZmI3ZDg1YTA1NWMyMDA0ZTY3YjJhYjViMWQuLmU4OTg3YTY5MWZlMjNhNjhlMzI5MjNhOGE0YTBk
NWFmYWMwOTU2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01MzAsMTAgKzUzMCwxMCBAQCB2b2lkIElEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKCpuYW1lQW5k
VmVyc2lvbikpOwogICAgIH0KIAotICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJ
ZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRh
YmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpOworICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0
YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwg
bV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5k
VmVyc2lvbkZyb21PcmlnaW5EaXJlY3Rvcnkob2xkRGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQ
YXRocywgcmVzdWx0KTsKIAotICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlm
aWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURp
cmVjdG9yeVBhdGgsICJ2MSIpOworICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVu
dGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZy
b21PcmlnaW5EaXJlY3RvcnkoZGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVzdWx0
KTsKIAogICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpOwpAQCAtNzU4LDggKzc1OCw4IEBAIHVpbnQ2NF90IElEQlNlcnZl
cjo6ZGlza1VzYWdlKGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3Jp
Z2luJiBvCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIG9sZFZl
cnNpb25PcmlnaW5EaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiX3N0cik7Ci0g
ICAgYXV0byBuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVy
OjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwg
InYxIl9zdHIpOworICAgIGF1dG8gb2xkVmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFi
YXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJv
b3REaXJlY3RvcnksICJ2MCJfcyk7CisgICAgYXV0byBuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5
ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290
KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYxIl9zKTsKICAgICByZXR1cm4gU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG9sZFZlcnNpb25PcmlnaW5EaXJl
Y3RvcnkpICsgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5
KG5ld1ZlcnNpb25PcmlnaW5EaXJlY3RvcnkpOwogfQogCkBAIC03NzUsOSArNzc1LDkgQEAgdm9p
ZCBJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KCkKIAogU3RyaW5nIElEQlNlcnZl
cjo6dXBncmFkZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlk
ZW50aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9
IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50
aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5
UGF0aCwgInYwIl9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFt
ZSgpKSk7Ci0gICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7
CisgICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJl
Y3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAg
ICBTdHJpbmcgZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JG
aWxlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJh
c2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3Jp
Z2luRGlyZWN0b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJl
Y3RvcmllcyhuZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCA3NTYwY2QwOTVkYjU5OTYzMDhh
ZmRlNjA4MzI4YjQ1NGMyMjdlZWVmLi5kNDY1MWRiZTkzMGFhNGI3NmNlNTlkYTUyYzI5NmU2YWU2
OWYwMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09y
aWdpbkxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3Jp
Z2luTG9jay5jcHAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgU3RyaW5nIGxvY2tGaWxlTmFtZUZvclBhdGgoY29uc3QgU3RyaW5nJiBvcmlnaW5QYXRoKQog
ewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob3JpZ2lu
UGF0aCwgIi5sb2NrIl9zKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KG9yaWdpblBhdGgsICIubG9jayIpOwogfQogCiBPcmlnaW5Mb2NrOjpPcmlnaW5M
b2NrKGNvbnN0IFN0cmluZyYgb3JpZ2luUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5k
ZXggMjFhMjc5OTJkMjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMwYS4uNzZlNjMxYjVmYWEy
M2Q3NDUyYzY5MDA3ZmNlNGM1OTE1ZWQxZGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0K
QEAgLTQwNSw4ICs0MDUsOCBAQCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3RvcgogICAgICAgICBpZiAo
IUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhzdG9yYWdlRGlyZWN0b3J5KSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9IGVsc2UgaWYgKCpmaWxlVHlwZSAhPSBGaWxlU3lzdGVtOjpG
aWxlVHlwZTo6RGlyZWN0b3J5KSB7Ci0gICAgICAgIGF1dG8gdGVtcERpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIk1lZGlhS2V5cyIpOwotICAgICAgICBp
ZiAoIXRlbXBEaXJlY3RvcnkpCisgICAgICAgIFN0cmluZyB0ZW1wRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6Y3JlYXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiTWVkaWFLZXlzIik7CisgICAgICAgIGlm
ICh0ZW1wRGlyZWN0b3J5LmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGF1dG8gdGVtcFN0b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHRlbXBEaXJlY3RvcnksIEZpbGVTeXN0ZW06OnBhdGhGaWxlTmFtZShzdG9yYWdlUGF0aCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxD
YWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxDYWNoZU1hbmFnZXIuY3BwCmluZGV4IDNiZDJjYzc0Mjg2ZWM0Njc4NjQwMjQ4YzVlMWNmZWNj
NWEwMjY3YmQuLjAzNDYwZjUyNTliMDg1ZjE3NGU2MjM3ZGM3N2FkNWI2NGM4MTMyOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENh
Y2hlTWFuYWdlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6
OmxvYWRJbmRleCgpCiAgICAgaWYgKG1fZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFN0cmluZyBpbmRleEZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KG1fY2FjaGVEaXIsICJpbmRleC5kYXQiX3MpOworICAgIFN0cmluZyBpbmRleEZpbGVQYXRo
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2FjaGVEaXIsICJpbmRl
eC5kYXQiKTsKICAgICBhdXRvIGJ1ZmZlciA9IEZpbGVTeXN0ZW06OnJlYWRFbnRpcmVGaWxlKGlu
ZGV4RmlsZVBhdGgpOwogICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPRyhOZXR3b3JrLCAi
Q2FjaGUgRXJyb3I6IENvdWxkIG5vdCByZWFkICVzXG4iLCBpbmRleEZpbGVQYXRoLmxhdGluMSgp
LmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcAppbmRleCA1MTZhMmY1MDJjYzkwY2NjZTEzNmI0MzJmMjg4YTBmMzRjMDU5
ZjRkLi5jYzYxNTI0NzkzYzBmMTFjZmViOGQ0YTg0ZWNmYTlhZjRlNmUyYWE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAg
LTMxNCw3ICszMTQsNyBAQCBzdGF0aWMgSGFzaFNldDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZSo+JiBhbGxTdG9yZXMoKQogCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlJiBzdG9yZSwgU3VzcGVuZGFibGVXb3JrUXVldWUmIHdvcmtRdWV1
ZSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgOiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCkKLSAgICAsIERhdGFiYXNlVXRpbGl0aWVzKEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5UGF0aCwgIm9ic2VydmF0aW9u
cy5kYiJfcykpCisgICAgLCBEYXRhYmFzZVV0aWxpdGllcyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeVBhdGgsICJvYnNlcnZhdGlvbnMuZGIiKSkK
ICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCmluZGV4IGMwOTBjYmU1NzE4NGI3OGNiNTIx
NjAwYTExM2RjZDIyZDI4OWE0MjkuLmQ2YmMwOTAxMjAzMzFmODMwNjBiY2RhNjE0ZDkzMmFhNTlh
MjFjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcApAQCAtODIsNyArODIsNyBAQCBzdGF0aWMg
SGFzaFNldDxEYXRhYmFzZSo+JiBhbGxEYXRhYmFzZXMoKQogfQogCiBEYXRhYmFzZTo6RGF0YWJh
c2UoY29uc3QgU3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KQotICAgIDogRGF0YWJhc2VVdGlsaXRp
ZXMoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3Rvcnks
ICJwY20uZGIiX3MpKQorICAgIDogRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJwY20uZGIiKSkKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRDcmVhdGVTY2hl
bWFJZk5lY2Vzc2FyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDJkODM1OTAwMTIwMzA1MmYx
NjYzMzk5OGU0NDBjM2I1ZjZhNmQ5MWIuLjQxY2M0ZDkyMTBhYzE0ODg4NWZhMjM0YmQwOTEyOTIx
ZjNkYzAwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBTdHJpbmcg
RW5naW5lOjpzdG9yYWdlUGF0aChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaQogICAgIGlmIChyb290RGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICBTdHJpbmcgc2FsdFBhdGggPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgInNhbHQiX3MpOwor
ICAgIFN0cmluZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChyb290RGlyZWN0b3J5LCAic2FsdCIpOwogICAgIGF1dG8gc2FsdCA9IEZpbGVTeXN0ZW06OnJl
YWRPck1ha2VTYWx0KHNhbHRQYXRoKTsKICAgICBpZiAoIXNhbHQpCiAgICAgICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRW5naW5lOjppbml0aWFsaXpl
KENvbXBsZXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogCiAgICAgbV9pb1F1ZXVlLT5kaXNwYXRj
aChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcm9vdFBhdGggPSBtX3Jvb3RQ
YXRoLmlzb2xhdGVkQ29weSgpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3RlbTo6bWFr
ZUFsbERpcmVjdG9yaWVzKHJvb3RQYXRoKTsKLSAgICAgICAgU3RyaW5nIHNhbHRQYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJvb3RQYXRoLCAic2FsdCJfcyk7Cisg
ICAgICAgIFN0cmluZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChyb290UGF0aCwgInNhbHQiKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBzYWx0ID0gRmlsZVN5c3RlbTo6
cmVhZE9yTWFrZVNhbHQoc2FsdFBhdGgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
cy5jcHAKaW5kZXggNzdhZDAwYmJhZWE1MmRlYjczMTRmMDc4OTE0OWM0OGVlNDg3MWEwYy4uZmRh
ODU0ZGUzOGFiYWE0ZmU0MzE3OTE2MDVjYzc0ODZkOTZkYjczYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lQ2FjaGVzLmNwcApAQCAtNDMsMTcgKzQzLDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBOZXR3b3Jr
Q2FjaGU7CiAKIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGNhY2hlc0xpc3RGaWxlbmFtZShjb25zdCBT
dHJpbmcmIGNhY2hlc1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBhdGgsICJjYWNoZXNsaXN0Il9zKTsKKyAgICBy
ZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RQYXRo
LCAiY2FjaGVzbGlzdCIpOwogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBjYWNoZXNPcmlnaW5G
aWxlbmFtZShjb25zdCBTdHJpbmcmIGNhY2hlc1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBhdGgsICJvcmlnaW4i
X3MpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2Fj
aGVzUm9vdFBhdGgsICJvcmlnaW4iKTsKIH0KIAogU3RyaW5nIENhY2hlczo6Y2FjaGVzU2l6ZUZp
bGVuYW1lKGNvbnN0IFN0cmluZyYgY2FjaGVzUm9vdHNQYXRoKQogewotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdHNQYXRoLCAiZXN0aW1h
dGVkc2l6ZSJfcyk7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChjYWNoZXNSb290c1BhdGgsICJlc3RpbWF0ZWRzaXplIik7CiB9CiAKIFJlZjxDYWNoZXM+
IENhY2hlczo6Y3JlYXRlKEVuZ2luZSYgZW5naW5lLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBv
cmlnaW4sIFN0cmluZyYmIHJvb3RQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAppbmRl
eCAzZDlkZmI5MjRjOGQzYjU1MjliMzkxY2VhMWQ4ODBiZWI5NGY3NjQ0Li5jMjM0OWEwODJiNTY4
ZGViZTNmYTU2ZDM1OGQ1NWRkOWM2ODhmNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNw
cApAQCAtNzksNyArNzksNyBAQCB2b2lkIEJsb2JTdG9yYWdlOjpzeW5jaHJvbml6ZSgpCiBTdHJp
bmcgQmxvYlN0b3JhZ2U6OmJsb2JQYXRoRm9ySGFzaChjb25zdCBTSEExOjpEaWdlc3QmIGhhc2gp
IGNvbnN0CiB7CiAgICAgYXV0byBoYXNoQXNTdHJpbmcgPSBTSEExOjpoZXhEaWdlc3QoaGFzaCk7
Ci0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChibG9iRGly
ZWN0b3J5UGF0aElzb2xhdGVkQ29weSgpLCBTdHJpbmc6OmZyb21VVEY4KGhhc2hBc1N0cmluZykp
OworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmxvYkRp
cmVjdG9yeVBhdGhJc29sYXRlZENvcHkoKSwgaGFzaEFzU3RyaW5nLmRhdGEoKSk7CiB9CiAKIEJs
b2JTdG9yYWdlOjpCbG9iIEJsb2JTdG9yYWdlOjphZGQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBEYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9OZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggYjFlNmZmM2MwNzhiZTg3MWQ5
NTEwZmEzNzZjNDcwMGUzM2MxOWZhNi4uMDkxY2EzYTA3MDUwNzVmYTc3ZDM4ODY1YjlmZTRhN2U0
NDRmYjA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGlj
IFN0cmluZyBtYWtlQ2FjaGVQYXRoKGNvbnN0IFN0cmluZyYgYmFzZUNhY2hlUGF0aCkKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgLy8gUHV0IGRldmVsb3BtZW50IGNhY2hlIHRvIGEgZGlmZmVyZW50
IGRpcmVjdG9yeSB0byBhdm9pZCBhZmZlY3RpbmcgdGhlIHN5c3RlbSBjYWNoZS4KICAgICBpZiAo
IUF1eGlsaWFyeVByb2Nlc3M6OmlzU3lzdGVtV2ViS2l0KCkpCi0gICAgICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmFzZUNhY2hlUGF0aCwgIkRldmVsb3Bt
ZW50Il9zKTsKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChiYXNlQ2FjaGVQYXRoLCAiRGV2ZWxvcG1lbnQiKTsKICNlbmRpZgogICAgIHJldHVybiBi
YXNlQ2FjaGVQYXRoOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9JREJTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggZTdiNTI2YTI5MTMzYzcz
YWNmOGRjODJiZmU1ZWExZGE4NjkxYWQ3Ny4uMGE3ZTRkM2M0NzE5ZDI4NmM3YjliYzViM2UzMzEz
ZWFmYWViYWJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03MSw4ICs3MSw4IEBAIFN0cmlu
ZyBJREJTdG9yYWdlTWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJp
bmcmIHJvb3REaXJlY3RvcnksCiAgICAgaWYgKHJvb3REaXJlY3RvcnkuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIGF1dG8gb3JpZ2luRGlyZWN0b3J5ID0g
V2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZl
VG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYxIik7Ci0gICAgYXV0byBvbGRPcmlnaW5E
aXJlY3RvcnkgPSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0
b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiKTsKKyAgICBhdXRv
IG9yaWdpbkRpcmVjdG9yeSA9IFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJh
c2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3RvcnksICJ2MSJfcyk7
CisgICAgYXV0byBvbGRPcmlnaW5EaXJlY3RvcnkgPSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50
aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0
b3J5LCAidjAiX3MpOwogICAgIG1pZ3JhdGVPcmlnaW5EYXRhSW1wbChvbGRPcmlnaW5EaXJlY3Rv
cnksIG9yaWdpbkRpcmVjdG9yeSwgW10oY29uc3QgU3RyaW5nJiBuYW1lKSB7CiAgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpjb21wdXRlSGFzaEZvckZpbGVOYW1lKFdl
YkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWNvZGVEYXRhYmFzZU5h
bWUobmFtZSkpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGI0ZjNkODU1
MTA0MmQ5NTRkZWNhYTkxOWIyMDIxNjMyZmI4NTczZTIuLmJiMjdmNDllMzZjYzA5NGI3MGZiMTRm
YzFmMGVhMmIzOTYzNGEwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTM1LDE3ICsz
NSwxNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gU3VnZ2VzdGVkIGJ5IGh0dHBzOi8vd3d3
LnczLm9yZy9UUi93ZWJzdG9yYWdlLyNkaXNrLXNwYWNlCiBjb25zdGV4cHIgdW5zaWduZWQgbG9j
YWxTdG9yYWdlUXVvdGFJbkJ5dGVzID0gNSAqIE1COwotY29uc3RleHByIGF1dG8gZmlsZVN1ZmZp
eCA9ICIubG9jYWxzdG9yYWdlIl9zOwotY29uc3RleHByIGF1dG8gZmlsZU5hbWUgPSAibG9jYWxz
dG9yYWdlLnNxbGl0ZTMiX3M7Citjb25zdGV4cHIgYXV0byBzX2ZpbGVTdWZmaXggPSAiLmxvY2Fs
c3RvcmFnZSJfczsKK2NvbnN0ZXhwciBhdXRvIHNfZmlsZU5hbWUgPSAibG9jYWxzdG9yYWdlLnNx
bGl0ZTMiX3M7CiAKIC8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZXhpc3Rpbmcg
ZmlsZXMuCiAvLyBXZSBzaG91bGQgbm90IGluY2x1ZGUgb3JpZ2luIGluIGZpbGUgbmFtZS4KIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZmlsZU5hbWVU
b09yaWdpbihjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQogewotICAgIGlmICghZmlsZU5hbWUuZW5k
c1dpdGgoZmlsZVN1ZmZpeCkpCisgICAgaWYgKCFmaWxlTmFtZS5lbmRzV2l0aChzX2ZpbGVTdWZm
aXgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBzdWZmaXhMZW5n
dGggPSBzdHJsZW4oZmlsZVN1ZmZpeCk7CisgICAgYXV0byBzdWZmaXhMZW5ndGggPSBzX2ZpbGVT
dWZmaXgubGVuZ3RoKCk7CiAgICAgYXV0byBmaWxlTmFtZUxlbmd0aCA9IGZpbGVOYW1lLmxlbmd0
aCgpOwogICAgIGlmIChmaWxlTmFtZUxlbmd0aCA8PSBzdWZmaXhMZW5ndGgpCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CkBAIC04Niw3ICs4Niw3IEBAIFN0cmluZyBMb2NhbFN0b3JhZ2VN
YW5hZ2VyOjpsb2NhbFN0b3JhZ2VGaWxlUGF0aChjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSkKICAg
ICBpZiAoZGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVj
dG9yeSwgZmlsZU5hbWUpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoZGlyZWN0b3J5LCBTdHJpbmdWaWV3IHsgc19maWxlTmFtZSB9KTsKIH0KIAogTG9j
YWxTdG9yYWdlTWFuYWdlcjo6TG9jYWxTdG9yYWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIHBhdGgs
IFN0b3JhZ2VBcmVhUmVnaXN0cnkmIHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JSZXNvdXJjZVVSTFNjaGVtZUhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JS
ZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDQ3NGE1OGNkZWIwNTZiNjhlYWZlMTFj
MDRlYTkwMDI0MjkwMjdiNTUuLjY5NTI3ZWRhNzI2M2Q4ZjM3ZTNhODA5NjI1MjhlZTE2M2Q2ZDc1
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5z
cGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3Ivd2luL0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlci5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZVVSTFNjaGVtZUhhbmRs
ZXI6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYsIFdlYlVSTFMKICAgICBpZiAocmVx
dWVzdFBhdGguc3RhcnRzV2l0aCgiXFwiKSkKICAgICAgICAgcmVxdWVzdFBhdGgucmVtb3ZlKDAp
OwogICAgIGF1dG8gcGF0aCA9IFVSTChhZG9wdENGKENGQnVuZGxlQ29weUJ1bmRsZVVSTChXZWJD
b3JlOjp3ZWJLaXRCdW5kbGUoKSkpLmdldCgpKS5maWxlU3lzdGVtUGF0aCgpOwotICAgIHBhdGgg
PSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgIldlYkluc3BlY3Rv
clVJIl9zKTsKKyAgICBwYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHBhdGgsICJXZWJJbnNwZWN0b3JVSSIpOwogICAgIHBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQocGF0aCwgcmVxdWVzdFBhdGgpOwogICAgIGJvb2wgc3VjY2VzczsK
ICAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBmaWxlKHBhdGgsIEZpbGVTeXN0ZW06Ok1h
cHBlZEZpbGVNb2RlOjpQcml2YXRlLCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwvbWFjL0FSS2l0SW5saW5lUHJldmll
d01vZGVsUGxheWVyTWFjLm1tCmluZGV4IDMxOGZhZDFhZDZmYzVlYzcyNzA3MzNhYTBkOTkyNGFi
ZmRiOGQ2MjIuLjQ5ODlmMzhkMDg0YmQyNDU4MmM4ZDY4M2U1YWU4NzJjMzcyNDUzMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQcmV2
aWV3TW9kZWxQbGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01vZGVs
L21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1hYy5tbQpAQCAtMTAzLDcgKzEwMyw3
IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWM6OmNyZWF0ZUZpbGUoV2Vi
Q29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQogICAgIH0KIAogICAgIC8vIFdlIG5lZWQgdG8gc3Vw
cG9ydCAucmVhbGl0eSBmaWxlcyBhcyB3ZWxsLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3NTY4LgotICAgIGF1dG8gZmlsZU5hbWUgPSBGaWxlU3lzdGVtOjplbmNv
ZGVGb3JGaWxlTmFtZShjcmVhdGVWZXJzaW9uNFVVSURTdHJpbmcoKSkgKyAiLnVzZHoiOworICAg
IFN0cmluZyBmaWxlTmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKGNyZWF0ZVZl
cnNpb240VVVJRFN0cmluZygpKSArICIudXNkeiI7CiAgICAgYXV0byBmaWxlUGF0aCA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoVG9EaXJlY3RvcnksIGZpbGVOYW1l
KTsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShmaWxlUGF0aCwgRmlsZVN5
c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CiAgICAgaWYgKGZpbGUgPD0gMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlU3luY01hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKaW5kZXgg
MjI4ZjRhMzZkNGIwZjIyMmMxNzg2MGQwYmM0OThjMWY5ZTA4OWEyMS4uYjM2MTFkZTdmYjk3OTM5
MjEyZDg0ZGY4Y2Y1YWQ0MTQyOGU2Zjg4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgU3RyaW5n
IFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZnVsbERhdGFiYXNlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZUlkZW50aWZpZXIKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIAotICAg
IHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBkYXRh
YmFzZUlkZW50aWZpZXIgKyAiLmxvY2Fsc3RvcmFnZSIpOworICAgIHJldHVybiBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBtYWtlU3RyaW5nKGRhdGFiYXNlSWRl
bnRpZmllciwgIi5sb2NhbHN0b3JhZ2UiKSk7CiB9CiAKIHZvaWQgU3RvcmFnZVN5bmNNYW5hZ2Vy
OjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZVByb3ZpZGVyLm1tCmluZGV4
IGFkYzRjMzk4ODRjNGNiMmQyYTNiZWI2YjE5NWJjZGEwMDA4OWMxNzEuLmM4NzMzMDdkMGYyZGJk
YzU0YzVmN2NjNzZjMTE1ZjQ1YzE1OTRhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlkZXIubW0KQEAgLTMzLDkgKzMzLDkg
QEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeVBh
dGgoKQogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c107CiAgICAgTlNTdHJpbmcgKmRhdGFiYXNlc0RpcmVjdG9yeSA9IFtk
ZWZhdWx0cyBvYmplY3RGb3JLZXk6V2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleV07CiAg
ICAgaWYgKCFkYXRhYmFzZXNEaXJlY3RvcnkgfHwgIVtkYXRhYmFzZXNEaXJlY3RvcnkgaXNLaW5k
T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCJ+L0xpYnJhcnkvV2ViS2l0L0Rh
dGFiYXNlcy9fX19JbmRleGVkREIiX3MsIFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRl
bnRpZmllcl0pOworICAgICAgICBkYXRhYmFzZXNEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoIn4vTGlicmFyeS9XZWJLaXQvRGF0YWJhc2VzL19fX0luZGV4
ZWREQiIsIFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKSk7
CiAgICAgZWxzZQotICAgICAgICBkYXRhYmFzZXNEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VzRGlyZWN0b3J5LCAiX19fSW5kZXhlZERCIl9z
KTsKKyAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KFN0cmluZyhkYXRhYmFzZXNEaXJlY3RvcnkpLCAiX19fSW5kZXhlZERCIik7
CiAgICAgCiAgICAgcmV0dXJuIFtkYXRhYmFzZXNEaXJlY3Rvcnkgc3RyaW5nQnlTdGFuZGFyZGl6
aW5nUGF0aF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggYTljNmViYTQyYjNhN2UzZjcwNGVkNTJhMjU3NDFhMzBjYzM1NGM2Yi4uOTY4MjI5MjUw
YjhjM2IwYzFhY2Y2ZWMxOGVhOTg2MmE2YmI3ZWJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUzNCw3ICsxNTM0LDcgQEAgLSAodm9pZClfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91
cE5hbWU6KE5TU3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgICAgICBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUNhY2hlRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChOU1RlbXBvcmFyeURpcmVjdG9yeSgpLCAiTWVkaWFDYWNo
ZS8iX3MpKTsKKyAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVkaWFDYWNo
ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoU3RyaW5nKE5T
VGVtcG9yYXJ5RGlyZWN0b3J5KCkpLCAiTWVkaWFDYWNoZS8iKSk7CiAjZW5kaWYKICAgICAgICAg
ZGlkT25lVGltZUluaXRpYWxpemF0aW9uID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODJlMzAyNDIxNTZlMDY5NTZkZTg0
YTVhMWFlZGZiZWU0N2NhYTE5Ny4uNmYyYTQxMDg3MTU0N2U5OGUwYTU1ZmYwY2FjMzRmYWMwN2I0
NTI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hv
dWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwog
MjAyMi0wMy0yNCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW2dpdC13ZWJraXRdIEluc3RhbGwgZ2l0LWxmcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9GaWxlU3lzdGVtLmNwcAppbmRleCA5OTk1NzVhNmVjMjcyZjhiNDIxYmJlMDI0MTI3
MGQ5NjQzMGJjZTM0Li5jNDY3NGFmYTYwODc2MzY3YjNjZjY3NmMyZTU3ZmRkYjMwYjg4NDkxIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMjY0
LDEzICsyNjQsMTMgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlRXhpc3RzKQogICAgIEVY
UEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHModGVtcEZpbGVTeW1saW5rUGF0aCgpKSk7
CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlGaWxlUGF0
aCgpKSk7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyh0ZW1wRW1wdHlG
b2xkZXJQYXRoKCkpKTsKLSAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgp
LCAiZG9lcy1ub3QtZXhpc3QiX3MpKSk7CisgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZp
bGVFeGlzdHMoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZv
bGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0IikpKTsKIH0KIAogVEVTVF9GKEZpbGVTeXN0ZW1U
ZXN0LCBmaWxlRXhpc3RzQnJva2VuU3ltbGluaykKIHsKLSAgICBhdXRvIGRvZXNOb3RFeGlzdFBh
dGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVy
UGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiX3MpOwotICAgIGF1dG8gc3ltbGlua1BhdGggPSBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAi
ZG9lcy1ub3QtZXhpc3Qtc3ltbGluayJfcyk7CisgICAgYXV0byBkb2VzTm90RXhpc3RQYXRoID0g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgo
KSwgImRvZXMtbm90LWV4aXN0Iik7CisgICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5v
dC1leGlzdC1zeW1saW5rIik7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Y3JlYXRlU3lt
Ym9saWNMaW5rKGRvZXNOb3RFeGlzdFBhdGgsIHN5bWxpbmtQYXRoKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZG9lc05vdEV4aXN0UGF0aCkpOwogICAgIEVYUEVD
VF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHN5bWxpbmtQYXRoKSk7IC8vIGZpbGVFeGlz
dHMoKSBmb2xsb3dzIHN5bWxpbmtzLgpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1RfRihGaWxlU3lz
dGVtVGVzdCwgZmlsZUV4aXN0c0Jyb2tlblN5bWxpbmspCiBURVNUX0YoRmlsZVN5c3RlbVRlc3Qs
IGZpbGVFeGlzdHNTeW1saW5rVG9TeW1saW5rKQogewogICAgIC8vIENyZWF0ZSBhIHZhbGlkIHN5
bWxpbmsgdG8gYSBzeW1saW5rIHRvIGEgcmVndWxhciBmaWxlLgotICAgIGF1dG8gc3ltbGlua1Bh
dGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVy
UGF0aCgpLCAic3ltbGluayJfcyk7CisgICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJzeW1saW5r
Iik7CiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Y3JlYXRlU3ltYm9saWNMaW5rKHRlbXBG
aWxlU3ltbGlua1BhdGgoKSwgc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lz
dGVtOjpmaWxlRXhpc3RzKHN5bWxpbmtQYXRoKSk7CiAgICAgRVhQRUNUX0VRKEZpbGVTeXN0ZW06
OmZpbGVUeXBlKHN5bWxpbmtQYXRoKSwgRmlsZVN5c3RlbTo6RmlsZVR5cGU6OlN5bWJvbGljTGlu
ayk7CkBAIC00NjgsNyArNDY4LDcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlU2l6ZSkK
ICAgICBBU1NFUlRfVFJVRShmaWxlU2l6ZSk7CiAgICAgRVhQRUNUX0VRKCpmaWxlU2l6ZSwgMFUp
OwogCi0gICAgU3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0
Il9zKTsKKyAgICBTdHJpbmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhp
c3QiKTsKICAgICBmaWxlU2l6ZSA9IEZpbGVTeXN0ZW06OmZpbGVTaXplKGZpbGVUaGF0RG9lc05v
dEV4aXN0KTsKICAgICBFWFBFQ1RfVFJVRSghZmlsZVNpemUpOwogfQpAQCAtNDk4LDcgKzQ5OCw3
IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgdm9sdW1lRnJlZVNwYWNlKQogICAgIEFTU0VSVF9U
UlVFKGZyZWVTcGFjZSk7CiAgICAgRVhQRUNUX0dUKCpmcmVlU3BhY2UsIDBVKTsKIAotICAgIFN0
cmluZyBmaWxlVGhhdERvZXNOb3RFeGlzdCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJfcyk7CisgICAg
U3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Iik7CiAgICAg
RVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OnZvbHVtZUZyZWVTcGFjZShmaWxlVGhhdERvZXNOb3RF
eGlzdCkpOwogfQogCkBAIC01MzMsMTAgKzUzMywxMCBAQCBURVNUX0YoRmlsZVN5c3RlbVRlc3Qs
IGNyZWF0ZVN5bWJvbGljTGlua0ZvbGRlcikKIAogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBjcmVh
dGVTeW1ib2xpY0xpbmtGaWxlRG9lc05vdEV4aXN0KQogewotICAgIFN0cmluZyBmaWxlVGhhdERv
ZXNOb3RFeGlzdCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1w
dHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJfcyk7CisgICAgU3RyaW5nIGZpbGVUaGF0
RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBF
bXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0Iik7CiAgICAgRVhQRUNUX0ZBTFNFKEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZmlsZVRoYXREb2VzTm90RXhpc3QpKTsKIAotICAgIGF1dG8g
c3ltbGlua1BhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVt
cHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3Qtc3ltbGluayJfcyk7CisgICAgYXV0byBz
eW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1w
dHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdC1zeW1saW5rIik7CiAgICAgRVhQRUNUX0ZB
TFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfVFJV
RShGaWxlU3lzdGVtOjpjcmVhdGVTeW1ib2xpY0xpbmsoZmlsZVRoYXREb2VzTm90RXhpc3QsIHN5
bWxpbmtQYXRoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc3lt
bGlua1BhdGgpKTsK
</data>
<flag name="commit-queue"
          id="483770"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455714</attachid>
            <date>2022-03-24 17:48:41 -0700</date>
            <delta_ts>2022-03-24 19:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238344-20220324174840.patch</filename>
            <type>text/plain</type>
            <size>37151</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2RkNWY3ZDdiMjAzYzQxNjk2YTc4ZjU0NjUwMTE3ZjExZGRjYTU3Li40OTBiMzE2MDQ4NDI3MDQz
ZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0
YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBqc2MuY3BwOgorCiAyMDIyLTAzLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3Mgc3RhcnRzV2l0
aCgpIC8gZW5kc1dpdGgoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcg
aW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA3OWE3MTJiMmRhNDhiNDkzZmE1NjY1ZTQ1ZjRmZGQ4
Y2FiMzU2NjljLi5hZWM3OGQ3MDBkNTBkZDk3ZTMxOGY5NzY3ZGVhMjIzYTBjMTRkMjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hv
dWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoKSBzaG91bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmlu
Z3MsIHRvIGF2b2lkCisgICAgICAgIHVubmVjZXNzYXJ5IFN0cmluZyBjb25zdHJ1Y3RvciBpbiBt
YW55IGluc3RhbmNlcy4KKworICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAg
KFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCk6CisgICAgICAg
ICogd3RmL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiB3dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lY
LmNwcDoKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdHJpbmcncyBzdGFydHNXaXRoKCkgLyBlbmRzV2l0aCgpIC8gcmVwbGFjZSgpIHNo
b3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmFhMTg5ZTlmOWQyNTMwMjI5MzA4ZTAwZjNkMDNkNGJiNDdlNzlmYi4uYTk3NjE5ZjIxODZh
YTQyNWQwMDAxM2NlOTRkMjZhOGI2NWUwNDhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3Ry
aW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBH
YXJlbi4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNl
RGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmRpc2tVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFkZWREYXRhYmFzZURp
cmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9PcmlnaW5Mb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmxvY2tGaWxlTmFtZUZvclBhdGgpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakM6OnNldFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxD
YWNoZU1hbmFnZXI6OmxvYWRJbmRleCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBzdGFydHNXaXRoKCkgLyBlbmRzV2l0
aCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEg
U3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDU4YTZmZGM4YmUwNGY0OTI0YjVmMjBmNTNjMDc4Yjc5NjE2YTQ3
ZWMuLjNhN2I2ZTI3OTYwYjc3MTlhZDgzNDY1YmY0MjE2ZGY5OTRjOGMyMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91
bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODM0NAorCisgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
YWNoZVN0b3JhZ2U6OkVuZ2luZTo6c3RvcmFnZVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OkVuZ2luZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpjYWNoZXNMaXN0RmlsZW5hbWUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0
b3JhZ2U6OmNhY2hlc09yaWdpbkZpbGVuYW1lKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpDYWNoZXM6OmNhY2hlc1NpemVGaWxlbmFtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkJsb2JTdG9yYWdlOjpibG9iUGF0aEZvckhhc2ggY29uc3QpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6Om1ha2VDYWNoZVBhdGgpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpJREJTdG9yYWdlTWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9yeSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5k
bGVyOjpwbGF0Zm9ybVN0YXJ0VGFzayk6CisKIDIwMjItMDMtMjQgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbR0xpYl0gQWRkIHVzZXIgZGlyZWN0b3Jp
ZXMgdG8gV1RGOjpGaWxlU3lzdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYWM5
ZTM5ZTI2Zjc1MWU4NTU4OTVlM2JhZTlhYzQ3MzNlMTg2NmJjMS4uYTRiYTUxZWQ4MmVmMTg2NzI0
NjAxNDViMDI2OWFiMWI5Y2NhMjMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxk
IHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzNDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRl
ci5tbToKKyAgICAgICAgKFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4ZWREYXRhYmFzZURpcmVj
dG9yeVBhdGgpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKwog
MjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0
cmluZydzIHN0YXJ0c1dpdGgoKSAvIGVuZHNXaXRoKCkgLyByZXBsYWNlKCkgc2hvdWxkIHRha2Ug
aW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5k
ZXggYmQyZWI4MTJjNmMzN2VkNTJlZGM2M2I5MjY3ZmNiY2E5ODE1OTRhMy4uMTI2MzY5Y2FiMDcw
ZGEyMWU2NDhiOGI1ZWVkOWFkNjcxMjFlYmVkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTEw
OTYsNyArMTA5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAg
ICBjb25zdCBjaGFyKiBjYWNoZVBhdGggPSBPcHRpb25zOjpkaXNrQ2FjaGVQYXRoKCk7CiAgICAg
ICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVuY29kZUZvckZpbGVOYW1lKEZpbGVT
eXN0ZW06Omxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goc291cmNlT3Jp
Z2luKCkudXJsKCkuZmlsZVN5c3RlbVBhdGgoKSkpOwotICAgICAgICByZXR1cm4gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0cmluZyB7IGNhY2hlUGF0aCB9LCBtYWtlU3Ry
aW5nKHNvdXJjZSgpLnRvU3RyaW5nKCkuaGFzaCgpLCAnLScsIGZpbGVuYW1lLCAiLmJ5dGVjb2Rl
LWNhY2hlIikpOworICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGNhY2hlUGF0aCwgbWFrZVN0cmluZyhzb3VyY2UoKS50b1N0cmluZygpLmhhc2goKSwg
Jy0nLCBmaWxlbmFtZSwgIi5ieXRlY29kZS1jYWNoZSIpKTsKICAgICB9CiAKICAgICB2b2lkIGxv
YWRCeXRlY29kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVt
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGQ1YzIyNDk4MmRhOTI5
MGY1M2NlNzBhMDQ4Y2I0MjcxYTJjNDljMTAuLjcxZTRkY2ZhNWNkNjk0MTdkYmVjY2NjOWNhY2Fl
OGYxNTQ4NWFkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCkBAIC04MjEsNyArODIxLDcgQEAgYm9v
bCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiAhZWM7
CiB9CiAKLVN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBTdHJpbmcmIGNvbXBvbmVudCkKK1N0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoU3RyaW5nVmlldyBwYXRoLCBTdHJpbmdWaWV3IGNvbXBvbmVudCkKIHsKICAgICByZXR1cm4g
ZnJvbVN0ZEZpbGVTeXN0ZW1QYXRoKHRvU3RkRmlsZVN5c3RlbVBhdGgocGF0aCkgLyB0b1N0ZEZp
bGVTeXN0ZW1QYXRoKGNvbXBvbmVudCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
RmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmluZGV4IDk1NzhkYTFk
NmQ5OWQ0MzI3Nzg3YTFhZDQ1NmZhOTBhMjgzOTQ5NTUuLjZmNjY1ZDA4M2Y3NTgyNzFlMThmMzg4
ZTdiNGYzNWYwY2Q4ODQ5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBX
VEZfRVhQT1JUX1BSSVZBVEUgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gZmlsZU1vZGlmaWNhdGlv
blRpbWUoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB1cGRhdGVGaWxl
TW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgpOyAvLyBTZXRzIG1vZGlmaWNhdGlv
biB0aW1lIHRvIG5vdy4KIFdURl9FWFBPUlRfUFJJVkFURSBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1l
PiBmaWxlQ3JlYXRpb25UaW1lKGNvbnN0IFN0cmluZyYpOyAvLyBOb3QgYWxsIHBsYXRmb3JtcyBz
dG9yZSBmaWxlIGNyZWF0aW9uIHRpbWUuCiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0hpZGRl
bkZpbGUoY29uc3QgU3RyaW5nJik7Ci1XVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9u
ZW50KTsKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KFN0cmluZ1ZpZXcgcGF0aCwgU3RyaW5nVmlldyBjb21wb25lbnQpOwogV1RGX0VYUE9SVF9QUklW
QVRFIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKFN0cmluZ1ZpZXcgcGF0aCwgY29u
c3QgVmVjdG9yPFN0cmluZ1ZpZXc+JiBjb21wb25lbnRzKTsKIFdURl9FWFBPUlRfUFJJVkFURSBT
dHJpbmcgbGFzdENvbXBvbmVudE9mUGF0aElnbm9yaW5nVHJhaWxpbmdTbGFzaChjb25zdCBTdHJp
bmcmIHBhdGgpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNv
bnN0IFN0cmluZyYgcGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxl
U3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cAppbmRleCBiNzQ5Y2IxOTM2Y2YyZmZlNjA3MjYxM2RkOWM0ZWY1MDhmZDVkMjIzLi4zZTY3Njli
NmM1ZjFlNGEzOWYyMTZkYTI5MzRkOWQ3MGY2OGZmNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3Bvc2l4
L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTI5OCwxMSArMjk4LDExIEBAIGJvb2wgbWFrZUFsbERp
cmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3Ry
aW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgY29tcG9uZW50KQorU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChTdHJpbmdW
aWV3IHBhdGgsIFN0cmluZ1ZpZXcgY29tcG9uZW50KQogewogICAgIGlmIChwYXRoLmVuZHNXaXRo
KCcvJykpCi0gICAgICAgIHJldHVybiBwYXRoICsgY29tcG9uZW50OwotICAgIHJldHVybiBwYXRo
ICsgIi8iICsgY29tcG9uZW50OworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhwYXRoLCBjb21w
b25lbnQpOworICAgIHJldHVybiBtYWtlU3RyaW5nKHBhdGgsICcvJywgY29tcG9uZW50KTsKIH0K
IAogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudHMoU3RyaW5nVmlldyBwYXRoLCBjb25z
dCBWZWN0b3I8U3RyaW5nVmlldz4mIGNvbXBvbmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi93aW4vRmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKaW5kZXggMmJjOGYyMDEwNTFjN2Q4NWIxN2I0NGFjMjczOGQyZWQwMWYyZDk0YS4u
YjJjOTZlMGM3YjdlYTEwYjhlYTJkODAzNGYwZTA3MmU1NWQxODBjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dp
bi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyBTdHJpbmcgc3Rv
cmFnZURpcmVjdG9yeShEV09SRCBwYXRoSWRlbnRpZmllcikKICAgICBidWZmZXIuc2hyaW5rKHdj
c2xlbih3Y2hhckZyb20oYnVmZmVyLmRhdGEoKSkpKTsKICAgICBTdHJpbmcgZGlyZWN0b3J5ID0g
U3RyaW5nOjphZG9wdChXVEZNb3ZlKGJ1ZmZlcikpOwogCi0gICAgZGlyZWN0b3J5ID0gcGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgIkFwcGxlIENvbXB1dGVyXFwiICsgYnVuZGxl
TmFtZSgpKTsKKyAgICBkaXJlY3RvcnkgPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0
b3J5LCBtYWtlU3RyaW5nKCJBcHBsZSBDb21wdXRlclxcIiwgYnVuZGxlTmFtZSgpKSk7CiAgICAg
aWYgKCFtYWtlQWxsRGlyZWN0b3JpZXMoZGlyZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIFN0cmluZyBnZW5lcmF0ZVRlbXBvcmFy
eVBhdGgoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBTdHJpbmcmKT4mIGFjdGlvbikKIAogICAg
ICAgICBBU1NFUlQod2NzbGVuKHRlbXBGaWxlKSA9PSBXVEZfQVJSQVlfTEVOR1RIKHRlbXBGaWxl
KSAtIDEpOwogCi0gICAgICAgIHByb3Bvc2VkUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dCh0ZW1wUGF0aCwgdGVtcEZpbGUpOworICAgICAgICBwcm9wb3NlZFBhdGggPSBwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQoU3RyaW5nKHRlbXBQYXRoKSwgU3RyaW5nKHRlbXBGaWxlKSk7CiAgICAg
ICAgIGlmIChwcm9wb3NlZFBhdGguaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
fSB3aGlsZSAoIWFjdGlvbihwcm9wb3NlZFBhdGgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwCmluZGV4
IGQ4Zjg1Njc0Y2QxMTBiMzEwOWY2YTllNDhmNzljNmQ3ZmY1YjQzZDQuLjk1NmNkOWFiYzEyNDBj
MDUxZjk2NGYxNmE1OWIyNjgzMWFlNTlkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmNwcApAQCAtNjAs
MTQgKzYwLDE0IEBAIElEQkRhdGFiYXNlSWRlbnRpZmllciBJREJEYXRhYmFzZUlkZW50aWZpZXI6
Omlzb2xhdGVkQ29weSgpICYmCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLVN0cmluZyBJ
REJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29u
c3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpIGNv
bnN0CitTdHJpbmcgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0
aXZlVG9Sb290KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNp
b25TdHJpbmcpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVU
b1Jvb3QobV9vcmlnaW4sIHJvb3REaXJlY3RvcnksIHZlcnNpb25TdHJpbmcpOwogfQogCi1TdHJp
bmcgSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290
KGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3Rvcnks
IGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykKK1N0cmluZyBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50T3JpZ2luJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25T
dHJpbmcpCiB7Ci0gICAgU3RyaW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgdmVyc2lvblN0cmluZyk7CisgICAg
U3RyaW5nIHZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQocm9vdERpcmVjdG9yeSwgU3RyaW5nVmlldyB7IHZlcnNpb25TdHJpbmcgfSk7CiAgICAg
U3RyaW5nIG1haW5GcmFtZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudCh2ZXJzaW9uRGlyZWN0b3J5LCBvcmlnaW4udG9wT3JpZ2luLmRhdGFiYXNlSWRlbnRp
ZmllcigpKTsKIAogICAgIC8vIElmIHRoZSBvcGVuaW5nIG9yaWdpbiBhbmQgbWFpbiBmcmFtZSBv
cmlnaW5zIGFyZSB0aGUgc2FtZSwgdGhlcmUgaXMgbm8gcGFydGl0aW9uaW5nLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZp
ZXIuaAppbmRleCAyNzFkZWQ0ZGVlOGI4ODhkMzFlNGM0YzExZTFkMWZjODg5ZGJhNmFiLi42Mzhl
MWYwYjZiNWUyZDA1OGQ5OWZkZjlhOGZkODAxODQxNTdjNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZpZXIuaApA
QCAtNzAsOCArNzAsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGJvb2wgaXNUcmFuc2llbnQoKSBjb25z
dCB7IHJldHVybiBtX2lzVHJhbnNpZW50OyB9CiAKLSAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmlu
ZyYgdmVyc2lvblN0cmluZz0idjEiKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
U3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJp
bmcpOworICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IFN0
cmluZyYgcm9vdERpcmVjdG9yeSwgQVNDSUlMaXRlcmFsIHZlcnNpb25TdHJpbmcgPSAidjEiX3Mp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3RE
aXJlY3RvcnksIEFTQ0lJTGl0ZXJhbCB2ZXJzaW9uU3RyaW5nKTsKIAogICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxJREJEYXRhYmFzZUlkZW50aWZpZXI+
IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDc3ZGY2NjdkNDA5OWQ2ZmI3ZDg1YTA1
NWMyMDA0ZTY3YjJhYjViMWQuLmU4OTg3YTY5MWZlMjNhNjhlMzI5MjNhOGE0YTBkNWFmYWMwOTU2
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCkBAIC01MzAsMTAgKzUzMCwxMCBAQCB2b2lkIElEQlNlcnZlcjo6Z2V0
QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKCpuYW1lQW5kVmVyc2lvbikp
OwogICAgIH0KIAotICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVy
OjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVj
dG9yeVBhdGgsICJ2MCIpOworICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVu
dGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MCJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZy
b21PcmlnaW5EaXJlY3Rvcnkob2xkRGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVz
dWx0KTsKIAotICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRh
YmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBh
dGgsICJ2MSIpOworICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpk
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9y
eVBhdGgsICJ2MSJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21PcmlnaW5E
aXJlY3RvcnkoZGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVzdWx0KTsKIAogICAg
IGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpOwpAQCAtNzU4LDggKzc1OCw4IEBAIHVpbnQ2NF90IElEQlNlcnZlcjo6ZGlza1Vz
YWdlKGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBvCiB7
CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIG9sZFZlcnNpb25Pcmln
aW5EaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVs
YXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiX3N0cik7Ci0gICAgYXV0byBu
ZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFz
ZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9vdERpcmVjdG9yeSwgInYxIl9zdHIp
OworICAgIGF1dG8gb2xkVmVyc2lvbk9yaWdpbkRpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRp
Zmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3Rv
cnksICJ2MCJfcyk7CisgICAgYXV0byBuZXdWZXJzaW9uT3JpZ2luRGlyZWN0b3J5ID0gSURCRGF0
YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwg
cm9vdERpcmVjdG9yeSwgInYxIl9zKTsKICAgICByZXR1cm4gU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG9sZFZlcnNpb25PcmlnaW5EaXJlY3RvcnkpICsg
U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZXNTaXplRm9yRGlyZWN0b3J5KG5ld1ZlcnNp
b25PcmlnaW5EaXJlY3RvcnkpOwogfQogCkBAIC03NzUsOSArNzc1LDkgQEAgdm9pZCBJREJTZXJ2
ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KCkKIAogU3RyaW5nIElEQlNlcnZlcjo6dXBncmFk
ZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXIm
IGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZp
ZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0
YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYw
Il9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKSk7Ci0g
ICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3Ry
aW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxh
dGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBTdHJpbmcg
ZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxlTmFtZShp
ZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VEaXJlY3Rv
cnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2luRGlyZWN0
b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rvcmllcyhu
ZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL09yaWdpbkxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9PcmlnaW5Mb2NrLmNwcAppbmRleCA3NTYwY2QwOTVkYjU5OTYzMDhhZmRlNjA4MzI4
YjQ1NGMyMjdlZWVmLi5kNDY1MWRiZTkzMGFhNGI3NmNlNTlkYTUyYzI5NmU2YWU2OWYwMjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL09yaWdpbkxvY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvT3JpZ2luTG9jay5j
cHAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU3RyaW5n
IGxvY2tGaWxlTmFtZUZvclBhdGgoY29uc3QgU3RyaW5nJiBvcmlnaW5QYXRoKQogewotICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob3JpZ2luUGF0aCwgIi5s
b2NrIl9zKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KG9yaWdpblBhdGgsICIubG9jayIpOwogfQogCiBPcmlnaW5Mb2NrOjpPcmlnaW5Mb2NrKGNvbnN0
IFN0cmluZyYgb3JpZ2luUGF0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggMjFhMjc5
OTJkMjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMwYS4uNzZlNjMxYjVmYWEyM2Q3NDUyYzY5
MDA3ZmNlNGM1OTE1ZWQxZGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTQwNSw4
ICs0MDUsOCBAQCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRT
dG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3RvcgogICAgICAgICBpZiAoIUZpbGVTeXN0
ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhzdG9yYWdlRGlyZWN0b3J5KSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICB9IGVsc2UgaWYgKCpmaWxlVHlwZSAhPSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6
RGlyZWN0b3J5KSB7Ci0gICAgICAgIGF1dG8gdGVtcERpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNy
ZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAIk1lZGlhS2V5cyIpOwotICAgICAgICBpZiAoIXRlbXBE
aXJlY3RvcnkpCisgICAgICAgIFN0cmluZyB0ZW1wRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6Y3Jl
YXRlVGVtcG9yYXJ5RGlyZWN0b3J5KEAiTWVkaWFLZXlzIik7CisgICAgICAgIGlmICh0ZW1wRGly
ZWN0b3J5LmlzTnVsbCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGF1dG8gdGVt
cFN0b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBE
aXJlY3RvcnksIEZpbGVTeXN0ZW06OnBhdGhGaWxlTmFtZShzdG9yYWdlUGF0aCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1h
bmFnZXIuY3BwCmluZGV4IDNiZDJjYzc0Mjg2ZWM0Njc4NjQwMjQ4YzVlMWNmZWNjNWEwMjY3YmQu
LjAzNDYwZjUyNTliMDg1ZjE3NGU2MjM3ZGM3N2FkNWI2NGM4MTMyOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdl
ci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIEN1cmxDYWNoZU1hbmFnZXI6OmxvYWRJbmRl
eCgpCiAgICAgaWYgKG1fZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBp
bmRleEZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2Fj
aGVEaXIsICJpbmRleC5kYXQiX3MpOworICAgIFN0cmluZyBpbmRleEZpbGVQYXRoID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fY2FjaGVEaXIsICJpbmRleC5kYXQiKTsK
ICAgICBhdXRvIGJ1ZmZlciA9IEZpbGVTeXN0ZW06OnJlYWRFbnRpcmVGaWxlKGluZGV4RmlsZVBh
dGgpOwogICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPRyhOZXR3b3JrLCAiQ2FjaGUgRXJy
b3I6IENvdWxkIG5vdCByZWFkICVzXG4iLCBpbmRleEZpbGVQYXRoLmxhdGluMSgpLmRhdGEoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcAppbmRleCA1MTZhMmY1MDJjYzkwY2NjZTEzNmI0MzJmMjg4YTBmMzRjMDU5ZjRkLi5jYzYx
NTI0NzkzYzBmMTFjZmViOGQ0YTg0ZWNmYTlhZjRlNmUyYWE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTMxNCw3ICsz
MTQsNyBAQCBzdGF0aWMgSGFzaFNldDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZSo+JiBhbGxTdG9yZXMoKQogCiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUoV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlJiBzdG9yZSwgU3VzcGVuZGFibGVXb3JrUXVldWUmIHdvcmtRdWV1ZSwgU2hvdWxk
SW5jbHVkZUxvY2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VEaXJlY3RvcnlQYXRoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoc3RvcmUsIHdvcmtRdWV1ZSwgc2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCkKLSAgICAsIERhdGFiYXNlVXRpbGl0aWVzKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5UGF0aCwgIm9ic2VydmF0aW9ucy5kYiJfcykp
CisgICAgLCBEYXRhYmFzZVV0aWxpdGllcyhGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoc3RvcmFnZURpcmVjdG9yeVBhdGgsICJvYnNlcnZhdGlvbnMuZGIiKSkKICAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01l
YXN1cmVtZW50RGF0YWJhc2UuY3BwCmluZGV4IGMwOTBjYmU1NzE4NGI3OGNiNTIxNjAwYTExM2Rj
ZDIyZDI4OWE0MjkuLmQ2YmMwOTAxMjAzMzFmODMwNjBiY2RhNjE0ZDkzMmFhNTlhMjFjYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudERhdGFiYXNlLmNwcApAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgSGFzaFNldDxE
YXRhYmFzZSo+JiBhbGxEYXRhYmFzZXMoKQogfQogCiBEYXRhYmFzZTo6RGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBzdG9yYWdlRGlyZWN0b3J5KQotICAgIDogRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJwY20uZGIi
X3MpKQorICAgIDogRGF0YWJhc2VVdGlsaXRpZXMoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJwY20uZGIiKSkKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBvcGVuRGF0YWJhc2VBbmRDcmVhdGVTY2hlbWFJZk5lY2Vz
c2FyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDJkODM1OTAwMTIwMzA1MmYxNjYzMzk5OGU0
NDBjM2I1ZjZhNmQ5MWIuLjQxY2M0ZDkyMTBhYzE0ODg4NWZhMjM0YmQwOTEyOTIxZjNkYzAwNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCBTdHJpbmcgRW5naW5lOjpz
dG9yYWdlUGF0aChjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaQogICAgIGlmIChyb290RGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7CiAKLSAgICBTdHJpbmcgc2FsdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQocm9vdERpcmVjdG9yeSwgInNhbHQiX3MpOworICAgIFN0cmlu
ZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChyb290RGly
ZWN0b3J5LCAic2FsdCIpOwogICAgIGF1dG8gc2FsdCA9IEZpbGVTeXN0ZW06OnJlYWRPck1ha2VT
YWx0KHNhbHRQYXRoKTsKICAgICBpZiAoIXNhbHQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwpAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRW5naW5lOjppbml0aWFsaXplKENvbXBsZXRp
b25DYWxsYmFjayYmIGNhbGxiYWNrKQogCiAgICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcm9vdFBhdGggPSBtX3Jvb3RQYXRoLmlzb2xh
dGVkQ29weSgpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVj
dG9yaWVzKHJvb3RQYXRoKTsKLSAgICAgICAgU3RyaW5nIHNhbHRQYXRoID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJvb3RQYXRoLCAic2FsdCJfcyk7CisgICAgICAgIFN0
cmluZyBzYWx0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChyb290
UGF0aCwgInNhbHQiKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBzYWx0ID0gRmlsZVN5c3RlbTo6cmVhZE9yTWFr
ZVNhbHQoc2FsdFBhdGgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKaW5k
ZXggNzdhZDAwYmJhZWE1MmRlYjczMTRmMDc4OTE0OWM0OGVlNDg3MWEwYy4uZmRhODU0ZGUzOGFi
YWE0ZmU0MzE3OTE2MDVjYzc0ODZkOTZkYjczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVz
LmNwcApAQCAtNDMsMTcgKzQzLDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBOZXR3b3JrQ2FjaGU7CiAK
IHN0YXRpYyBpbmxpbmUgU3RyaW5nIGNhY2hlc0xpc3RGaWxlbmFtZShjb25zdCBTdHJpbmcmIGNh
Y2hlc1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoY2FjaGVzUm9vdFBhdGgsICJjYWNoZXNsaXN0Il9zKTsKKyAgICByZXR1cm4gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNhY2hlc1Jvb3RQYXRoLCAiY2FjaGVz
bGlzdCIpOwogfQogCiBzdGF0aWMgaW5saW5lIFN0cmluZyBjYWNoZXNPcmlnaW5GaWxlbmFtZShj
b25zdCBTdHJpbmcmIGNhY2hlc1Jvb3RQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBhdGgsICJvcmlnaW4iX3MpOworICAg
IHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdFBh
dGgsICJvcmlnaW4iKTsKIH0KIAogU3RyaW5nIENhY2hlczo6Y2FjaGVzU2l6ZUZpbGVuYW1lKGNv
bnN0IFN0cmluZyYgY2FjaGVzUm9vdHNQYXRoKQogewotICAgIHJldHVybiBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY2FjaGVzUm9vdHNQYXRoLCAiZXN0aW1hdGVkc2l6ZSJf
cyk7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjYWNo
ZXNSb290c1BhdGgsICJlc3RpbWF0ZWRzaXplIik7CiB9CiAKIFJlZjxDYWNoZXM+IENhY2hlczo6
Y3JlYXRlKEVuZ2luZSYgZW5naW5lLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0
cmluZyYmIHJvb3RQYXRoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAppbmRleCAzZDlkZmI5
MjRjOGQzYjU1MjliMzkxY2VhMWQ4ODBiZWI5NGY3NjQ0Li5jMjM0OWEwODJiNTY4ZGViZTNmYTU2
ZDM1OGQ1NWRkOWM2ODhmNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcApAQCAtNzks
NyArNzksNyBAQCB2b2lkIEJsb2JTdG9yYWdlOjpzeW5jaHJvbml6ZSgpCiBTdHJpbmcgQmxvYlN0
b3JhZ2U6OmJsb2JQYXRoRm9ySGFzaChjb25zdCBTSEExOjpEaWdlc3QmIGhhc2gpIGNvbnN0CiB7
CiAgICAgYXV0byBoYXNoQXNTdHJpbmcgPSBTSEExOjpoZXhEaWdlc3QoaGFzaCk7Ci0gICAgcmV0
dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChibG9iRGlyZWN0b3J5UGF0
aElzb2xhdGVkQ29weSgpLCBTdHJpbmc6OmZyb21VVEY4KGhhc2hBc1N0cmluZykpOworICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmxvYkRpcmVjdG9yeVBh
dGhJc29sYXRlZENvcHkoKSwgaGFzaEFzU3RyaW5nLmRhdGEoKSk7CiB9CiAKIEJsb2JTdG9yYWdl
OjpCbG9iIEJsb2JTdG9yYWdlOjphZGQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBEYXRhJiBk
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlU3RvcmFnZS5jcHAKaW5kZXggYjFlNmZmM2MwNzhiZTg3MWQ5NTEwZmEzNzZj
NDcwMGUzM2MxOWZhNi4uMDkxY2EzYTA3MDUwNzVmYTc3ZDM4ODY1YjlmZTRhN2U0NDRmYjA5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZVN0b3JhZ2UuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgc3RhdGljIFN0cmluZyBt
YWtlQ2FjaGVQYXRoKGNvbnN0IFN0cmluZyYgYmFzZUNhY2hlUGF0aCkKICNpZiBQTEFURk9STShN
QUMpCiAgICAgLy8gUHV0IGRldmVsb3BtZW50IGNhY2hlIHRvIGEgZGlmZmVyZW50IGRpcmVjdG9y
eSB0byBhdm9pZCBhZmZlY3RpbmcgdGhlIHN5c3RlbSBjYWNoZS4KICAgICBpZiAoIUF1eGlsaWFy
eVByb2Nlc3M6OmlzU3lzdGVtV2ViS2l0KCkpCi0gICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoYmFzZUNhY2hlUGF0aCwgIkRldmVsb3BtZW50Il9zKTsK
KyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChiYXNl
Q2FjaGVQYXRoLCAiRGV2ZWxvcG1lbnQiKTsKICNlbmRpZgogICAgIHJldHVybiBiYXNlQ2FjaGVQ
YXRoOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9JREJTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggZTdiNTI2YTI5MTMzYzczYWNmOGRjODJi
ZmU1ZWExZGE4NjkxYWQ3Ny4uMGE3ZTRkM2M0NzE5ZDI4NmM3YjliYzViM2UzMzEzZWFmYWViYWJj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0
b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03MSw4ICs3MSw4IEBAIFN0cmluZyBJREJTdG9y
YWdlTWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIHJvb3RE
aXJlY3RvcnksCiAgICAgaWYgKHJvb3REaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIGF1dG8gb3JpZ2luRGlyZWN0b3J5ID0gV2ViQ29yZTo6
SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9y
aWdpbiwgcm9vdERpcmVjdG9yeSwgInYxIik7Ci0gICAgYXV0byBvbGRPcmlnaW5EaXJlY3Rvcnkg
PSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRp
dmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAiKTsKKyAgICBhdXRvIG9yaWdpbkRp
cmVjdG9yeSA9IFdlYkNvcmU6OklEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3REaXJlY3RvcnksICJ2MSJfcyk7CisgICAgYXV0
byBvbGRPcmlnaW5EaXJlY3RvcnkgPSBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRh
dGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCByb290RGlyZWN0b3J5LCAidjAi
X3MpOwogICAgIG1pZ3JhdGVPcmlnaW5EYXRhSW1wbChvbGRPcmlnaW5EaXJlY3RvcnksIG9yaWdp
bkRpcmVjdG9yeSwgW10oY29uc3QgU3RyaW5nJiBuYW1lKSB7CiAgICAgICAgIHJldHVybiBXZWJD
b3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpjb21wdXRlSGFzaEZvckZpbGVOYW1lKFdlYkNvcmU6OklE
QlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWNvZGVEYXRhYmFzZU5hbWUobmFtZSkp
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0xvY2FsU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDZjMTQ1YWNlZTc1ODhkNjk1
YTM4N2QyN2NiOWNiMGMzYzgzMTRmZTcuLmNkMmM1MWY1MTljNGMwY2QxNzE4YmI1ZmU5MTdiZjc2
NzgzMWNjOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9Mb2NhbFN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTG9jYWxTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTM1LDE3ICszNSwxNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gU3VnZ2VzdGVkIGJ5IGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui93ZWJzdG9yYWdlLyNkaXNrLXNwYWNlCiBjb25zdGV4cHIgdW5zaWduZWQgbG9jYWxTdG9yYWdl
UXVvdGFJbkJ5dGVzID0gNSAqIE1COwotY29uc3RleHByIGF1dG8gZmlsZVN1ZmZpeCA9ICIubG9j
YWxzdG9yYWdlIl9zOwotY29uc3RleHByIGF1dG8gZmlsZU5hbWUgPSAibG9jYWxzdG9yYWdlLnNx
bGl0ZTMiX3M7Citjb25zdGV4cHIgYXV0byBzX2ZpbGVTdWZmaXggPSAiLmxvY2Fsc3RvcmFnZSJf
czsKK2NvbnN0ZXhwciBhdXRvIHNfZmlsZU5hbWUgPSAibG9jYWxzdG9yYWdlLnNxbGl0ZTMiX3M7
CiAKIC8vIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgZXhpc3RpbmcgZmlsZXMuCiAv
LyBXZSBzaG91bGQgbm90IGluY2x1ZGUgb3JpZ2luIGluIGZpbGUgbmFtZS4KIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZmlsZU5hbWVUb09yaWdpbihj
b25zdCBTdHJpbmcmIGZpbGVOYW1lKQogewotICAgIGlmICghZmlsZU5hbWUuZW5kc1dpdGgoU3Ry
aW5nVmlldyB7IGZpbGVTdWZmaXggfSkpCisgICAgaWYgKCFmaWxlTmFtZS5lbmRzV2l0aChTdHJp
bmdWaWV3IHsgc19maWxlU3VmZml4IH0pKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci0gICAgYXV0byBzdWZmaXhMZW5ndGggPSBzdHJsZW4oZmlsZVN1ZmZpeCk7CisgICAgYXV0byBz
dWZmaXhMZW5ndGggPSBzX2ZpbGVTdWZmaXgubGVuZ3RoKCk7CiAgICAgYXV0byBmaWxlTmFtZUxl
bmd0aCA9IGZpbGVOYW1lLmxlbmd0aCgpOwogICAgIGlmIChmaWxlTmFtZUxlbmd0aCA8PSBzdWZm
aXhMZW5ndGgpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CkBAIC04Niw3ICs4Niw3IEBA
IFN0cmluZyBMb2NhbFN0b3JhZ2VNYW5hZ2VyOjpsb2NhbFN0b3JhZ2VGaWxlUGF0aChjb25zdCBT
dHJpbmcmIGRpcmVjdG9yeSkKICAgICBpZiAoZGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgZmlsZU5hbWUpOworICAgIHJldHVybiBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGlyZWN0b3J5LCBTdHJpbmdWaWV3IHsgc19m
aWxlTmFtZSB9KTsKIH0KIAogTG9jYWxTdG9yYWdlTWFuYWdlcjo6TG9jYWxTdG9yYWdlTWFuYWdl
cihjb25zdCBTdHJpbmcmIHBhdGgsIFN0b3JhZ2VBcmVhUmVnaXN0cnkmIHJlZ2lzdHJ5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9JbnNwZWN0b3JS
ZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3dpbi9JbnNwZWN0b3JSZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXIuY3BwCmluZGV4IDQ3
NGE1OGNkZWIwNTZiNjhlYWZlMTFjMDRlYTkwMDI0MjkwMjdiNTUuLjY5NTI3ZWRhNzI2M2Q4ZjM3
ZTNhODA5NjI1MjhlZTE2M2Q2ZDc1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci93aW4vSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL0luc3BlY3RvclJlc291
cmNlVVJMU2NoZW1lSGFuZGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZVVSTFNjaGVtZUhhbmRsZXI6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYs
IFdlYlVSTFMKICAgICBpZiAocmVxdWVzdFBhdGguc3RhcnRzV2l0aCgiXFwiKSkKICAgICAgICAg
cmVxdWVzdFBhdGgucmVtb3ZlKDApOwogICAgIGF1dG8gcGF0aCA9IFVSTChhZG9wdENGKENGQnVu
ZGxlQ29weUJ1bmRsZVVSTChXZWJDb3JlOjp3ZWJLaXRCdW5kbGUoKSkpLmdldCgpKS5maWxlU3lz
dGVtUGF0aCgpOwotICAgIHBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQocGF0aCwgIldlYkluc3BlY3RvclVJIl9zKTsKKyAgICBwYXRoID0gRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsICJXZWJJbnNwZWN0b3JVSSIpOwogICAgIHBhdGgg
PSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgcmVxdWVzdFBhdGgp
OwogICAgIGJvb2wgc3VjY2VzczsKICAgICBGaWxlU3lzdGVtOjpNYXBwZWRGaWxlRGF0YSBmaWxl
KHBhdGgsIEZpbGVTeXN0ZW06Ok1hcHBlZEZpbGVNb2RlOjpQcml2YXRlLCBzdWNjZXNzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2RlbC9tYWMvQVJLaXRJbmxpbmVQ
cmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTW9kZWwv
bWFjL0FSS2l0SW5saW5lUHJldmlld01vZGVsUGxheWVyTWFjLm1tCmluZGV4IDMxOGZhZDFhZDZm
YzVlYzcyNzA3MzNhYTBkOTkyNGFiZmRiOGQ2MjIuLjQ5ODlmMzhkMDg0YmQyNDU4MmM4ZDY4M2U1
YWU4NzJjMzcyNDUzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Nb2Rl
bC9tYWMvQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL01vZGVsL21hYy9BUktpdElubGluZVByZXZpZXdNb2RlbFBsYXllck1h
Yy5tbQpAQCAtMTAzLDcgKzEwMyw3IEBAIHZvaWQgQVJLaXRJbmxpbmVQcmV2aWV3TW9kZWxQbGF5
ZXJNYWM6OmNyZWF0ZUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQogICAgIH0KIAog
ICAgIC8vIFdlIG5lZWQgdG8gc3VwcG9ydCAucmVhbGl0eSBmaWxlcyBhcyB3ZWxsLCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTY4LgotICAgIGF1dG8gZmlsZU5h
bWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShjcmVhdGVWZXJzaW9uNFVVSURTdHJp
bmcoKSkgKyAiLnVzZHoiOworICAgIFN0cmluZyBmaWxlTmFtZSA9IEZpbGVTeXN0ZW06OmVuY29k
ZUZvckZpbGVOYW1lKGNyZWF0ZVZlcnNpb240VVVJRFN0cmluZygpKSArICIudXNkeiI7CiAgICAg
YXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRo
VG9EaXJlY3RvcnksIGZpbGVOYW1lKTsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVu
RmlsZShmaWxlUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CiAgICAgaWYg
KGZpbGUgPD0gMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9y
YWdlU3luY01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VT
eW5jTWFuYWdlci5jcHAKaW5kZXggMjI4ZjRhMzZkNGIwZjIyMmMxNzg2MGQwYmM0OThjMWY5ZTA4
OWEyMS4uYjM2MTFkZTdmYjk3OTM5MjEyZDg0ZGY4Y2Y1YWQ0MTQyOGU2Zjg4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VTeW5jTWFuYWdlci5jcHAKQEAg
LTYwLDcgKzYwLDcgQEAgU3RyaW5nIFN0b3JhZ2VTeW5jTWFuYWdlcjo6ZnVsbERhdGFiYXNlRmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwogICAgIH0KIAotICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQobV9wYXRoLCBkYXRhYmFzZUlkZW50aWZpZXIgKyAiLmxvY2Fsc3RvcmFnZSIpOwor
ICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBt
YWtlU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllciwgIi5sb2NhbHN0b3JhZ2UiKSk7CiB9CiAKIHZv
aWQgU3RvcmFnZVN5bmNNYW5hZ2VyOjpkaXNwYXRjaChGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRh
YmFzZVByb3ZpZGVyLm1tCmluZGV4IGFkYzRjMzk4ODRjNGNiMmQyYTNiZWI2YjE5NWJjZGEwMDA4
OWMxNzEuLmM4NzMzMDdkMGYyZGJkYzU0YzVmN2NjNzZjMTE1ZjQ1YzE1OTRhMTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VQcm92aWRlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TdG9yYWdlL1dlYkRhdGFiYXNlUHJvdmlk
ZXIubW0KQEAgLTMzLDkgKzMzLDkgQEAgU3RyaW5nIFdlYkRhdGFiYXNlUHJvdmlkZXI6OmluZGV4
ZWREYXRhYmFzZURpcmVjdG9yeVBhdGgoKQogICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9
IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107CiAgICAgTlNTdHJpbmcgKmRh
dGFiYXNlc0RpcmVjdG9yeSA9IFtkZWZhdWx0cyBvYmplY3RGb3JLZXk6V2ViRGF0YWJhc2VEaXJl
Y3RvcnlEZWZhdWx0c0tleV07CiAgICAgaWYgKCFkYXRhYmFzZXNEaXJlY3RvcnkgfHwgIVtkYXRh
YmFzZXNEaXJlY3RvcnkgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAg
ZGF0YWJhc2VzRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KCJ+L0xpYnJhcnkvV2ViS2l0L0RhdGFiYXNlcy9fX19JbmRleGVkREIiX3MsIFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pOworICAgICAgICBkYXRhYmFzZXNEaXJlY3Rv
cnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoIn4vTGlicmFyeS9XZWJL
aXQvRGF0YWJhc2VzL19fX0luZGV4ZWREQiIsIFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdKSk7CiAgICAgZWxzZQotICAgICAgICBkYXRhYmFzZXNEaXJlY3Rv
cnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VzRGlyZWN0
b3J5LCAiX19fSW5kZXhlZERCIl9zKTsKKyAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFN0cmluZyhkYXRhYmFzZXNEaXJlY3Rv
cnkpLCAiX19fSW5kZXhlZERCIik7CiAgICAgCiAgICAgcmV0dXJuIFtkYXRhYmFzZXNEaXJlY3Rv
cnkgc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYTljNmViYTQyYjNhN2UzZjcwNGVkNTJhMjU3NDFh
MzBjYzM1NGM2Yi4uOTY4MjI5MjUwYjhjM2IwYzFhY2Y2ZWMxOGVhOTg2MmE2YmI3ZWJmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUzNCw3ICsx
NTM0LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0
cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJ
REVPKQotICAgICAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRNZWRpYUNhY2hlRGly
ZWN0b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChOU1RlbXBvcmFyeURp
cmVjdG9yeSgpLCAiTWVkaWFDYWNoZS8iX3MpKTsKKyAgICAgICAgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c2V0TWVkaWFDYWNoZURpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoU3RyaW5nKE5TVGVtcG9yYXJ5RGlyZWN0b3J5KCkpLCAiTWVkaWFDYWNoZS8i
KSk7CiAjZW5kaWYKICAgICAgICAgZGlkT25lVGltZUluaXRpYWxpemF0aW9uID0gdHJ1ZTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
N2YyMmZkNDIyNTcwN2YyNzQ0NDhkMjAyNWY5NmNjMzdmZjcwZjdmNS4uZDcyNTAyZjQwYjI5ZmI3
NDVkZjI3MmE3NzZiYTk3YWU0NjFlMTYxMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBT
dHJpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVF9GKToKKwogMjAyMi0wMy0yNCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW2V3c10gU2V0IGJ1Z190aXRsZSBwcm9wZXJ0eSBhcHByb3By
aWF0ZWx5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lz
dGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmlu
ZGV4IDk5OTU3NWE2ZWMyNzJmOGI0MjFiYmUwMjQxMjcwZDk2NDMwYmNlMzQuLmM0Njc0YWZhNjA4
NzYzNjdiM2NmNjc2YzJlNTdmZGRiMzBiODg0OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCkBAIC0yNjQsMTMgKzI2NCwxMyBAQCBURVNUX0YoRmls
ZVN5c3RlbVRlc3QsIGZpbGVFeGlzdHMpCiAgICAgRVhQRUNUX1RSVUUoRmlsZVN5c3RlbTo6Zmls
ZUV4aXN0cyh0ZW1wRmlsZVN5bWxpbmtQYXRoKCkpKTsKICAgICBFWFBFQ1RfVFJVRShGaWxlU3lz
dGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZpbGVQYXRoKCkpKTsKICAgICBFWFBFQ1RfVFJVRShG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKHRlbXBFbXB0eUZvbGRlclBhdGgoKSkpOwotICAgIEVYUEVD
VF9GQUxTRShGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJfcykpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhp
c3QiKSkpOwogfQogCiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGZpbGVFeGlzdHNCcm9rZW5TeW1s
aW5rKQogewotICAgIGF1dG8gZG9lc05vdEV4aXN0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCJf
cyk7Ci0gICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdC1zeW1saW5rIl9z
KTsKKyAgICBhdXRvIGRvZXNOb3RFeGlzdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsKKyAg
ICBhdXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90LWV4aXN0LXN5bWxpbmsiKTsKICAgICBF
WFBFQ1RfVFJVRShGaWxlU3lzdGVtOjpjcmVhdGVTeW1ib2xpY0xpbmsoZG9lc05vdEV4aXN0UGF0
aCwgc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0
cyhkb2VzTm90RXhpc3RQYXRoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKEZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMoc3ltbGlua1BhdGgpKTsgLy8gZmlsZUV4aXN0cygpIGZvbGxvd3Mgc3ltbGlua3MuCkBA
IC0yODEsNyArMjgxLDcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBmaWxlRXhpc3RzQnJva2Vu
U3ltbGluaykKIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgZmlsZUV4aXN0c1N5bWxpbmtUb1N5bWxp
bmspCiB7CiAgICAgLy8gQ3JlYXRlIGEgdmFsaWQgc3ltbGluayB0byBhIHN5bWxpbmsgdG8gYSBy
ZWd1bGFyIGZpbGUuCi0gICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJzeW1saW5rIl9zKTsKKyAg
ICBhdXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInN5bWxpbmsiKTsKICAgICBFWFBFQ1RfVFJVRShGaWxl
U3lzdGVtOjpjcmVhdGVTeW1ib2xpY0xpbmsodGVtcEZpbGVTeW1saW5rUGF0aCgpLCBzeW1saW5r
UGF0aCkpOwogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoc3ltbGlua1Bh
dGgpKTsKICAgICBFWFBFQ1RfRVEoRmlsZVN5c3RlbTo6ZmlsZVR5cGUoc3ltbGlua1BhdGgpLCBG
aWxlU3lzdGVtOjpGaWxlVHlwZTo6U3ltYm9saWNMaW5rKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBU
RVNUX0YoRmlsZVN5c3RlbVRlc3QsIGZpbGVTaXplKQogICAgIEFTU0VSVF9UUlVFKGZpbGVTaXpl
KTsKICAgICBFWFBFQ1RfRVEoKmZpbGVTaXplLCAwVSk7CiAKLSAgICBTdHJpbmcgZmlsZVRoYXRE
b2VzTm90RXhpc3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVt
cHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiX3MpOworICAgIFN0cmluZyBmaWxlVGhh
dERvZXNOb3RFeGlzdCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1w
RW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5vdC1leGlzdCIpOwogICAgIGZpbGVTaXplID0gRmls
ZVN5c3RlbTo6ZmlsZVNpemUoZmlsZVRoYXREb2VzTm90RXhpc3QpOwogICAgIEVYUEVDVF9UUlVF
KCFmaWxlU2l6ZSk7CiB9CkBAIC00OTgsNyArNDk4LDcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0
LCB2b2x1bWVGcmVlU3BhY2UpCiAgICAgQVNTRVJUX1RSVUUoZnJlZVNwYWNlKTsKICAgICBFWFBF
Q1RfR1QoKmZyZWVTcGFjZSwgMFUpOwogCi0gICAgU3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBh
dGgoKSwgImRvZXMtbm90LWV4aXN0Il9zKTsKKyAgICBTdHJpbmcgZmlsZVRoYXREb2VzTm90RXhp
c3QgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVy
UGF0aCgpLCAiZG9lcy1ub3QtZXhpc3QiKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6
dm9sdW1lRnJlZVNwYWNlKGZpbGVUaGF0RG9lc05vdEV4aXN0KSk7CiB9CiAKQEAgLTUzMywxMCAr
NTMzLDEwIEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgY3JlYXRlU3ltYm9saWNMaW5rRm9sZGVy
KQogCiBURVNUX0YoRmlsZVN5c3RlbVRlc3QsIGNyZWF0ZVN5bWJvbGljTGlua0ZpbGVEb2VzTm90
RXhpc3QpCiB7Ci0gICAgU3RyaW5nIGZpbGVUaGF0RG9lc05vdEV4aXN0ID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90
LWV4aXN0Il9zKTsKKyAgICBTdHJpbmcgZmlsZVRoYXREb2VzTm90RXhpc3QgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAiZG9lcy1u
b3QtZXhpc3QiKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhmaWxl
VGhhdERvZXNOb3RFeGlzdCkpOwogCi0gICAgYXV0byBzeW1saW5rUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJkb2VzLW5v
dC1leGlzdC1zeW1saW5rIl9zKTsKKyAgICBhdXRvIHN5bWxpbmtQYXRoID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgImRvZXMtbm90
LWV4aXN0LXN5bWxpbmsiKTsKICAgICBFWFBFQ1RfRkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0
cyhzeW1saW5rUGF0aCkpOwogICAgIEVYUEVDVF9UUlVFKEZpbGVTeXN0ZW06OmNyZWF0ZVN5bWJv
bGljTGluayhmaWxlVGhhdERvZXNOb3RFeGlzdCwgc3ltbGlua1BhdGgpKTsKICAgICBFWFBFQ1Rf
RkFMU0UoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzeW1saW5rUGF0aCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>