<?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>230734</bug_id>
          
          <creation_ts>2021-09-23 18:38:15 -0700</creation_ts>
          <short_desc>Add typechecking `is` overloads for `std::unique_ptr`, `WTF::UniqueRef`, and `WTF::WeakPtr`</short_desc>
          <delta_ts>2021-09-24 11:05:24 -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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>samuel_white</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796747</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-23 18:38:15 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796749</commentid>
    <comment_count>1</comment_count>
      <attachid>439115</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-09-23 18:40:46 -0700</bug_when>
    <thetext>Created attachment 439115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796938</commentid>
    <comment_count>2</comment_count>
      <attachid>439115</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-24 10:25:33 -0700</bug_when>
    <thetext>Comment on attachment 439115
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796964</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-24 11:04:42 -0700</bug_when>
    <thetext>Committed r283049 (242109@main): &lt;https://commits.webkit.org/242109@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439115.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796965</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-24 11:05:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/83503473&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439115</attachid>
            <date>2021-09-23 18:40:46 -0700</date>
            <delta_ts>2021-09-24 11:04:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230734-20210923184045.patch</filename>
            <type>text/plain</type>
            <size>47459</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggODUwNmVmODhmMGI1OGQxMDY1NmQ5MjhlYzIwNWIxYmI4N2RjYzM5ZS4uMDM3NWQyNjQ4
NDdlNTE2MzVmMTMzMmIyMGJjODQzOGEzYmM5ZjA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
MS0wOS0yMyAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHR5cGVjaGVja2luZyBgaXNgIG92ZXJsb2FkcyBmb3IgYHN0ZDo6dW5pcXVlX3B0cmAsIGBXVEY6
OlVuaXF1ZVJlZmAsIGFuZCBgV1RGOjpXZWFrUHRyYAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvU3RkTGliRXh0cmFzLmg6CisgICAgICAgICog
d3RmL1R5cGVDYXN0cy5oOgorICAgICAgICAoV1RGOjppcyk6CisgICAgICAgICogd3RmL1VuaXF1
ZVJlZi5oOgorICAgICAgICAoV1RGOjpHZXRQdHJIZWxwZXI8VW5pcXVlUmVmPFQ+Pjo6Z2V0UHRy
KTogQWRkZWQuCisgICAgICAgIChXVEY6OmlzKTogQWRkZWQuCisgICAgICAgICogd3RmL1dlYWtQ
dHIuaDoKKyAgICAgICAgKFdURjo6aXMpOiBBZGRlZC4KKwogMjAyMS0wOS0yMiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgbWFrZVJlZigpIGFuZCB1c2Ug
UmVmIHsgfSBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Y4ZGJjYzhkZDhkNTkzMTMwMzhkM2I1ZmZl
NmVhMWFjMWZhOTFhYy4uMWI1ZDVkMTdmNTY4MjFmMWQzYWFkZTRiZWFmODIzZWNjMGFmMGM1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDIxLTA5LTIzICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdHlwZWNoZWNraW5nIGBpc2Agb3Zlcmxv
YWRzIGZvciBgc3RkOjp1bmlxdWVfcHRyYCwgYFdURjo6VW5pcXVlUmVmYCwgYW5kIGBXVEY6Oldl
YWtQdHJgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzA3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmlzRW5hYmxlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6aXNTZWxlY3RlZCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6Y2Fu
U2V0U2VsZWN0ZWRBdHRyaWJ1dGUgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXc6OndlYkFyZWFPYmplY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmRvY3VtZW50RnJhbWVWaWV3IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRPYmplY3QgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnBhcmVudE9iamVjdElm
RXhpc3RzIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6YmxlbmRGdW5jKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0Fic3RyYWN0UmFuZ2VDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5
Q3JlYXRlZCk6CisgICAgICAgICogY3NzL0NTU0NvdW50ZXJTdHlsZVJ1bGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSdWxlQ291bnRlclN0eWxlOjptdXRhYmxlUHJvcGVydGllcyk6Cisg
ICAgICAgICogY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpzZWxlY3RCZXN0Rml0SW1hZ2UpOgorICAgICAgICAq
IGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJjZSBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Zv
bnRGYWNlU3JjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1
ZTo6Zm9udExvYWRSZXF1ZXN0KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRTZWxlY3Rvcjo6dXBkYXRlU3R5bGVJZk5lZWRlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udFNlbGVjdG9yOjpmYWxsYmFja0ZvbnRBdCk6Cisg
ICAgICAgICogY3NzL0NTU0tleWZyYW1lUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJ1bGVLZXlmcmFtZTo6bXV0YWJsZVByb3BlcnRpZXMpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVQYWdlOjptdXRhYmxlUHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVGb250RmFjZTo6bXV0YWJsZVByb3BlcnRpZXMpOgor
ICAgICAgICAqIGNzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpob2lzdENoaWxkcmVuV2l0aE9wZXJhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNPcGVyYXRpb25Ob2RlOjpjb21iaW5lQ2hpbGRyZW4p
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAgICAg
KiBlZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpzY2hlZHVsZU9ic2VydmF0aW9uVXBkYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpyZXBsYWNl
KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnJlcGxhY2VSaWNoQ29udGVudFdpdGhBdHRhY2htZW50cyk6CisgICAg
ICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQ29u
dHJvbGxlcjo6cmVzdG9yZUNvbnRyb2xTdGF0ZUluKToKKyAgICAgICAgKiBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0SW1hZ2VEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ6OmNoZWNrSW52YWxpZENvbnRyb2xzQW5kQ29s
bGVjdFVuaGFuZGxlZCk6CisgICAgICAgICogaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6T2Zmc2NyZWVuQ2FudmFzOjpyZXNldCk6CisgICAgICAgICogaHRtbC90
cmFjay9UZXh0VHJhY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrOjphZGRDdWUp
OgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6
c3RyZWFtRGF0YVBhcnNlciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
Y29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1DQUFuaW1hdGlvbkNvY29hOjpzZXRBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHA6CisgICAgICAgIChQ
bGF0Zm9ybUNBQW5pbWF0aW9uV2luOjpzZXRBbmltYXRpb25zKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFn
ZVJlc291cmNlOjppbWFnZVNpemUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVp
bGRlcjo6ZGVzdHJveSk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlRh
YmxlOjphdHRhY2gpOgorCiAyMDIxLTA5LTIyICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSBTaGFyZWRCdWZmZXIgaW5oZXJpdCBmcm9tIFRocmVhZFNh
ZmVSZWZDb3VudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkMWE1NDNkMjhiOWU1MWMzNjdjMGY3NmZjYTZjZTlj
MDg0YTYwM2IuLjI1OTNjNDU4ZmViMGVjODhmN2JlYjZlNDMzNDcxNWEwMTAyYmZiODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDktMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0eXBlY2hlY2tpbmcgYGlzYCBvdmVybG9hZHMgZm9y
IGBzdGQ6OnVuaXF1ZV9wdHJgLCBgV1RGOjpVbmlxdWVSZWZgLCBhbmQgYFdURjo6V2Vha1B0cmAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDczNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRU
ZXh0QXN5bmMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybUFjdGlvbk9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmF1dG9maWxsTG9naW5DcmVkZW50aWFscyk6CisKIDIwMjEtMDktMjIg
IFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgKG1hbnVhbGx5KSByZXZlcnRpbmcgcjI4Mjg1Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwppbmRleCAyNTY2M2ZhNzU1ZWZlYzI5YzRkN2ZkOTM3ZDNlYTYzNGNmNjFjZTJiLi4wMjRkNmFh
YjgwMmQzMGZmNjI0NDgwMDkxODJkMjlkMjI2Mzc0NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDktMjMgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0eXBlY2hlY2tpbmcgYGlzYCBvdmVybG9hZHMg
Zm9yIGBzdGQ6OnVuaXF1ZV9wdHJgLCBgV1RGOjpVbmlxdWVSZWZgLCBhbmQgYFdURjo6V2Vha1B0
cmAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDcz
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
RnJhbWUuY3BwOgorICAgICAgICAoV2ViRnJhbWU6OmVsZW1lbnRXaXRoTmFtZSk6CisKIDIwMjEt
MDktMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVc2UgT2JqZWN0SWRlbnRpZmllciBmb3IgUmVzb3VyY2VMb2FkZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0
cmFzLmgKaW5kZXggMmEyOWQxZTRlYjI5ZTM4MDhkZjhhMjY1NWFmMDQ0Njg2NGQ0ZmU2NS4uNWQ5
NGRkN2E3NmM3MDFjNGMyY2ZmMDg0YjIwNGFlNzA0NmNkMjE5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFz
LmgKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgogI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgor
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKIC8v
IFVzZSB0aGlzIG1hY3JvIHRvIGRlY2xhcmUgYW5kIGRlZmluZSBhIGRlYnVnLW9ubHkgZ2xvYmFs
IHZhcmlhYmxlIHRoYXQgbWF5IGhhdmUgYQogLy8gbm9uLXRyaXZpYWwgY29uc3RydWN0b3IgYW5k
IGRlc3RydWN0b3IuIFdoZW4gYnVpbGRpbmcgd2l0aCBjbGFuZywgdGhpcyB3aWxsIHN1cHByZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UeXBlQ2FzdHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L1R5cGVDYXN0cy5oCmluZGV4IDNlOTI2ZWI0YWM3MzZlNzg5ZTU0ZGY5OWVkYTVkMmRlOTE3MDhj
N2YuLmJkZGNhODdlZThlZWFlZDMyM2RkMDNhYWNmNDVjMzAyMTk0OWMwZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1R5cGVDYXN0cy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1R5cGVDYXN0
cy5oCkBAIC0xMDEsNiArMTAxLDIwIEBAIHByaXZhdGU6CiB9OyBcCiB9CiAKKy8vIEV4cGxpY2l0
IHNwZWNpYWxpemF0aW9uIGZvciBDKysgc3RhbmRhcmQgbGlicmFyeSB0eXBlcy4KKwordGVtcGxh
dGU8dHlwZW5hbWUgRXhwZWN0ZWRUeXBlLCB0eXBlbmFtZSBBcmdUeXBlLCB0eXBlbmFtZSBEZWxl
dGVyPgoraW5saW5lIGJvb2wgaXMoc3RkOjp1bmlxdWVfcHRyPEFyZ1R5cGUsIERlbGV0ZXI+JiBz
b3VyY2UpCit7CisgICAgcmV0dXJuIGlzPEV4cGVjdGVkVHlwZT4oc291cmNlLmdldCgpKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgRXhwZWN0ZWRUeXBlLCB0eXBlbmFtZSBBcmdUeXBlLCB0eXBl
bmFtZSBEZWxldGVyPgoraW5saW5lIGJvb2wgaXMoY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEFyZ1R5
cGUsIERlbGV0ZXI+JiBzb3VyY2UpCit7CisgICAgcmV0dXJuIGlzPEV4cGVjdGVkVHlwZT4oc291
cmNlLmdldCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6VHlwZUNh
c3RUcmFpdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VbmlxdWVSZWYuaCBiL1NvdXJj
ZS9XVEYvd3RmL1VuaXF1ZVJlZi5oCmluZGV4IDkzNWQwNmM2NjlkZDRjZWU4MTdlMGUzOWMyYzY5
ZDljMzRkZWEzZDcuLjBmZjAxZmU4MzJlMmVjZGYzMWIzMGZiMTdlYjZlMDA3ZDIzODc4YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VuaXF1ZVJlZi5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1VuaXF1ZVJlZi5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApAQCAtOTgsNiArMTAwLDI5
IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFQ+IG1fcmVmOwogfTsKIAordGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CitzdHJ1Y3QgR2V0UHRySGVscGVyPFVuaXF1ZVJlZjxUPj4geworICAg
IHVzaW5nIFB0clR5cGUgPSBUKjsKKyAgICBzdGF0aWMgVCogZ2V0UHRyKGNvbnN0IFVuaXF1ZVJl
ZjxUPiYgcCkgeyByZXR1cm4gY29uc3RfY2FzdDxUKj4ocC5wdHIoKSk7IH0KK307CisKK3RlbXBs
YXRlIDx0eXBlbmFtZSBUPgorc3RydWN0IElzU21hcnRQdHI8VW5pcXVlUmVmPFQ+PiB7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIHZhbHVlID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIEV4cGVjdGVkVHlwZSwgdHlwZW5hbWUgQXJnVHlwZT4KK2lubGluZSBib29sIGlzKFVuaXF1
ZVJlZjxBcmdUeXBlPiYgc291cmNlKQoreworICAgIHJldHVybiBpczxFeHBlY3RlZFR5cGU+KHNv
dXJjZS5nZXQoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEV4cGVjdGVkVHlwZSwgdHlwZW5h
bWUgQXJnVHlwZT4KK2lubGluZSBib29sIGlzKGNvbnN0IFVuaXF1ZVJlZjxBcmdUeXBlPiYgc291
cmNlKQoreworICAgIHJldHVybiBpczxFeHBlY3RlZFR5cGU+KHNvdXJjZS5nZXQoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlVuaXF1ZVJlZjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL1dlYWtQdHIuaAppbmRl
eCBhZGM4NDk1NzE5Y2FhMmU2NTM3MjUzNDE3ZjUyZGJiMzQzOTdkNjBjLi5mNWNmOWRkOTU3YmJi
NzViMjA3NzI2ZTM4YzU0NzYwZjhjYTg4OWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9X
ZWFrUHRyLmgKKysrIGIvU291cmNlL1dURi93dGYvV2Vha1B0ci5oCkBAIC0yNiw4ICsyNiwxMCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3
dGYvVHlwZUNhc3RzLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0yODgsNiArMjkwLDI5IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhSXNTbWFy
dFB0cjxUPjo6dmFsdWU+PiBpbmxpbmUKICAgICByZXR1cm4gbWFrZVdlYWtQdHIob2JqZWN0Lmdl
dCgpLCBlbmFibGVXZWFrUHRyVGhyZWFkaW5nQXNzZXJ0aW9ucyk7CiB9CiAKK3RlbXBsYXRlIDx0
eXBlbmFtZSBULCB0eXBlbmFtZSBDb3VudGVyPgorc3RydWN0IEdldFB0ckhlbHBlcjxXZWFrUHRy
PFQsIENvdW50ZXI+PiB7CisgICAgdXNpbmcgUHRyVHlwZSA9IFQqOworICAgIHN0YXRpYyBUKiBn
ZXRQdHIoY29uc3QgV2Vha1B0cjxULCBDb3VudGVyPiYgcCkgeyByZXR1cm4gY29uc3RfY2FzdDxU
Kj4ocC5nZXQoKSk7IH0KK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBDb3Vu
dGVyPgorc3RydWN0IElzU21hcnRQdHI8V2Vha1B0cjxULCBDb3VudGVyPj4geworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCB2YWx1ZSA9IHRydWU7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBF
eHBlY3RlZFR5cGUsIHR5cGVuYW1lIEFyZ1R5cGUsIHR5cGVuYW1lIENvdW50ZXI+CitpbmxpbmUg
Ym9vbCBpcyhXZWFrUHRyPEFyZ1R5cGUsIENvdW50ZXI+JiBzb3VyY2UpCit7CisgICAgcmV0dXJu
IGlzPEV4cGVjdGVkVHlwZT4oc291cmNlLmdldCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
RXhwZWN0ZWRUeXBlLCB0eXBlbmFtZSBBcmdUeXBlLCB0eXBlbmFtZSBDb3VudGVyPgoraW5saW5l
IGJvb2wgaXMoY29uc3QgV2Vha1B0cjxBcmdUeXBlLCBDb3VudGVyPiYgc291cmNlKQoreworICAg
IHJldHVybiBpczxFeHBlY3RlZFR5cGU+KHNvdXJjZS5nZXQoKSk7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIENvdW50ZXI+IGlubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgV2Vha1B0cjxULCBDb3VudGVyPiYgYSwgY29uc3QgV2Vha1B0cjxVLCBDb3Vu
dGVyPiYgYikKIHsKICAgICByZXR1cm4gYS5nZXQoKSA9PSBiLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0
aW9uLmNwcAppbmRleCAzMzRjMjhhMDlkYmMzYmJjMGJlZjQ1YjNhNmQ2ZGMyMjE2NjgxYWI5Li44
MThjNTZiNjhhNjcxOGNjYTc5YTYyMzA5MzYzMGNmMTk4MDFjZDUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0
aW9uLmNwcApAQCAtNTYsNyArNTYsNyBAQCBSZWY8QWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24+
IEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjpjcmVhdGUoSFRNTEVsZW1lbnQmCiAgICAgCiBi
b29sIEFjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9uOjppc0VuYWJsZWQoKSBjb25zdAogewotICAg
IGlmIChpczxIVE1MT3B0R3JvdXBFbGVtZW50PihtX29wdGlvbkVsZW1lbnQuZ2V0KCkpKQorICAg
IGlmIChpczxIVE1MT3B0R3JvdXBFbGVtZW50PihtX29wdGlvbkVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZ2V0
QXR0cmlidXRlKGFyaWFfZGlzYWJsZWRBdHRyKSwgInRydWUiKSkKQEAgLTcwLDcgKzcwLDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbjo6aXNFbmFibGVkKCkgY29uc3QKICAgICAK
IGJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmlzU2VsZWN0ZWQoKSBjb25zdAogewot
ICAgIGlmICghaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG1fb3B0aW9uRWxlbWVudC5nZXQoKSkpCisg
ICAgaWYgKCFpczxIVE1MT3B0aW9uRWxlbWVudD4obV9vcHRpb25FbGVtZW50KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGRvd25jYXN0PEhUTUxPcHRpb25FbGVtZW50Pigq
bV9vcHRpb25FbGVtZW50KS5zZWxlY3RlZCgpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3QKICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb246OmNhblNldFNlbGVj
dGVkQXR0cmlidXRlKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzPEhUTUxPcHRpb25FbGVtZW50Piht
X29wdGlvbkVsZW1lbnQuZ2V0KCkpKQorICAgIGlmICghaXM8SFRNTE9wdGlvbkVsZW1lbnQ+KG1f
b3B0aW9uRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAobV9v
cHRpb25FbGVtZW50LT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKaW5k
ZXggOTJiMGRlZmQyZjJkYjdjNzVlNjBkZDJkZWVkM2FhYzE5ZTk1MGE0Ny4uNGFmMWVjYjdlZGFl
OWNlYzJhZTlmZTVhMzdhMjJhM2Y0OWIwYmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKQEAgLTE5NCw3
ICsxOTQsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjphZGRDaGlsZHJlbigpCiAK
IEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJBcmVhT2Jq
ZWN0KCkgY29uc3QKIHsKLSAgICBpZiAoIWlzPEZyYW1lVmlldz4obV9zY3JvbGxWaWV3LmdldCgp
KSkKKyAgICBpZiAoIWlzPEZyYW1lVmlldz4obV9zY3JvbGxWaWV3KSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxGcmFtZVZpZXc+
KCptX3Njcm9sbFZpZXcpLmZyYW1lKCkuZG9jdW1lbnQoKTsKQEAgLTIzNiw3ICsyMzYsNyBAQCBM
YXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjplbGVtZW50UmVjdCgpIGNvbnN0CiAK
IEZyYW1lVmlldyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmRvY3VtZW50RnJhbWVWaWV3KCkg
Y29uc3QKIHsKLSAgICBpZiAoIWlzPEZyYW1lVmlldz4obV9zY3JvbGxWaWV3LmdldCgpKSkKKyAg
ICBpZiAoIWlzPEZyYW1lVmlldz4obV9zY3JvbGxWaWV3KSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3PihtX3Njcm9sbFZpZXcuZ2V0KCkp
OwpAQCAtMjQ0LDcgKzI0NCw3IEBAIEZyYW1lVmlldyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6
OmRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNz
aWJpbGl0eVNjcm9sbFZpZXc6OnBhcmVudE9iamVjdCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxG
cmFtZVZpZXc+KG1fc2Nyb2xsVmlldy5nZXQoKSkpCisgICAgaWYgKCFpczxGcmFtZVZpZXc+KG1f
c2Nyb2xsVmlldykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQVhPYmplY3RDYWNo
ZSogY2FjaGUgPSBheE9iamVjdENhY2hlKCk7CkBAIC0yNjAsNyArMjYwLDcgQEAgQWNjZXNzaWJp
bGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnBhcmVudE9iamVjdCgpIGNvbnN0
CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFy
ZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdAogewotICAgIGlmICghaXM8RnJhbWVWaWV3PihtX3Nj
cm9sbFZpZXcuZ2V0KCkpKQorICAgIGlmICghaXM8RnJhbWVWaWV3PihtX3Njcm9sbFZpZXcpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhP
YmplY3RDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1By
b3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAKaW5kZXggNDY0OTI5OGQ4MWM5OGI4NDU1NWYxYmYxMWMxNDkwMzM1Y2U5
YTZjZC4uNjgwZTRhZGI1ODhiNzMyYmYwNjgzNTFiODE3NWZmMmY1YTQyYTA3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0x
OTEsNyArMTkxLDcgQEAgc3RhdGljIFJlZlB0cjxTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbj4gYmxl
bmRGdW5jKFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLAogICAgIH0KIAogICAgIGF1dG8g
YmxlbmRlZE9wZXJhdGlvbiA9IHRvLT5ibGVuZChmcm9tLCBjb250ZXh0KTsKLSAgICBpZiAoaXM8
U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24+KGJsZW5kZWRPcGVyYXRpb24uZ2V0KCkpKSB7CisgICAg
aWYgKGlzPFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uPihibGVuZGVkT3BlcmF0aW9uKSkgewogICAg
ICAgICBhdXRvJiBzY2FsZSA9IGRvd25jYXN0PFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uPihibGVu
ZGVkT3BlcmF0aW9uLmdldCgpKTsKICAgICAgICAgcmV0dXJuIFNjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uOjpjcmVhdGUoc2NhbGUueCgpLCBzY2FsZS55KCksIHNjYWxlLnooKSwgc2NhbGUudHlwZSgp
KTsKICAgICB9CkBAIC0yMjcsNyArMjI3LDcgQEAgc3RhdGljIFJlZlB0cjxSb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb24+IGJsZW5kRnVuYyhSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20KICAg
ICB9CiAKICAgICBhdXRvIGJsZW5kZWRPcGVyYXRpb24gPSB0by0+YmxlbmQoZnJvbSwgY29udGV4
dCk7Ci0gICAgaWYgKGlzPFJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oYmxlbmRlZE9wZXJhdGlv
bi5nZXQoKSkpIHsKKyAgICBpZiAoaXM8Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uPihibGVuZGVk
T3BlcmF0aW9uKSkgewogICAgICAgICBhdXRvJiByb3RhdGUgPSBkb3duY2FzdDxSb3RhdGVUcmFu
c2Zvcm1PcGVyYXRpb24+KGJsZW5kZWRPcGVyYXRpb24uZ2V0KCkpOwogICAgICAgICByZXR1cm4g
Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUocm90YXRlLngoKSwgcm90YXRlLnkoKSwg
cm90YXRlLnooKSwgcm90YXRlLmFuZ2xlKCksIHJvdGF0ZS50eXBlKCkpOwogICAgIH0KQEAgLTI2
Myw3ICsyNjMsNyBAQCBzdGF0aWMgUmVmUHRyPFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4g
YmxlbmRGdW5jKFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbgogICAgIH0KIAogICAgIFJlZjxU
cmFuc2Zvcm1PcGVyYXRpb24+IGJsZW5kZWRPcGVyYXRpb24gPSB0by0+YmxlbmQoZnJvbSwgY29u
dGV4dCk7Ci0gICAgaWYgKGlzPFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oYmxlbmRlZE9w
ZXJhdGlvbi5nZXQoKSkpIHsKKyAgICBpZiAoaXM8VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9u
PihibGVuZGVkT3BlcmF0aW9uKSkgewogICAgICAgICBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRp
b24mIHRyYW5zbGF0ZSA9IGRvd25jYXN0PFRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbj4oYmxl
bmRlZE9wZXJhdGlvbi5nZXQoKSk7CiAgICAgICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb246OmNyZWF0ZSh0cmFuc2xhdGUueCgpLCB0cmFuc2xhdGUueSgpLCB0cmFuc2xhdGUu
eigpLCB0cmFuc2xhdGUudHlwZSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0UmFuZ2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBYnN0cmFjdFJhbmdlQ3VzdG9tLmNwcAppbmRleCBlNzM4NmQxM2EyMDdh
OTUzYmQyOWY4OTc1MjE3M2EyMGU1MWI2ZjkzLi5mNGZkMDU5MjEwNWIzYjA1ZTgzNDNmZWI2MTY2
ZTFjZjVmYmZjNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fi
c3RyYWN0UmFuZ2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QWJzdHJhY3RSYW5nZUN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxP
YmplY3QqIGcKIAogSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxBYnN0cmFjdFJhbmdl
PiYmIHJhbmdlKQogewotICAgIGlmIChpczxTdGF0aWNSYW5nZT4ocmFuZ2UuZ2V0KCkpKQorICAg
IGlmIChpczxTdGF0aWNSYW5nZT4ocmFuZ2UpKQogICAgICAgICByZXR1cm4gY3JlYXRlV3JhcHBl
cjxTdGF0aWNSYW5nZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHJhbmdlKSk7CiAgICAgcmV0dXJu
IGNyZWF0ZVdyYXBwZXI8UmFuZ2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShyYW5nZSkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvdW50ZXJTdHlsZVJ1bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvdW50ZXJTdHlsZVJ1bGUuY3BwCmluZGV4IDc4YWY1NTlk
MzU0YWQzZDRlNzdjZDRjOWMyNWJiNGYyYzM2NjhlZDAuLjM4NzQ4YWEyMmQwZWJkNjdlZTEzNmUz
ZWY5MGNiY2M3ZDY1YTg4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb3Vu
dGVyU3R5bGVSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ291bnRlclN0eWxl
UnVsZS5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBTdHlsZVJ1bGVDb3VudGVyU3R5bGU6On5TdHls
ZVJ1bGVDb3VudGVyU3R5bGUoKSA9IGRlZmF1bHQ7CiAKIE11dGFibGVTdHlsZVByb3BlcnRpZXMm
IFN0eWxlUnVsZUNvdW50ZXJTdHlsZTo6bXV0YWJsZVByb3BlcnRpZXMoKQogewotICAgIGlmICgh
aXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKSkKKyAgICBpZiAo
IWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcykpCiAgICAgICAgIG1fcHJv
cGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gZG93bmNh
c3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcAppbmRleCAwOTZkMmExZmIwYjgy
YjAyMDM3YjA4ZDIzZTU2NGQ1N2Y5YmI1YjYwLi42ZDhlYzE1YjJhMzhjZDFkNWVjNWFjNTIyYTcx
ZThhZTk1ZjYyOTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1h
Z2VWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUu
Y3BwCkBAIC0zOSw3ICszOSw3IEBAIENTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNvckltYWdl
VmFsdWUoUmVmPENTU1ZhbHVlPiYmIGltYWdlVmFsdWUsIGNvbnN0IHN0ZDo6CiAgICAgLCBtX2hv
dFNwb3QoaG90U3BvdCkKICAgICAsIG1fbG9hZGVkRnJvbU9wYXF1ZVNvdXJjZShsb2FkZWRGcm9t
T3BhcXVlU291cmNlKQogewotICAgIGlmIChpczxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFsdWUu
Z2V0KCkpKQorICAgIGlmIChpczxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFsdWUpKQogICAgICAg
ICBtX29yaWdpbmFsVVJMID0gZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4obV9pbWFnZVZhbHVlLmdl
dCgpKS5pbWFnZVVSTCgpOwogfQogCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBDU1NDdXJzb3JJ
bWFnZVZhbHVlOjpjdXJzb3JFbGVtZW50Q2hhbmdlZChTVkdDdXJzb3JFbGVtZW50JiBjdXJzb3JF
bGVtZW50KQogCiBJbWFnZVdpdGhTY2FsZSBDU1NDdXJzb3JJbWFnZVZhbHVlOjpzZWxlY3RCZXN0
Rml0SW1hZ2UoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIGlmIChpczxDU1NJbWFn
ZVNldFZhbHVlPihtX2ltYWdlVmFsdWUuZ2V0KCkpKQorICAgIGlmIChpczxDU1NJbWFnZVNldFZh
bHVlPihtX2ltYWdlVmFsdWUpKQogICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTSW1hZ2VTZXRW
YWx1ZT4obV9pbWFnZVZhbHVlLmdldCgpKS5zZWxlY3RCZXN0Rml0SW1hZ2UoZG9jdW1lbnQpOwog
CiAgICAgaWYgKGF1dG8qIGN1cnNvckVsZW1lbnQgPSB1cGRhdGVDdXJzb3JFbGVtZW50KGRvY3Vt
ZW50KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5jcHAKaW5kZXggYjIw
ODUxZmU4YzlmN2RiYjYzZjRkOTJmYjNkMTc4ZTNmOWY5YmE5OC4uNmIzODgwMWYzYjUyNmVmNWRi
YWRkYjM2OTQzZjI1ZjkxYTIxODkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VT
b3VyY2UuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgUmVmUHRyPEZvbnQ+IENTU0ZvbnRGYWNlU291
cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib28KIAog
Ym9vbCBDU1NGb250RmFjZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJjZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1faGFzU1ZHRm9udEZhY2VFbGVtZW50IHx8IChpczxDYWNoZWRGb250TG9hZFJl
cXVlc3Q+KG1fZm9udFJlcXVlc3QuZ2V0KCkpICYmIGlzPENhY2hlZFNWR0ZvbnQ+KGRvd25jYXN0
PENhY2hlZEZvbnRMb2FkUmVxdWVzdD4obV9mb250UmVxdWVzdC5nZXQoKSktPmNhY2hlZEZvbnQo
KSkpOworICAgIHJldHVybiBtX2hhc1NWR0ZvbnRGYWNlRWxlbWVudCB8fCAoaXM8Q2FjaGVkRm9u
dExvYWRSZXF1ZXN0PihtX2ZvbnRSZXF1ZXN0KSAmJiBpczxDYWNoZWRTVkdGb250Pihkb3duY2Fz
dDxDYWNoZWRGb250TG9hZFJlcXVlc3Q+KG1fZm9udFJlcXVlc3QuZ2V0KCkpLT5jYWNoZWRGb250
KCkpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
U3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
CmluZGV4IDBlM2JhNjk5YThhN2ZmMDZmZWM5N2ZmMjM3MDkzZmVlMzc2MGU1YjAuLjU2NDI0NGY3
OTA1YTI3NWJmMTU0NjM0NTY4Y2YzZmZjMDRhY2U2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgc3RkOjp1bmlxdWVfcHRy
PEZvbnRMb2FkUmVxdWVzdD4gQ1NTRm9udEZhY2VTcmNWYWx1ZTo6Zm9udExvYWRSZXF1ZXN0KFNj
cmlwdEV4ZWMKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8Q2FjaGVkRm9udExvYWRSZXF1ZXN0
PigqbV9jYWNoZWRGb250KTsKIAogICAgIGF1dG8gcmVxdWVzdCA9IGNvbnRleHQtPmZvbnRMb2Fk
UmVxdWVzdChtX3Jlc291cmNlLCBpc1NWRywgaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50
U2hhZG93VHJlZSwgbV9sb2FkZWRGcm9tT3BhcXVlU291cmNlKTsKLSAgICBpZiAoaXM8Q2FjaGVk
Rm9udExvYWRSZXF1ZXN0PihyZXF1ZXN0LmdldCgpKSkKKyAgICBpZiAoaXM8Q2FjaGVkRm9udExv
YWRSZXF1ZXN0PihyZXF1ZXN0KSkKICAgICAgICAgbV9jYWNoZWRGb250ID0gJmRvd25jYXN0PENh
Y2hlZEZvbnRMb2FkUmVxdWVzdD4ocmVxdWVzdC5nZXQoKSktPmNhY2hlZEZvbnQoKTsKIAogICAg
IHJldHVybiByZXF1ZXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRT
ZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRl
eCA0OTY0N2ZjNmNmNWJlNGNhMDY2Y2YzMzI5NzE1MDM1MTI0ZWQzODljLi4zNjMwNjUzOGJmNzkz
MDUwYmNjNGQxZWE1YjU1ZjhjMTNmZDI3NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udFNlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNl
bGVjdG9yLmNwcApAQCAtMjgyLDcgKzI4Miw3IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjpmb250
TW9kaWZpZWQoKQogCiB2b2lkIENTU0ZvbnRTZWxlY3Rvcjo6dXBkYXRlU3R5bGVJZk5lZWRlZCgp
CiB7Ci0gICAgaWYgKGlzPERvY3VtZW50PihtX2NvbnRleHQuZ2V0KCkpKQorICAgIGlmIChpczxE
b2N1bWVudD4obV9jb250ZXh0KSkKICAgICAgICAgZG93bmNhc3Q8RG9jdW1lbnQ+KCptX2NvbnRl
eHQpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApAQCAtMzUxLDcgKzM1MSw3IEBAIEZvbnRS
YW5nZXMgQ1NTRm9udFNlbGVjdG9yOjpmb250UmFuZ2VzRm9yRmFtaWx5KGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyCiAKICAgICBpZiAocmVzb2x2ZUdlbmVyaWNGYW1pbHlGaXJzdCkK
ICAgICAgICAgcmVzb2x2ZUFuZEFzc2lnbkdlbmVyaWNGYW1pbHkoKTsKLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBpczxEb2N1bWVudD4obV9jb250ZXh0LmdldCgpKSA/ICZkb3duY2FzdDxEb2N1
bWVudD4oKm1fY29udGV4dCkgOiBudWxscHRyOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGlz
PERvY3VtZW50PihtX2NvbnRleHQpID8gJmRvd25jYXN0PERvY3VtZW50PigqbV9jb250ZXh0KSA6
IG51bGxwdHI7CiAgICAgYXV0byogZmFjZSA9IG1fY3NzRm9udEZhY2VTZXQtPmZvbnRGYWNlKGZv
bnREZXNjcmlwdGlvbkZvckxvb2t1cC0+Zm9udFNlbGVjdGlvblJlcXVlc3QoKSwgZmFtaWx5Rm9y
TG9va3VwKTsKICAgICBpZiAoZmFjZSkgewogICAgICAgICBpZiAoZG9jdW1lbnQgJiYgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxl
ZCgpKQpAQCAtMzkzLDcgKzM5Myw3IEBAIFJlZlB0cjxGb250PiBDU1NGb250U2VsZWN0b3I6OmZh
bGxiYWNrRm9udEF0KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGF1dG8mIHBpY3RvZ3JhcGhGb250RmFtaWx5ID0gbV9jb250
ZXh0LT5zZXR0aW5nc1ZhbHVlcygpLmZvbnRHZW5lcmljRmFtaWxpZXMucGljdG9ncmFwaEZvbnRG
YW1pbHkoKTsKICAgICBhdXRvIGZvbnQgPSBtX2ZvbnRDYWNoZS0+Zm9udEZvckZhbWlseShmb250
RGVzY3JpcHRpb24sIHBpY3RvZ3JhcGhGb250RmFtaWx5KTsKLSAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpICYm
IGlzPERvY3VtZW50PihtX2NvbnRleHQuZ2V0KCkpKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkgJiYgaXM8
RG9jdW1lbnQ+KG1fY29udGV4dCkpCiAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFy
ZWQoKS5sb2dGb250TG9hZChkb3duY2FzdDxEb2N1bWVudD4oKm1fY29udGV4dCksIHBpY3RvZ3Jh
cGhGb250RmFtaWx5LCAhIWZvbnQpOwogCiAgICAgcmV0dXJuIGZvbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTS2V5ZnJhbWVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NLZXlmcmFtZVJ1bGUuY3BwCmluZGV4IDU4NjAxYThlMmJiYTRjNGRhNTQzYmJjNzE4OGVh
NWJiNDdlZDZkNzAuLjc4NjkyYmFhZTM3ZTYyYjkyZDc4MDlhMWRiZDBkNDg1MjZjZGFkZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NLZXlmcmFtZVJ1bGUuY3BwCkBAIC02MSw3ICs2MSw3IEBAIFN0
eWxlUnVsZUtleWZyYW1lOjp+U3R5bGVSdWxlS2V5ZnJhbWUoKSA9IGRlZmF1bHQ7CiAKIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlUnVsZUtleWZyYW1lOjptdXRhYmxlUHJvcGVydGllcygp
CiB7Ci0gICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0
KCkpKQorICAgIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzKSkK
ICAgICAgICAgbV9wcm9wZXJ0aWVzID0gbV9wcm9wZXJ0aWVzLT5tdXRhYmxlQ29weSgpOwogICAg
IHJldHVybiBkb3duY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAppbmRleCBiMTcwOGE1ODI3M2ZjYzAxNjFi
OWM1NmQxMzAzZjBjYmQwOWEyYTY5Li45ZGExYzg2ZDJjZDlhOTNjOTIzMDVkNjMwOTJiNzE3ODM4
MDAyZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcApAQCAtMjMzLDcgKzIzMyw3IEBAIGNv
bnN0IFN0eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlOjpwcm9wZXJ0aWVzKCkgY29uc3QKIAogTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlOjptdXRhYmxlUHJvcGVydGllcygpCiB7Ci0g
ICAgaWYgKCFpczxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPihtX3Byb3BlcnRpZXMuZ2V0KCkpKQor
ICAgIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzKSkKICAgICAg
ICAgbV9wcm9wZXJ0aWVzID0gcHJvcGVydGllcygpLm11dGFibGVDb3B5KCk7CiAgICAgcmV0dXJu
IGRvd25jYXN0PE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcy5nZXQoKSk7CiB9
CkBAIC0zMDIsNyArMzAyLDcgQEAgUmVmPFN0eWxlUnVsZVBhZ2U+IFN0eWxlUnVsZVBhZ2U6OmNy
ZWF0ZShSZWY8U3R5bGVQcm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMsIENTU1MKIAogTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYgU3R5bGVSdWxlUGFnZTo6bXV0YWJsZVByb3BlcnRpZXMoKQogewotICAg
IGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKSkKKyAg
ICBpZiAoIWlzPE11dGFibGVTdHlsZVByb3BlcnRpZXM+KG1fcHJvcGVydGllcykpCiAgICAgICAg
IG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGllcy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4g
ZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKTsKIH0K
QEAgLTMyMyw3ICszMjMsNyBAQCBTdHlsZVJ1bGVGb250RmFjZTo6flN0eWxlUnVsZUZvbnRGYWNl
KCkgPSBkZWZhdWx0OwogCiBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBTdHlsZVJ1bGVGb250RmFj
ZTo6bXV0YWJsZVByb3BlcnRpZXMoKQogewotICAgIGlmICghaXM8TXV0YWJsZVN0eWxlUHJvcGVy
dGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKSkKKyAgICBpZiAoIWlzPE11dGFibGVTdHlsZVByb3Bl
cnRpZXM+KG1fcHJvcGVydGllcykpCiAgICAgICAgIG1fcHJvcGVydGllcyA9IG1fcHJvcGVydGll
cy0+bXV0YWJsZUNvcHkoKTsKICAgICByZXR1cm4gZG93bmNhc3Q8TXV0YWJsZVN0eWxlUHJvcGVy
dGllcz4obV9wcm9wZXJ0aWVzLmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9jYWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9j
YWxjL0NTU0NhbGNPcGVyYXRpb25Ob2RlLmNwcAppbmRleCA3YTNjNjdiOTExN2IwNWJhODdkZTI0
NzEwZDUxMzJmNjIwMzVkOGI0Li40YjMzYmJiMGY0NTVkYjU1ZmZjY2NmMGE4MmZiZDdhMmRjMmM1
YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1NDYWxjT3BlcmF0aW9u
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5v
ZGUuY3BwCkBAIC00MTUsNyArNDE1LDcgQEAgdm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6aG9p
c3RDaGlsZHJlbldpdGhPcGVyYXRvcihDYWxjT3BlcmF0b3Igb3ApCiAKICAgICBhdXRvIGhhc0No
aWxkV2l0aE9wZXJhdG9yID0gWyZdIChDYWxjT3BlcmF0b3Igb3ApIHsKICAgICAgICAgZm9yIChh
dXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4pIHsKLSAgICAgICAgICAgIGlmIChpczxDU1NDYWxjT3Bl
cmF0aW9uTm9kZT4oY2hpbGQuZ2V0KCkpICYmIGRvd25jYXN0PENTU0NhbGNPcGVyYXRpb25Ob2Rl
PihjaGlsZC5nZXQoKSkuY2FsY09wZXJhdG9yKCkgPT0gb3ApCisgICAgICAgICAgICBpZiAoaXM8
Q1NTQ2FsY09wZXJhdGlvbk5vZGU+KGNoaWxkKSAmJiBkb3duY2FzdDxDU1NDYWxjT3BlcmF0aW9u
Tm9kZT4oY2hpbGQuZ2V0KCkpLmNhbGNPcGVyYXRvcigpID09IG9wKQogICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQyNiw3
ICs0MjYsNyBAQCB2b2lkIENTU0NhbGNPcGVyYXRpb25Ob2RlOjpob2lzdENoaWxkcmVuV2l0aE9w
ZXJhdG9yKENhbGNPcGVyYXRvciBvcCkKIAogICAgIFZlY3RvcjxSZWY8Q1NTQ2FsY0V4cHJlc3Np
b25Ob2RlPj4gbmV3Q2hpbGRyZW47CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4p
IHsKLSAgICAgICAgaWYgKGlzPENTU0NhbGNPcGVyYXRpb25Ob2RlPihjaGlsZC5nZXQoKSkgJiYg
ZG93bmNhc3Q8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+KGNoaWxkLmdldCgpKS5jYWxjT3BlcmF0b3Io
KSA9PSBvcCkgeworICAgICAgICBpZiAoaXM8Q1NTQ2FsY09wZXJhdGlvbk5vZGU+KGNoaWxkKSAm
JiBkb3duY2FzdDxDU1NDYWxjT3BlcmF0aW9uTm9kZT4oY2hpbGQuZ2V0KCkpLmNhbGNPcGVyYXRv
cigpID09IG9wKSB7CiAgICAgICAgICAgICBhdXRvJiBjaGlsZHJlbiA9IGRvd25jYXN0PENTU0Nh
bGNPcGVyYXRpb25Ob2RlPihjaGlsZC5nZXQoKSkuY2hpbGRyZW4oKTsKICAgICAgICAgICAgIGZv
ciAoYXV0byYgY2hpbGRUb01vdmUgOiBjaGlsZHJlbikKICAgICAgICAgICAgICAgICBuZXdDaGls
ZHJlbi5hcHBlbmQoV1RGTW92ZShjaGlsZFRvTW92ZSkpOwpAQCAtNTcwLDE0ICs1NzAsMTQgQEAg
dm9pZCBDU1NDYWxjT3BlcmF0aW9uTm9kZTo6Y29tYmluZUNoaWxkcmVuKCkKICAgICAgICAgICAg
ICAgICBuZXdDaGlsZHJlbi51bmNoZWNrZWRBcHBlbmQobV9jaGlsZHJlbi5sYXN0KCkuY29weVJl
ZigpKTsKICAgICAgICAgICAgICAgICBkb3duY2FzdDxDU1NDYWxjUHJpbWl0aXZlVmFsdWVOb2Rl
PihuZXdDaGlsZHJlblswXS5nZXQoKSkubXVsdGlwbHkobXVsdGlwbGllcik7CiAgICAgICAgICAg
ICAgICAgZGlkTXVsdGlwbHkgPSB0cnVlOwotICAgICAgICAgICAgfSBlbHNlIGlmIChpczxDU1ND
YWxjT3BlcmF0aW9uTm9kZT4obV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkpICYmIGRvd25jYXN0PENT
U0NhbGNPcGVyYXRpb25Ob2RlPihtX2NoaWxkcmVuLmxhc3QoKS5nZXQoKSkuY2FsY09wZXJhdG9y
KCkgPT0gQ2FsY09wZXJhdG9yOjpBZGQpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8Q1NT
Q2FsY09wZXJhdGlvbk5vZGU+KG1fY2hpbGRyZW4ubGFzdCgpKSAmJiBkb3duY2FzdDxDU1NDYWxj
T3BlcmF0aW9uTm9kZT4obV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkpLmNhbGNPcGVyYXRvcigpID09
IENhbGNPcGVyYXRvcjo6QWRkKSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgbXVsdGlw
bHlpbmcgd2l0aCBhbm90aGVyIG9wZXJhdGlvbiB0aGF0IGlzIGFuIGFkZGl0aW9uIGFuZCBhbGwg
dGhlIGFkZGVkIGNoaWxkcmVuCiAgICAgICAgICAgICAgICAgLy8gYXJlIHBlcmNlbnRhZ2VzIG9y
IGRpbWVuc2lvbnMsIHdlIHNob3VsZCBtdWx0aXBseSBlYWNoIGNoaWxkIGFuZCBtYWtlIHRoaXMg
ZXhwcmVzc2lvbiBhbgogICAgICAgICAgICAgICAgIC8vIGFkZGl0aW9uLgogICAgICAgICAgICAg
ICAgIGF1dG8gYWxsQ2hpbGRyZW5BcmVQcmltaXRpdmVWYWx1ZXMgPSBbXShjb25zdCBWZWN0b3I8
UmVmPENTU0NhbGNFeHByZXNzaW9uTm9kZT4+JiBjaGlsZHJlbikgLT4gYm9vbAogICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVu
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzPENTU0NhbGNQcmltaXRpdmVWYWx1
ZU5vZGU+KGNoaWxkLmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXM8Q1NT
Q2FsY1ByaW1pdGl2ZVZhbHVlTm9kZT4oY2hpbGQpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U1N0eWxlVmFsdWVGYWN0b3J5LmNwcAppbmRleCBiMWQzNGY3OGRlOWU4YjI3YzU0ZDJkNTFlYjJj
MjBmMTgwOGEzMThkLi4zZWQxOWUzOTBlNDIwMTRiY2EwNTQ0OGJhYzliZTQ0YzZiYTk2MGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3Rv
cnkuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPFJlZjxDU1NTdHls
ZVZhbHVlPj4+IENTU1N0eWxlVmFsdWVGYWN0b3J5OjpwYXJzZVN0eWxlVmFsdWUoY28KIAogRXhj
ZXB0aW9uT3I8UmVmPENTU1N0eWxlVmFsdWU+PiBDU1NTdHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlW
YWx1ZShSZWY8Q1NTVmFsdWU+JiYgY3NzVmFsdWUsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KGNzc1ZhbHVlLmdldCgpKSkgeworICAgIGlmIChp
czxDU1NQcmltaXRpdmVWYWx1ZT4oY3NzVmFsdWUpKSB7CiAgICAgICAgIGF1dG8gcHJpbWl0aXZl
VmFsdWUgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oY3NzVmFsdWUucHRyKCkpOwogICAg
ICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkpIHsKICAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKQEAgLTIyOSwxMyArMjI5LDEzIEBAIEV4Y2Vw
dGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4gQ1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFs
dWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoaXM8Q1NTSW1hZ2VWYWx1ZT4oY3NzVmFsdWUuZ2V0
KCkpKQorICAgIH0gZWxzZSBpZiAoaXM8Q1NTSW1hZ2VWYWx1ZT4oY3NzVmFsdWUpKQogICAgICAg
ICByZXR1cm4gUmVmPENTU1N0eWxlVmFsdWU+IHsgQ1NTU3R5bGVJbWFnZVZhbHVlOjpjcmVhdGUo
ZG93bmNhc3Q8Q1NTSW1hZ2VWYWx1ZT4oY3NzVmFsdWUuZ2V0KCkpLCBkb2N1bWVudCkgfTsKLSAg
ICBlbHNlIGlmIChpczxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlPihjc3NWYWx1ZS5nZXQoKSkp
IHsKKyAgICBlbHNlIGlmIChpczxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlPihjc3NWYWx1ZSkp
IHsKICAgICAgICAgcmV0dXJuIFJlZjxDU1NTdHlsZVZhbHVlPiB7IENTU1VucGFyc2VkVmFsdWU6
OmNyZWF0ZShkb3duY2FzdDxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlPihjc3NWYWx1ZS5nZXQo
KSkuZGF0YSgpLnRva2VuUmFuZ2UoKSkgfTsKLSAgICB9IGVsc2UgaWYgKGlzPENTU1BlbmRpbmdT
dWJzdGl0dXRpb25WYWx1ZT4oY3NzVmFsdWUuZ2V0KCkpKSB7CisgICAgfSBlbHNlIGlmIChpczxD
U1NQZW5kaW5nU3Vic3RpdHV0aW9uVmFsdWU+KGNzc1ZhbHVlKSkgewogICAgICAgICByZXR1cm4g
UmVmPENTU1N0eWxlVmFsdWU+IHsgQ1NTVW5wYXJzZWRWYWx1ZTo6Y3JlYXRlKGRvd25jYXN0PENT
U1BlbmRpbmdTdWJzdGl0dXRpb25WYWx1ZT4oY3NzVmFsdWUuZ2V0KCkpLnNob3J0aGFuZFZhbHVl
KCkuZGF0YSgpLnRva2VuUmFuZ2UoKSkgfTsKLSAgICB9IGVsc2UgaWYgKGlzPENTU0N1c3RvbVBy
b3BlcnR5VmFsdWU+KGNzc1ZhbHVlLmdldCgpKSkgeworICAgIH0gZWxzZSBpZiAoaXM8Q1NTQ3Vz
dG9tUHJvcGVydHlWYWx1ZT4oY3NzVmFsdWUpKSB7CiAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
Q1NTU3R5bGVWYWx1ZTo6Y3JlYXRlKFdURk1vdmUoY3NzVmFsdWUpKSwgYWRkIHJlaWZpY2F0aW9u
IGNvbnRyb2wgZmxvdwogICAgICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihkb3duY2FzdDxDU1ND
dXN0b21Qcm9wZXJ0eVZhbHVlPihjc3NWYWx1ZS5nZXQoKSkudmFsdWUoKSwgWyZdKGNvbnN0IFJl
ZjxDU1NWYXJpYWJsZVJlZmVyZW5jZVZhbHVlPiYgdmFsdWUpIHsKICAgICAgICAgICAgIHJldHVy
biByZWlmeVZhbHVlKHZhbHVlLmNvcHlSZWYoKSwgZG9jdW1lbnQpOwpAQCAtMjQ1LDcgKzI0NSw3
IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4gQ1NTU3R5bGVWYWx1ZUZhY3Rvcnk6
OnJlaWZ5VmFsdWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAgICAgICAvLyBGSVhNRTogUHJvcGVy
dHkgcmVpZnkgdGhlIG90aGVyIGNhc2VzLgogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbk9y
PFJlZjxDU1NTdHlsZVZhbHVlPj4geyBDU1NTdHlsZVZhbHVlOjpjcmVhdGUoV1RGTW92ZShjc3NW
YWx1ZSkpIH07CiAgICAgICAgIH0pOwotICAgIH0gZWxzZSBpZiAoaXM8Q1NTVmFsdWVMaXN0Pihj
c3NWYWx1ZS5nZXQoKSkpIHsKKyAgICB9IGVsc2UgaWYgKGlzPENTU1ZhbHVlTGlzdD4oY3NzVmFs
dWUpKSB7CiAgICAgICAgIC8vIFJlaWZ5aW5nIHRoZSBmaXJzdCB2YWx1ZSBpbiB2YWx1ZSBsaXN0
LgogICAgICAgICAvLyBGSVhNRTogVmVyaWZ5IHRoaXMgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9y
LgogICAgICAgICAvLyBSZWZlciB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vdGhlLXN0eWxlcHJvcGVydHltYXAvaW5saW5lL2dl
dC5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXIuY3BwCmluZGV4IGNlOTQ5NmJkNzc5MWEwOTJhOWZjNTEzY2U5ODYyNjZjMWI5
MmE5MGUuLjVmMmIwNjY2Y2RjNDNlOTg4YTA3NWExOWE3Yjg5NjRiMzIwYTA5OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIu
Y3BwCkBAIC02MDYsMTEgKzYwNiwxMSBAQCB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVy
OjpzY2hlZHVsZU9ic2VydmF0aW9uVXBkYXRlKCkKICAgICAgICAgICAgIGlmICghbm9kZS0+aXND
b25uZWN0ZWQoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgaWYg
KFJlZlB0ciBob3N0ID0gbm9kZS0+c2hhZG93SG9zdCgpOyBpczxIVE1MSW5wdXRFbGVtZW50Piho
b3N0LmdldCgpKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqaG9zdCkubGFzdENoYW5n
ZVdhc1VzZXJFZGl0KCkpCisgICAgICAgICAgICBpZiAoUmVmUHRyIGhvc3QgPSBub2RlLT5zaGFk
b3dIb3N0KCk7IGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGhvc3QpICYmIGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCpob3N0KS5sYXN0Q2hhbmdlV2FzVXNlckVkaXQoKSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKCFjb21tb25BbmNlc3RvcikKLSAgICAgICAg
ICAgICAgICBjb21tb25BbmNlc3RvciA9IGlzPENvbnRhaW5lck5vZGU+KG5vZGUuZ2V0KCkpID8g
bm9kZS5wdHIoKSA6IG5vZGUtPnBhcmVudE5vZGUoKTsKKyAgICAgICAgICAgICAgICBjb21tb25B
bmNlc3RvciA9IGlzPENvbnRhaW5lck5vZGU+KG5vZGUpID8gbm9kZS5wdHIoKSA6IG5vZGUtPnBh
cmVudE5vZGUoKTsKICAgICAgICAgICAgIGVsc2UgaWYgKCFub2RlLT5pc0Rlc2NlbmRhbnRPZihj
b21tb25BbmNlc3Rvci5nZXQoKSkpCiAgICAgICAgICAgICAgICAgY29tbW9uQW5jZXN0b3IgPSBj
b21tb25JbmNsdXNpdmVBbmNlc3RvcjxDb21wb3NlZFRyZWU+KCpjb21tb25BbmNlc3Rvciwgbm9k
ZS5nZXQoKSk7CiAgICAgICAgIH0KQEAgLTg1MSw3ICs4NTEsNyBAQCBhdXRvIFRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpyZXBsYWNlKGNvbnN0IE1hbmlwdWxhdGlvbkl0ZW1EYXRhJiBpdGVt
LCBjb25zdAogICAgIGF1dG8gc3RhcnRUb3BEb3duUGF0aCA9IGdldFBhdGgoY29tbW9uQW5jZXN0
b3IuZ2V0KCksIGZpcnN0Q29udGVudE5vZGUuZ2V0KCkpOwogICAgIHdoaWxlICghc3RhcnRUb3BE
b3duUGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byBsYXN0Tm9kZSA9IHN0YXJ0VG9wRG93
blBhdGgubGFzdCgpOwotICAgICAgICBBU1NFUlQoaXM8Q29udGFpbmVyTm9kZT4obGFzdE5vZGUu
Z2V0KCkpKTsKKyAgICAgICAgQVNTRVJUKGlzPENvbnRhaW5lck5vZGU+KGxhc3ROb2RlKSk7CiAg
ICAgICAgIGlmICghZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4obGFzdE5vZGUuZ2V0KCkpLmhhc09u
ZUNoaWxkKCkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgbm9kZXNUb1JlbW92ZS5hZGQo
c3RhcnRUb3BEb3duUGF0aC50YWtlTGFzdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KaW5kZXggMzIyNmYzMjk4NDA1
YmEyZjM4YmNhMmQzNTI5MzI4MDFhYmNhNGYxYi4uYWVjYTE3Y2VhOThiNTBlYTMyNDRkNTRkMGVl
NWRlNWJkODVkZDAwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9X
ZWJDb250ZW50UmVhZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0aWMgdm9p
ZCByZXBsYWNlUmljaENvbnRlbnRXaXRoQXR0YWNobWVudHMoRnJhbWUmIGZyYW1lLCBEb2N1bWVu
dEZyYWdtZW50JiBmcgogCiAgICAgICAgIGF1dG8gYXR0YWNobWVudCA9IEhUTUxBdHRhY2htZW50
RWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6YXR0YWNobWVudFRhZywgZnJhZ21lbnQuZG9jdW1l
bnQoKSk7CiAgICAgICAgIGlmIChzdXBwb3J0c0NsaWVudFNpZGVBdHRhY2htZW50RGF0YShmcmFt
ZSkpIHsKLSAgICAgICAgICAgIGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihvcmlnaW5hbEVsZW1l
bnQuZ2V0KCkpICYmIGNvbnRlbnRUeXBlSXNTdWl0YWJsZUZvcklubGluZUltYWdlUmVwcmVzZW50
YXRpb24oaW5mby5jb250ZW50VHlwZSkpIHsKKyAgICAgICAgICAgIGlmIChpczxIVE1MSW1hZ2VF
bGVtZW50PihvcmlnaW5hbEVsZW1lbnQpICYmIGNvbnRlbnRUeXBlSXNTdWl0YWJsZUZvcklubGlu
ZUltYWdlUmVwcmVzZW50YXRpb24oaW5mby5jb250ZW50VHlwZSkpIHsKICAgICAgICAgICAgICAg
ICBhdXRvJiBpbWFnZSA9IGRvd25jYXN0PEhUTUxJbWFnZUVsZW1lbnQ+KG9yaWdpbmFsRWxlbWVu
dC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaW1hZ2Uuc2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihIVE1MTmFtZXM6OnNyY0F0dHIsIERPTVVSTDo6Y3JlYXRlT2JqZWN0VVJMKCpm
cmFtZS5kb2N1bWVudCgpLCBCbG9iOjpjcmVhdGUoZnJhbWUuZG9jdW1lbnQoKSwgaW5mby5kYXRh
LT5jb3B5RGF0YSgpLCBpbmZvLmNvbnRlbnRUeXBlKSkpOwogICAgICAgICAgICAgICAgIGltYWdl
LnNldEF0dGFjaG1lbnRFbGVtZW50KGF0dGFjaG1lbnQuY29weVJlZigpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggMjdhOGRlYWJlMWIwNWY0ZGFmYjZmOTQ5MDEx
MWFhZDJiOTViMTZkYy4uOGRlYjNlYThiZTMxYTViZTlhMTYxOWMzNjU1OWMxZDkyMDkxODZkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKQEAgLTM0Niw3ICszNDYsNyBA
QCB2b2lkIEZvcm1Db250cm9sbGVyOjpyZXN0b3JlQ29udHJvbFN0YXRlRm9yKEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUmIGNvbgogdm9pZCBGb3JtQ29udHJvbGxlcjo6cmVzdG9yZUNv
bnRyb2xTdGF0ZUluKEhUTUxGb3JtRWxlbWVudCYgZm9ybSkKIHsKICAgICBmb3IgKGF1dG8mIGVs
ZW1lbnQgOiBmb3JtLmNvcHlBc3NvY2lhdGVkRWxlbWVudHNWZWN0b3IoKSkgewotICAgICAgICBp
ZiAoIWlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU+KGVsZW1lbnQuZ2V0KCkpKQor
ICAgICAgICBpZiAoIWlzPEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU+KGVsZW1lbnQp
KQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGNvbnRyb2wgPSBkb3duY2Fz
dDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlPihlbGVtZW50LmdldCgpKTsKICAgICAg
ICAgaWYgKCFjb250cm9sLnNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIHx8
IG93bmVyRm9ybShjb250cm9sKSAhPSAmZm9ybSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAKaW5kZXggZjI4MjE4OTE4NjhmZTI5ODE0MWMzOTU5N2IzMDllOTM4M2Y0
YzZiOC4uNGNjMmIzNjc2NGNhYjQ3NzgyNDcyZWIxZjkxODEwMjI1ZDU1ZDY1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTU1MCw3ICs1NTAsNyBAQCB2
b2lkIEhUTUxDYW52YXNFbGVtZW50OjpyZXNldCgpCiAgICAgaW50IGggPSBsaW1pdFRvT25seUhU
TUxOb25OZWdhdGl2ZShhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGhlaWdodEF0dHIp
LCBkZWZhdWx0SGVpZ2h0KTsKIAogICAgIHJlc2V0R3JhcGhpY3NDb250ZXh0U3RhdGUoKTsKLSAg
ICBpZiAoaXM8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihtX2NvbnRleHQuZ2V0KCkpKQorICAg
IGlmIChpczxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KG1fY29udGV4dCkpCiAgICAgICAgIGRv
d25jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4oKm1fY29udGV4dCkucmVzZXQoKTsKIAog
ICAgIEludFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKQEAgLTc0NCw3ICs3NDQsNyBAQCBFeGNlcHRp
b25PcjxSZWY8T2Zmc2NyZWVuQ2FudmFzPj4gSFRNTENhbnZhc0VsZW1lbnQ6OnRyYW5zZmVyQ29u
dHJvbFRvT2Zmc2NyZWVuKAogUmVmUHRyPEltYWdlRGF0YT4gSFRNTENhbnZhc0VsZW1lbnQ6Omdl
dEltYWdlRGF0YSgpCiB7CiAjaWYgRU5BQkxFKFdFQkdMKQotICAgIGlmIChpczxXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlPihtX2NvbnRleHQuZ2V0KCkpKSB7CisgICAgaWYgKGlzPFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U+KG1fY29udGV4dCkpIHsKICAgICAgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQVBJU3RhdGlzdGljc0VuYWJsZWQoKSkK
ICAgICAgICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5sb2dDYW52YXNSZWFk
KGRvY3VtZW50KCkpOwogICAgICAgICByZXR1cm4gSW1hZ2VEYXRhOjpjcmVhdGUoZG93bmNhc3Q8
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4oKm1fY29udGV4dCkucGFpbnRSZW5kZXJpbmdSZXN1
bHRzVG9QaXhlbEJ1ZmZlcigpKTsKQEAgLTk4NSw3ICs5ODUsNyBAQCBjb25zdCBjaGFyKiBIVE1M
Q2FudmFzRWxlbWVudDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CiBib29sIEhUTUxDYW52
YXNFbGVtZW50Ojp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICNpZiBFTkFC
TEUoV0VCR0wpCi0gICAgaWYgKGlzPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY29udGV4
dC5nZXQoKSkpIHsKKyAgICBpZiAoaXM8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9jb250
ZXh0KSkgewogICAgICAgICAvLyBXZWJHTCByZW5kZXJpbmcgY29udGV4dCBtYXkgZmlyZSBjb250
ZXh0bG9zdCAvIGNvbnRleHRjaGFuZ2UgLyBjb250ZXh0cmVzdG9yZWQgZXZlbnRzIGF0IGFueSBw
b2ludC4KICAgICAgICAgcmV0dXJuIG1faGFzUmVsZXZhbnRXZWJHTEV2ZW50TGlzdGVuZXIgJiYg
IWRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KCptX2NvbnRleHQpLmlzQ29udGV4
dFVucmVjb3ZlcmFibHlMb3N0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwCmluZGV4IDg5ZGVjNWU4NzNlOTk1YmZjMmFlYThmNmU3ODJjMDE1ZjAxNzlmNWUu
LmFhZDgwYTdhMDhlMzlkNzJiMjMwYzY4MzU2ZWIxMjYxNmQ4MDM4MmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5jcHAKQEAgLTc5NCw3ICs3OTQsNyBAQCBib29sIEhUTUxG
b3JtRWxlbWVudDo6Y2hlY2tJbnZhbGlkQ29udHJvbHNBbmRDb2xsZWN0VW5oYW5kbGVkKFZlY3Rv
cjxSZWZQdHI8SFRNTAogICAgIGF1dG8gZWxlbWVudHMgPSBjb3B5QXNzb2NpYXRlZEVsZW1lbnRz
VmVjdG9yKCk7CiAgICAgYm9vbCBoYXNJbnZhbGlkQ29udHJvbHMgPSBmYWxzZTsKICAgICBmb3Ig
KGF1dG8mIGVsZW1lbnQgOiBlbGVtZW50cykgewotICAgICAgICBpZiAoZWxlbWVudC0+Zm9ybSgp
ID09IHRoaXMgJiYgaXM8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudC5nZXQoKSkpIHsK
KyAgICAgICAgaWYgKGVsZW1lbnQtPmZvcm0oKSA9PSB0aGlzICYmIGlzPEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
JiBjb250cm9sID0gZG93bmNhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudD4oZWxlbWVudC5nZXQo
KSk7CiAgICAgICAgICAgICBpZiAoIWNvbnRyb2wuY2hlY2tWYWxpZGl0eSgmdW5oYW5kbGVkSW52
YWxpZENvbnRyb2xzKSAmJiBjb250cm9sLmZvcm0oKSA9PSB0aGlzKQogICAgICAgICAgICAgICAg
IGhhc0ludmFsaWRDb250cm9scyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL09mZnNjcmVlbkNhbnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL09mZnNjcmVlbkNh
bnZhcy5jcHAKaW5kZXggNTk5MGQzZTI2OTMyYjJlZTRhNGJiNmZlN2FkMmM3MWJiYzAzMDIzNS4u
YjEwMzFkYTAwZGYwNDFhZTZhYTAzZDJmZjYxMjA1MmE1ZmViYWM5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9PZmZzY3JlZW5DYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvT2Zmc2NyZWVuQ2FudmFzLmNwcApAQCAtNTEwLDcgKzUxMCw3IEBAIFJlZlB0cjxJbWFn
ZUJ1ZmZlcj4gT2Zmc2NyZWVuQ2FudmFzOjp0YWtlSW1hZ2VCdWZmZXIoKSBjb25zdAogdm9pZCBP
ZmZzY3JlZW5DYW52YXM6OnJlc2V0KCkKIHsKICAgICByZXNldEdyYXBoaWNzQ29udGV4dFN0YXRl
KCk7Ci0gICAgaWYgKGlzPE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4obV9jb250
ZXh0LmdldCgpKSkKKyAgICBpZiAoaXM8T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
PihtX2NvbnRleHQpKQogICAgICAgICBkb3duY2FzdDxPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ+KCptX2NvbnRleHQpLnJlc2V0KCk7CiAKICAgICBtX2hhc0NyZWF0ZWRJbWFnZUJ1
ZmZlciA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4
IDI4NGVlZDE4NjMzNWRiOTA3NTVjNjA4YjA2M2QyMzkyNzg0MTZiMDYuLjBhNjQ3YzJjNDU2NjU0
N2VmYWVmYjQ2NjI0NTEyZjA2ZmMxOGE2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5jcHAKQEAgLTMzMiw3ICszMzIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBUZXh0VHJh
Y2s6OmFkZEN1ZShSZWY8VGV4dFRyYWNrQ3VlPiYmIGN1ZSkKICAgICAvLyBJZiBhIERhdGFDdWUg
aXMgYWRkZWQgdG8gYSBUZXh0VHJhY2sgdmlhIHRoZSBhZGRDdWUoKSBtZXRob2QgYnV0IHRoZSB0
ZXh0IHRyYWNrIGRvZXMgbm90IGhhdmUgaXRzIHRleHQKICAgICAvLyB0cmFjayBraW5kIHNldCB0
byBtZXRhZGF0YSwgdGhyb3cgYSBJbnZhbGlkTm9kZVR5cGVFcnJvciBleGNlcHRpb24gYW5kIGRv
bid0IGFkZCB0aGUgY3VlIHRvIHRoZSBUZXh0VHJhY2tMaXN0CiAgICAgLy8gb2YgdGhlIFRleHRU
cmFjay4KLSAgICBpZiAoaXM8RGF0YUN1ZT4oY3VlLmdldCgpKSAmJiBtX2tpbmQgIT0gS2luZDo6
TWV0YWRhdGEpCisgICAgaWYgKGlzPERhdGFDdWU+KGN1ZSkgJiYgbV9raW5kICE9IEtpbmQ6Ok1l
dGFkYXRhKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE5vZGVUeXBlRXJyb3Ig
fTsKIAogICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsIGN1ZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IGRhZGZhMzAxMjIwMWMwZWIwMzZhMTQyYmFmYTllYjUyOGVmYjFjNTYuLjk0NDFjZDk3YmEy
ZDBjZGMxNDZhOTAyNWQ2M2ZmZjllMjQ4YmViOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0xODc1LDcgKzE4
NzUsNyBAQCBSZWY8UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdl
bnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcgogICAgIGludCBsaW5lTnVtYmVyID0gMDsK
ICAgICBpbnQgY29sdW1uTnVtYmVyID0gMDsKICAgICBTdHJpbmcgc2NyaXB0SUQ7Ci0gICAgaWYg
KGlzPEpTRXZlbnRMaXN0ZW5lcj4oZXZlbnRMaXN0ZW5lci5nZXQoKSkpIHsKKyAgICBpZiAoaXM8
SlNFdmVudExpc3RlbmVyPihldmVudExpc3RlbmVyKSkgewogICAgICAgICBhdXRvJiBzY3JpcHRM
aXN0ZW5lciA9IGRvd25jYXN0PEpTRXZlbnRMaXN0ZW5lcj4oZXZlbnRMaXN0ZW5lci5nZXQoKSk7
CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4IDIxZjllYmFjM2Y4MTA4
MzhhM2YyOTIyOTczNTI2ODRiNjZjNmE3YzguLjkwODg4ODc0ZTVlOTg2NGZkM2I4NGNkZWNhMzNi
MmU2ZjliNjRmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5
b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6bGF5b3V0KCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsYXlvdXRSb290ID0g
bWFrZVdlYWtQdHIoc3VidHJlZUxheW91dFJvb3QoKSA/IHN1YnRyZWVMYXlvdXRSb290KCkgOiBy
ZW5kZXJWaWV3KCkpOwotICAgICAgICBtX25lZWRzRnVsbFJlcGFpbnQgPSBpczxSZW5kZXJWaWV3
PihsYXlvdXRSb290LmdldCgpKSAmJiAobV9maXJzdExheW91dCB8fCByZW5kZXJWaWV3KCktPnBy
aW50aW5nKCkpOworICAgICAgICBtX25lZWRzRnVsbFJlcGFpbnQgPSBpczxSZW5kZXJWaWV3Pihs
YXlvdXRSb290KSAmJiAobV9maXJzdExheW91dCB8fCByZW5kZXJWaWV3KCktPnByaW50aW5nKCkp
OwogICAgICAgICB2aWV3KCkud2lsbERvTGF5b3V0KGxheW91dFJvb3QpOwogICAgICAgICBtX2Zp
cnN0TGF5b3V0ID0gZmFsc2U7CiAgICAgfQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgRnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KCkKICAgICB9CiAgICAgewogICAgICAgICBTZXRGb3JT
Y29wZTxMYXlvdXRQaGFzZT4gbGF5b3V0UGhhc2UobV9sYXlvdXRQaGFzZSwgTGF5b3V0UGhhc2U6
OkluVmlld1NpemVBZGp1c3QpOwotICAgICAgICBpZiAoaXM8UmVuZGVyVmlldz4obGF5b3V0Um9v
dC5nZXQoKSkgJiYgIXJlbmRlclZpZXcoKS0+cHJpbnRpbmcoKSkgeworICAgICAgICBpZiAoaXM8
UmVuZGVyVmlldz4obGF5b3V0Um9vdCkgJiYgIXJlbmRlclZpZXcoKS0+cHJpbnRpbmcoKSkgewog
ICAgICAgICAgICAgLy8gVGhpcyBpcyB0byBwcm90ZWN0IG1fbmVlZHNGdWxsUmVwYWludCdzIHZh
bHVlIHdoZW4gbGF5b3V0KCkgaXMgZ2V0dGluZyByZS1lbnRlcmVkIHRocm91Z2ggYWRqdXN0Vmll
d1NpemUoKS4KICAgICAgICAgICAgIFNldEZvclNjb3BlPGJvb2w+IG5lZWRzRnVsbFJlcGFpbnQo
bV9uZWVkc0Z1bGxSZXBhaW50KTsKICAgICAgICAgICAgIHZpZXcoKS5hZGp1c3RWaWV3U2l6ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZG
T2JqQy5tbQppbmRleCAwN2RlNzUxZDgyODU0ZWNiNWMwNzgzZDZiNDk3MjI1Mzc3YmM1NGRmLi5l
NzViMzQwNzNlZWYwOTAwOThhODUxZTlmNTQ0MTQzY2NiZDU1MjliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtODcw
LDcgKzg3MCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hh
bmdlRW5hYmxlZChBdWRpb1RyYWNrUHJpdmF0ZSYgdHJhY2ssCiAKIEFWU3RyZWFtRGF0YVBhcnNl
ciogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnN0cmVhbURhdGFQYXJzZXIoKSBjb25zdAog
ewotICAgIGlmIChpczxTb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDPihtX3BhcnNlci5nZXQoKSkp
CisgICAgaWYgKGlzPFNvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakM+KG1fcGFyc2VyKSkKICAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PFNvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakM+KG1fcGFyc2VyLmdl
dCgpKS5zdHJlYW1EYXRhUGFyc2VyKCk7CiAgICAgcmV0dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29hL1BsYXRmb3JtQ0FBbmlt
YXRpb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL2NvY29h
L1BsYXRmb3JtQ0FBbmltYXRpb25Db2NvYS5tbQppbmRleCBiM2U2NjhjMjFkZWJkMTU5NjNhZmQ4
ZWE3MTg2MjNkNmYzNTM5NDQ5Li45NjY3NzJmOTQxYjI2OTZjYjc2MjE2MTAxZTEwM2JhMzExMTFh
NGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9jb2Nv
YS9QbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvY29jb2EvUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hLm1tCkBAIC01ODAs
NyArNTgwLDcgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OnNldEFuaW1hdGlvbnMo
Y29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWEKICAgICBBU1NFUlQoW3N0YXRpY19j
YXN0PENBQW5pbWF0aW9uICo+KG1fYW5pbWF0aW9uLmdldCgpKSBpc0tpbmRPZkNsYXNzOltDQUFu
aW1hdGlvbkdyb3VwIGNsYXNzXV0pOwogCiAgICAgW3N0YXRpY19jYXN0PENBQW5pbWF0aW9uR3Jv
dXAgKj4obV9hbmltYXRpb24uZ2V0KCkpIHNldEFuaW1hdGlvbnM6Y3JlYXRlTlNBcnJheSh2YWx1
ZSwgWyZdIChhdXRvJiBhbmltYXRpb24pIC0+IENBQW5pbWF0aW9uICogewotICAgICAgICBpZiAo
aXM8UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hPihhbmltYXRpb24uZ2V0KCkpKQorICAgICAgICBp
ZiAoaXM8UGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hPihhbmltYXRpb24pKQogICAgICAgICAgICAg
cmV0dXJuIGRvd25jYXN0PFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYT4oYW5pbWF0aW9uLmdldCgp
KS0+bV9hbmltYXRpb24uZ2V0KCk7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfSkuZ2V0KCld
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1Bs
YXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1BsYXRmb3JtQ0FBbmltYXRpb25XaW4uY3BwCmluZGV4IGY1NTRhNDY0NmQ0NWJk
NjRiOGMzZDdiNWM0MjU4OWFiOWJkYWE0ZjUuLmI0NDU0MzNhYWQyNWVjODFkZmE3ZjJkM2EzNTE0
MDk0OTNmZmI3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBQW5pbWF0aW9uV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUFuaW1hdGlvbldpbi5jcHAKQEAgLTU2
MSw3ICs1NjEsNyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25XaW46OnNldEFuaW1hdGlvbnMo
Y29uc3QgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybUNBQW5pbWF0aQogewogICAgIGF1dG8gYXJyYXkg
PSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxlKDAsIHZhbHVlLnNpemUoKSwgJmtDRlR5cGVB
cnJheUNhbGxCYWNrcykpOwogICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogdmFsdWUpIHsKLSAg
ICAgICAgaWYgKGlzPFBsYXRmb3JtQ0FBbmltYXRpb25XaW4+KGFuaW1hdGlvbi5nZXQoKSkpCisg
ICAgICAgIGlmIChpczxQbGF0Zm9ybUNBQW5pbWF0aW9uV2luPihhbmltYXRpb24pKQogICAgICAg
ICAgICAgQ0ZBcnJheUFwcGVuZFZhbHVlKGFycmF5LmdldCgpLCBkb3duY2FzdDxQbGF0Zm9ybUNB
QW5pbWF0aW9uV2luPigqYW5pbWF0aW9uKS5tX2FuaW1hdGlvbi5nZXQoKSk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZS5jcHAKaW5k
ZXggNDI3MmExYThiNDVlMmM0MzQ5ZTY1MWQ2MDY3MzA0YzlkM2YwOWIwNy4uODYyYjVkYjUzMzUx
Mzg2NDVhMTIxZTY4OTQwZmQxYWMxZDY1OGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZVJlc291cmNlLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIExheW91
dFNpemUgUmVuZGVySW1hZ2VSZXNvdXJjZTo6aW1hZ2VTaXplKGZsb2F0IG11bHRpcGxpZXIsIENh
Y2hlZEltYWdlOjpTaXplVHlwCiAgICAgaWYgKCFtX2NhY2hlZEltYWdlKQogICAgICAgICByZXR1
cm4gTGF5b3V0U2l6ZSgpOwogICAgIExheW91dFNpemUgc2l6ZSA9IG1fY2FjaGVkSW1hZ2UtPmlt
YWdlU2l6ZUZvclJlbmRlcmVyKG1fcmVuZGVyZXIuZ2V0KCksIG11bHRpcGxpZXIsIHR5cGUpOwot
ICAgIGlmIChpczxSZW5kZXJJbWFnZT4obV9yZW5kZXJlci5nZXQoKSkpCisgICAgaWYgKGlzPFJl
bmRlckltYWdlPihtX3JlbmRlcmVyKSkKICAgICAgICAgc2l6ZS5zY2FsZShkb3duY2FzdDxSZW5k
ZXJJbWFnZT4oKm1fcmVuZGVyZXIpLmltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKICAgICByZXR1
cm4gc2l6ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDY2MjdlYzFlYmU2MjIxOTE3MjcyYWY4MThi
OGYxZTZlM2UyOTI5MWUuLjQzMGEzNDJmNjNiOTM4NDRmNDFiNzU3YjBkZmFkOWFhYmIyN2NjYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxk
ZXI6OmRlc3Ryb3koUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQ2FuQ29sbGFwc2VBbm9ueW1vdXNC
bG9jCiAgICAgLy8gV2UgbmVlZCB0byBkZXRhY2ggdGhlIHN1YnRyZWUgZmlyc3Qgc28gdGhhdCB0
aGUgZGVzY2VuZGFudHMgZG9uJ3QgaGF2ZQogICAgIC8vIGFjY2VzcyB0byBwcmV2aW91cy9uZXh0
IHN1YmxpbmdzIGF0IGRldGFjaCgpLgogICAgIC8vIEZJWE1FOiB3ZWJraXQub3JnL2IvMTgyOTA5
LgotICAgIGlmICghaXM8UmVuZGVyRWxlbWVudD4odG9EZXN0cm95LmdldCgpKSkKKyAgICBpZiAo
IWlzPFJlbmRlckVsZW1lbnQ+KHRvRGVzdHJveSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1
dG8mIGNoaWxkVG9EZXN0cm95ID0gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRvRGVzdHJveS5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZUJ1aWxkZXJUYWJsZS5jcHAKaW5kZXggNTg5NjQ0N2UxNjgzMTFhNWM5ODI0
MjRmNzE0NGY0OTZkNzM5MjZjOC4uZDkzYWNjZTI0YWNlZTRkZTFlNDAzMGE5MTYyMmQ3ODkwY2Y1
ZTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyVGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlQnVpbGRlclRhYmxlLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQg
UmVuZGVyVHJlZUJ1aWxkZXI6OlRhYmxlOjphdHRhY2goUmVuZGVyVGFibGVTZWN0aW9uJiBwYXJl
bnQsIFJlbmRlclB0cjxSZW5kCiAgICAgICAgIGJlZm9yZUNoaWxkID0gbV9idWlsZGVyLnNwbGl0
QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChwYXJlbnQsICpiZWZvcmVDaGlsZCk7CiAKICAgICAv
LyBGSVhNRTogY2hpbGQgc2hvdWxkIGFsd2F5cyBiZSBhIFJlbmRlclRhYmxlUm93IGF0IHRoaXMg
cG9pbnQuCi0gICAgaWYgKGlzPFJlbmRlclRhYmxlUm93PigqY2hpbGQuZ2V0KCkpKQorICAgIGlm
IChpczxSZW5kZXJUYWJsZVJvdz4oY2hpbGQpKQogICAgICAgICBwYXJlbnQud2lsbEluc2VydFRh
YmxlUm93KGRvd25jYXN0PFJlbmRlclRhYmxlUm93PigqY2hpbGQuZ2V0KCkpLCBiZWZvcmVDaGls
ZCk7CiAgICAgQVNTRVJUKCFiZWZvcmVDaGlsZCB8fCBpczxSZW5kZXJUYWJsZVJvdz4oKmJlZm9y
ZUNoaWxkKSk7CiAgICAgbV9idWlsZGVyLmF0dGFjaFRvUmVuZGVyRWxlbWVudChwYXJlbnQsIFdU
Rk1vdmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDI0NjBhNDNkMmU2NGI3ZWE5MTEzYTk4NTYyYmQzYjU5
MjZjMmFiOTkuLmY4M2U1NjBhMTkzMDdkMTg2YThlOTU2OTA1OTZhZjdmYmVmNWJlMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01Nzg3LDcg
KzU3ODcsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFRleHRBc3luYyhjb25zdCBTdHJpbmcmIHRleHQp
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4o
bV9mb2N1c2VkRWxlbWVudC5nZXQoKSkpIHsKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4o
bV9mb2N1c2VkRWxlbWVudCkpIHsKICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
Km1fZm9jdXNlZEVsZW1lbnQpLnNldFZhbHVlRm9yVXNlcih0ZXh0KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggNWJjYTA5NTEzMDlhNmVhOGM3Njg4NGE0ZDU3YTJjODQwMThjYzM0
MS4uZDE4NjI1Yjk1NWYwZjYwNzI4MjdhYTc0ZjM3YWJkYjNlYTEzNTNjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEx
MzAsOSArMTEzMCw5IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNl
dDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgVHJhbnNhCiAgICAgYXV0byBpbnZhbGlk
VGFyZ2V0Rm9yU2luZ2xlQ2xpY2sgPSAhbV9wb3RlbnRpYWxUYXBOb2RlOwogICAgIGlmICghaW52
YWxpZFRhcmdldEZvclNpbmdsZUNsaWNrKSB7CiAgICAgICAgIGJvb2wgdGFyZ2V0UmVuZGVycyA9
IG1fcG90ZW50aWFsVGFwTm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAgaWYgKCF0YXJnZXRSZW5k
ZXJzICYmIGlzPEVsZW1lbnQ+KG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSkpCisgICAgICAgIGlm
ICghdGFyZ2V0UmVuZGVycyAmJiBpczxFbGVtZW50PihtX3BvdGVudGlhbFRhcE5vZGUpKQogICAg
ICAgICAgICAgdGFyZ2V0UmVuZGVycyA9IGRvd25jYXN0PEVsZW1lbnQ+KCptX3BvdGVudGlhbFRh
cE5vZGUpLnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKTsKLSAgICAgICAgaW52YWxpZFRh
cmdldEZvclNpbmdsZUNsaWNrID0gIXRhcmdldFJlbmRlcnMgJiYgIWlzPEhUTUxBcmVhRWxlbWVu
dD4obV9wb3RlbnRpYWxUYXBOb2RlLmdldCgpKTsKKyAgICAgICAgaW52YWxpZFRhcmdldEZvclNp
bmdsZUNsaWNrID0gIXRhcmdldFJlbmRlcnMgJiYgIWlzPEhUTUxBcmVhRWxlbWVudD4obV9wb3Rl
bnRpYWxUYXBOb2RlKTsKICAgICB9CiAgICAgaWYgKGludmFsaWRUYXJnZXRGb3JTaW5nbGVDbGlj
aykgewogICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKQEAgLTMxMDMsNyArMzEw
Myw3IEBAIHZvaWQgV2ViUGFnZTo6c3RvcEludGVyYWN0aW9uKCkKIAogdm9pZCBXZWJQYWdlOjpw
ZXJmb3JtQWN0aW9uT25FbGVtZW50KHVpbnQzMl90IGFjdGlvbikKIHsKLSAgICBpZiAoIWlzPEhU
TUxFbGVtZW50PihtX2ludGVyYWN0aW9uTm9kZS5nZXQoKSkpCisgICAgaWYgKCFpczxIVE1MRWxl
bWVudD4obV9pbnRlcmFjdGlvbk5vZGUpKQogICAgICAgICByZXR1cm47CiAKICAgICBIVE1MRWxl
bWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbGVtZW50PigqbV9pbnRlcmFjdGlvbk5vZGUp
OwpAQCAtMzM4MCw3ICszMzgwLDcgQEAgc3RkOjpvcHRpb25hbDxGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uPiBXZWJQYWdlOjpmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKCkKIAogdm9pZCBXZWJQ
YWdlOjphdXRvZmlsbExvZ2luQ3JlZGVudGlhbHMoY29uc3QgU3RyaW5nJiB1c2VybmFtZSwgY29u
c3QgU3RyaW5nJiBwYXNzd29yZCkKIHsKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obV9m
b2N1c2VkRWxlbWVudC5nZXQoKSkpIHsKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obV9m
b2N1c2VkRWxlbWVudCkpIHsKICAgICAgICAgaWYgKGF1dG8gYXV0b2ZpbGxFbGVtZW50cyA9IEF1
dG9maWxsRWxlbWVudHM6OmNvbXB1dGVBdXRvZmlsbEVsZW1lbnRzKGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCptX2ZvY3VzZWRFbGVtZW50KSkpCiAgICAgICAgICAgICBhdXRvZmlsbEVsZW1l
bnRzLT5hdXRvZmlsbCh1c2VybmFtZSwgcGFzc3dvcmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkZyYW1lLmNwcAppbmRleCA5M2FhN2Q2YWUyNzdiNzFkZDhhZWI0MWU2ZmVkZTYwY2Rl
MDBiOThmLi45MGE1YTBhMTMzNmVlZWJjOGFmNWNkZWMxYjVjNjIwZTY4MjMxOWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMTI4LDcgKzExMjgsNyBAQCBIUkVTVUxU
IFdlYkZyYW1lOjplbGVtZW50V2l0aE5hbWUoQlNUUiBuYW1lLCBJRE9NRWxlbWVudCogZm9ybSwg
SURPTUVsZW1lbnQqKiBlbAogICAgIGlmIChmb3JtRWxlbWVudCkgewogICAgICAgICBBdG9tU3Ry
aW5nIHRhcmdldE5hbWUoKFVDaGFyKiluYW1lLCBTeXNTdHJpbmdMZW4obmFtZSkpOwogICAgICAg
ICBmb3IgKGF1dG8mIGFzc29jaWF0ZWRFbGVtZW50IDogZm9ybUVsZW1lbnQtPmNvcHlBc3NvY2lh
dGVkRWxlbWVudHNWZWN0b3IoKSkgewotICAgICAgICAgICAgaWYgKCFpczxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Pihhc3NvY2lhdGVkRWxlbWVudC5nZXQoKSkpCisgICAgICAgICAgICBpZiAoIWlz
PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ+KGFzc29jaWF0ZWRFbGVtZW50KSkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGF1dG8mIGVsdCA9IGRvd25jYXN0PEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ+KGFzc29jaWF0ZWRFbGVtZW50LmdldCgpKTsKICAgICAgICAgICAgIC8v
IFNraXAgb3B0aW9uIGVsZW1lbnRzLCBvdGhlciBkdWRzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>