<?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>234099</bug_id>
          
          <creation_ts>2021-12-09 12:49:01 -0800</creation_ts>
          <short_desc>[GPU Process] [Filters] Add the encoding and decoding for FEImage</short_desc>
          <delta_ts>2021-12-09 18:41:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>
          
          <blocked>231253</blocked>
    
    <blocked>233989</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822268</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 12:49:01 -0800</bug_when>
    <thetext>The encoding and decoding of FEImage requires special handling. FEImage needs to encode and decode the RenderingResourceIdentifier of the Image or the ImageBuffer of its SourceImage. FEImage needs to send the Image or the ImageBuffer of its SourceImage separately to GPUProcess. But before applying the filter all the FEImages need to resolve their RenderingResourceIdentifiers back to an Image or an ImageBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822389</commentid>
    <comment_count>1</comment_count>
      <attachid>446622</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 15:35:53 -0800</bug_when>
    <thetext>Created attachment 446622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822396</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 15:48:12 -0800</bug_when>
    <thetext>There should be two follow-up patches:

bug 234108: Convert FilterEffectVector to be a Vector of Ref&lt;FilterEffect&gt;
bug 234109: Move FEImage to the &apos;platform&apos; directory

bug 234109 is essential to remove the layering violation which this patch is introducing by including the header file SVGFEImage.h in the source file DisplayListRecorder.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822419</commentid>
    <comment_count>3</comment_count>
      <attachid>446622</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-09 16:28:58 -0800</bug_when>
    <thetext>Comment on attachment 446622
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446622&amp;action=review

r=mews

&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:248
&gt; +            Ref&lt;Image&gt; image = BitmapImage::create(RefPtr&lt;NativeImage&gt; { nativeImage });

Nit - I don&apos;t think this local variable adds much here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822463</commentid>
    <comment_count>4</comment_count>
      <attachid>446645</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 17:44:27 -0800</bug_when>
    <thetext>Created attachment 446645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822465</commentid>
    <comment_count>5</comment_count>
      <attachid>446622</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 17:45:35 -0800</bug_when>
    <thetext>Comment on attachment 446622
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=446622&amp;action=review

&gt;&gt; Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:248
&gt;&gt; +            Ref&lt;Image&gt; image = BitmapImage::create(RefPtr&lt;NativeImage&gt; { nativeImage });
&gt; 
&gt; Nit - I don&apos;t think this local variable adds much here.

The local variable was removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822481</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-09 18:40:20 -0800</bug_when>
    <thetext>Committed r286824 (245058@main): &lt;https://commits.webkit.org/245058@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822482</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-09 18:41:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86302383&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446622</attachid>
            <date>2021-12-09 15:35:53 -0800</date>
            <delta_ts>2021-12-09 16:28:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234099-20211209153553.patch</filename>
            <type>text/plain</type>
            <size>26449</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk0ZGVmMzcwMzIyZmM0
Mjg4OWM5NjIxMjNiNTg4ZDc5NTAyYmE0NC4uYmUzZWQ0NTQwMTE3MDg2MjQ1MzM4NDM2NzQ0ODI0
ODJjM2Q5ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTEyLTA5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciBGRUltYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGRUltYWdlIG5lZWRz
IHRvIGVuY29kZSBhbmQgZGVjb2RlIHRoZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgb2Yg
dGhlCisgICAgICAgIEltYWdlIG9yIHRoZSBJbWFnZUJ1ZmZlciBvZiBpdHMgU291cmNlSW1hZ2Uu
CisKKyAgICAgICAgQSBuZXcgdHlwZSAnUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyJyBpcyBh
ZGRlZCB0byBGRUltYWdlOjpTb3VyY2VJbWFnZQorICAgICAgICB2YXJpYW50LiBUaGlzIGdvaW5n
IHRvIGJlIHVzZWQgd2hpbGUgdHJhbnNmZXJyaW5nIHRoZSBGRUltYWdlIGZyb20gCisgICAgICAg
IFdlYlByb2Nlc3MgdG8gR1BVUHJvY2Vzcy4gCisKKyAgICAgICAgUmVjb3JkLXVzaW5nIHRoZSBJ
bWFnZSBvciBJbWFnZUJ1ZmZlciBvZiBGRUltYWdlOjpTb3VyY2VJbWFnZSBoYXMgdG8KKyAgICAg
ICAgaGFwcGVuIGluIFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcigpIHNpbmNlIHRo
aXMgaXMgdGhlIHBsYWNlIHdlCisgICAgICAgIGNhbiBzZW5kIG1lc3NhZ2VzIHRvIEdQVVByb2Nl
c3MuCisKKyAgICAgICAgUmVzb2x2aW5nIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBvZiBG
RUltYWdlOjpTb3VyY2VJbWFnZSBiYWNrIHRvIGFuCisgICAgICAgIEltYWdlIG9yIGFuIEltYWdl
QnVmZmVyIGhhcyB0byBoYXBwZW4gaW4gUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6CisgICAg
ICAgIGRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyIGJlZm9yZSBoYW5kbGluZyB0aGUgaXRlbSBEcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlci4KKworICAgICAgICBCZWNhdXNlIG9mIHRoZSB0d28gcmVzdHJp
Y3Rpb25zIGFib3ZlIHdlIGhhdmUgdG8gcHJvdmlkZSB0aGUgdmlydHVhbAorICAgICAgICBmdW5j
dGlvbiBGaWx0ZXI6OmVmZmVjdHNPZlR5cGUoKSB3aGljaCBpcyBvdmVycmlkZGVuIGJ5IENTU0Zp
bHRlciBhbmQgCisgICAgICAgIFNWR0ZpbHRlci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1h
Z2VCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
U1NGaWx0ZXI6OmVmZmVjdHNPZlR5cGUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9DU1NG
aWx0ZXIuaDoKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWU6OmRlY29kZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGRUltYWdlOjpjYWxjdWxhdGVJbWFnZVJlY3QgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZVNvZnR3YXJlQXBwbGllcjo6YXBwbHkgY29u
c3QpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpG
RUltYWdlOjpkZWNvZGUpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OmVmZmVjdHNPZlR5cGUgY29uc3Qp
OgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDIxLTEy
LTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gV2ViIElu
c3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMg
dG8gYmUgdG8gbm90aWZpZWQgd2hlbiBhbiBleHRlbnNpb24gdGFiIG5hdmlnYXRlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBmODZkMTcyZGUzYjg0NTc0ZGJmMWI2NjVmOWIwODIzMDc1ZTc4ZjM3Li5jNDQ1MDdkODcy
N2QxMTg0NzllYTdjMzY3YmM2NGVjYWE0OGY3MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDIxLTEyLTA5ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5n
IGZvciBGRUltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQwOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGhlIHN1cHBvcnQgdG8gZW5jb2RlIGFuZCBkZWNvZGUgdGhlIEZFSW1hZ2UgdGhy
b3VnaCBGaWx0ZXJSZWZlcmVuY2UuCisgICAgICAgIFRoZSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgb2YgdGhlIEltYWdlIG9yIHRoZSBJbWFnZUJ1ZmZlciB3aWxsIGJlCisgICAgICAgIHVz
ZWQgd2hpbGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHRoZSBGRUltYWdlLiBSZXNvbHZpbmcgdGhl
IGRlY29kZWQKKyAgICAgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGJhY2sgdG8gYW4g
SW1hZ2Ugb3IgSW1hZ2VCdWZmZXIgd2lsbCBoYXBwZW4KKyAgICAgICAgaW4gUmVtb3RlRGlzcGxh
eUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIpLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDoKKyAgICAgICAg
KElQQzo6RmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoSVBD
OjpGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdCk6CisKIDIwMjEtMTItMDggIEJK
IEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9y
OiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSB0
byBub3RpZmllZCB3aGVuIGFuIGV4dGVuc2lvbiB0YWIgbmF2aWdhdGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCA2MWZmYjBhMTc0YmI3OGU4ZWJlY2MwYTg5NDI3NjRjZGNmYzNjYTM2Li42NjUwZjMw
ZDYxZWQ0ZjE2NmU1ODQ0YmM4NWFmMGYzMDc2YTcyNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTE5MTAsMTIgKzE5MTAsMTQgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHN2Zy9TVkdMZW5ndGhWYWx1ZS5oCiAgICAgc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5o
CiAgICAgc3ZnL1NWR1BhcnNpbmdFcnJvci5oCisgICAgc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZS5oCiAgICAgc3ZnL1NWR1N0cmluZ0xpc3QuaAogICAgIHN2Zy9TVkdUZXN0cy5oCiAg
ICAgc3ZnL1NWR1VuaXRUeXBlcy5oCiAKICAgICBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5o
CiAKKyAgICBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKICAgICBzdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXIuaAogICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ckV4cHJlc3Npb24uaAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNWIyNDJjZTIyNTMwMzUzYzNjMzYxODNlYTlkYTY2MjhiZTU2
MjMzNC4uZmMzZjkwNjk5ODQ4ZWUyYWMyOWVkNGZmNDg1MjgzNTI2NWU4ZGI1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMx
OSw2ICsyMzE5LDcgQEAKIAkJNzI5RDA1MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTcyQTVEMTkyMjc1RThGRkUwMDY1ODMzRSAvKiBTVkdGaWx0ZXJFeHByZXNzaW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjZDREUyNTI3NUI0
ODk3MDBBNDQ1QjIgLyogU1ZHRmlsdGVyRXhwcmVzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyQTczQkVGMjQ1QTNGOTAwMDFDOUQwMyAv
KiBBbmltYXRpb25GcmFtZVJhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcyMkE4MTVDMjM4RkQ1MDUwMEMwMDU4MyAvKiBBbmltYXRpb25GcmFtZVJh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3
MkFDQzlDNjI3NjI5QTc3MDBENTIzRjcgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhGMjI0NjFE
RDNEMUM1MDBFOTJEQTMgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJCOEIwMzUyNzUzNDM4
NjAwRjc1MkFBIC8qIEZpbHRlckZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjYyRDc1NjI3MkExNzQxMDBDNTZBMDkgLyogRmlsdGVyRnVu
Y3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3MkI4QjAzNjI3NTM0NDE0MDBGNzUyQUEgLyogRmlsdGVySW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNDM1RUY0MjczRDA3NjcwMDA1RTdF
RSAvKiBGaWx0ZXJJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTcyQkFDM0FFMjNFMUYwQjAwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tl
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFD
M0E1MjNFMTczMjgwMDhENzQxQyAvKiBJbWFnZUJ1ZmZlckJhY2tlbmQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzg3MSw3ICszODcyLDcgQEAK
IAkJQjIyMkY2OUQwQUI3NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMkY2OUIwQUI3NzFCODAwMjJF
RkFEIC8qIEpTU1ZHRWxlbWVudC5oICovOyB9OwogCQlCMjIzNjIyOTBDM0FGMDRBMDAwOENBOUIg
LyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEIyMjM2MjI3MEMzQUYwNEEwMDA4Q0E5QiAvKiBKU1NWR1RleHRQYXRo
RWxlbWVudC5oICovOyB9OwogCQlCMjM1NDBGMzBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1
bmNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
MjM1NDBGMTBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjI1NTk5ODUwRDAwRDhCQTAw
QkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEIyNTU5OEVCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggKi87
IH07CisJCUIyNTU5OTg1MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThFQjBEMDBEOEI5MDBC
QjgyNUMgLyogU1ZHRkVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUIyNTU5OUE0MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdJbWFnZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1NTk5MEMwRDAw
RDhCOTAwQkI4MjVDIC8qIFNWR0ltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI1NTk5QTUwRDAwRDhCQTAwQkI4MjVDIC8qIEVtcHR5Q2xp
ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1
NTk5MEQwRDAwRDhCOTAwQkI4MjVDIC8qIEVtcHR5Q2xpZW50cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUIyNzUzNTY1MEIwNTM4MTQwMDJDRTY0
RiAvKiBQREZEb2N1bWVudEltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCMjc1MzUzNzBCMDUzODE0MDAyQ0U2NEYgLyogUERGRG9jdW1lbnRJbWFn
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0z
NzI1Miw2ICszNzI1Myw3IEBACiAJCQkJQjIyMjdBOTEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1Bv
bHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NDBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5NzBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNzJBQ0M5QzYyNzYyOUE3NzAwRDUyM0Y3IC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVEQ0M1MjgyMjQwN0IyMDAwQzI2RTMyIC8qIFNW
R1ByaW1pdGl2ZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyMTQ0MzMzMjIzRUM4QjAwMEYx
MkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzQyMjNFQzkx
NjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGQ4YjhmY2EzOTNhZjYzNmRmYjg0
Zjg0NzA1NzVjY2FmYzlhNzNlYWMuLmU2N2U1MTZiMzg3ZTkyZjM4M2UzZGZiYWMxOTZiMjVkMDJi
YWJjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlNWR0ZFSW1hZ2UuaCIK
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJl
YW0uaD4KIApAQCAtMTQ4LDEzICsxNDksNDAgQEAgdm9pZCBSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVk
SW1hZ2VCdWZmZXIoSW1hZ2VCdWZmZXIqIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QKIHsK
ICAgICBhcHBlbmRTdGF0ZUNoYW5nZUl0ZW1JZk5lY2Vzc2FyeSgpOwogCi0gICAgaWYgKCFzb3Vy
Y2VJbWFnZSkgewotICAgICAgICByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcih7IH0sIHNv
dXJjZUltYWdlUmVjdCwgZmlsdGVyKTsKKyAgICBpZiAoc291cmNlSW1hZ2UgJiYgIWNhbkRyYXdJ
bWFnZUJ1ZmZlcigqc291cmNlSW1hZ2UpKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIHNvdXJjZUltYWdlUmVjdCwgZmlsdGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuRHJhd0ltYWdlQnVmZmVy
KCpzb3VyY2VJbWFnZSkpIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0OjpkcmF3RmlsdGVyZWRJ
bWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOworICAgIGZv
ciAoYXV0byYgZWZmZWN0IDogZmlsdGVyLmVmZmVjdHNPZlR5cGUoRmlsdGVyRWZmZWN0OjpUeXBl
OjpGRUltYWdlKSkgeworICAgICAgICBib29sIGlzUmVjb3JkZWQgPSBXVEY6OnN3aXRjaE9uKGRv
d25jYXN0PEZFSW1hZ2U+KGVmZmVjdC5nZXQoKSktPnNvdXJjZUltYWdlKCksCisgICAgICAgICAg
ICBbJl0gKGNvbnN0IFJlZjxJbWFnZT4mIGltYWdlKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1
dG8gbmF0aXZlSW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKSkgeworICAgICAgICAgICAgICAg
ICAgICByZWNvcmRSZXNvdXJjZVVzZSgqbmF0aXZlSW1hZ2UpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFsmXSAoY29uc3QgUmVmPEltYWdl
QnVmZmVyPiYgaW1hZ2VCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2FuRHJhd0ltYWdl
QnVmZmVyKGltYWdlQnVmZmVyKSkgeworICAgICAgICAgICAgICAgICAgICByZWNvcmRSZXNvdXJj
ZVVzZShpbWFnZUJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgWyZdIChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKwor
ICAgICAgICBpZiAoIWlzUmVjb3JkZWQpIHsKKyAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2UsIHNvdXJjZUltYWdlUmVjdCwgZmls
dGVyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICgh
c291cmNlSW1hZ2UpIHsKKyAgICAgICAgcmVjb3JkRHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoeyB9
LCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmlu
ZGV4IGIyYmEzZWY0OGQ2MDk0MmE0YjNkZDE3YmQ0ZTc3MGQyYjQxNDJjZTIuLjdjNTVmMzQzZjBi
NjAwOWM2NTAyZWEyOWFiMTYxYjlmZTBiOGY0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtMjEsNiArMjEsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZpbHRlckVmZmVjdFZlY3Rvci5oIgogI2luY2x1ZGUg
IkZpbHRlckZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NUeXBlcy5oIgpAQCAtNjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IGNs
aXBUb01heEVmZmVjdFJlY3QoY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdDsKIAogICAgIHZpcnR1YWwgUmVmUHRyPEZp
bHRlckVmZmVjdD4gbGFzdEVmZmVjdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZpbHRlckVm
ZmVjdFZlY3RvciBlZmZlY3RzT2ZUeXBlKEZpbHRlckZ1bmN0aW9uOjpUeXBlKSBjb25zdCA9IDA7
CiAKICAgICBib29sIGNsYW1wRmlsdGVyUmVnaW9uSWZOZWVkZWQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCAzZWYyN2NkYmE2MjM4OTBlYTc4ZDE3NGM5ZmZj
YjdiNDAyNTQ5OThiLi5hMTMyOGE2ZWNkZDEyOGIzOThlZmJjMjBkN2IxMWNlZTczZTliNDE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcApAQCAtMzQ3LDYgKzM0NywyNSBA
QCBSZWZQdHI8RmlsdGVyRWZmZWN0PiBDU1NGaWx0ZXI6Omxhc3RFZmZlY3QoKSBjb25zdAogICAg
IHJldHVybiBkb3duY2FzdDxGaWx0ZXJFZmZlY3Q+KGZ1bmN0aW9uLnB0cigpKTsKIH0KIAorRmls
dGVyRWZmZWN0VmVjdG9yIENTU0ZpbHRlcjo6ZWZmZWN0c09mVHlwZShGaWx0ZXJGdW5jdGlvbjo6
VHlwZSBmaWx0ZXJUeXBlKSBjb25zdAoreworICAgIEZpbHRlckVmZmVjdFZlY3RvciBlZmZlY3Rz
OworCisgICAgZm9yIChhdXRvJiBmdW5jdGlvbiA6IG1fZnVuY3Rpb25zKSB7CisgICAgICAgIGlm
IChmdW5jdGlvbi0+ZmlsdGVyVHlwZSgpID09IGZpbHRlclR5cGUpIHsKKyAgICAgICAgICAgIGVm
ZmVjdHMuYXBwZW5kKHsgZG93bmNhc3Q8RmlsdGVyRWZmZWN0PihmdW5jdGlvbi5wdHIoKSkgfSk7
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmdW5jdGlv
bi0+aXNTVkdGaWx0ZXIoKSkgeworICAgICAgICAgICAgYXV0byYgZmlsdGVyID0gZG93bmNhc3Q8
U1ZHRmlsdGVyPihmdW5jdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBlZmZlY3RzLmFwcGVuZFZl
Y3RvcihmaWx0ZXIuZWZmZWN0c09mVHlwZShmaWx0ZXJUeXBlKSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICByZXR1cm4gZWZmZWN0czsKK30KKwogI2lmIFVTRShDT1JFX0lNQUdFKQogYm9vbCBD
U1NGaWx0ZXI6OnN1cHBvcnRzQ29yZUltYWdlUmVuZGVyaW5nKCkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCA5Y2QxZTQyYTZiMDlmOTFiZTQ5OWZkNmQ4Zjk2
MTUyODM0ZTRlMDI5Li5iZWEyYjBiYjYyODdjODExZTRlMTdkNWE4YTQyNzJmZGM0M2U4NThmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC01Myw2ICs1Myw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9oYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlT
ZWN1cml0eU9yaWdpbjsgfQogCiAgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gbGFzdEVmZmVjdCgp
IGNvbnN0IGZpbmFsOworICAgIEZpbHRlckVmZmVjdFZlY3RvciBlZmZlY3RzT2ZUeXBlKEZpbHRl
ckZ1bmN0aW9uOjpUeXBlKSBjb25zdCBmaW5hbDsKKwogICAgIEludE91dHNldHMgb3V0c2V0cygp
IGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBjbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAK
aW5kZXggMTBjODg0MjljNzI0MDNkY2VkM2EzZjdlYTQwNjAwYjU3NDcwM2NlOC4uNDE4NDAyYmIw
MWFkOGIzMGYxMDE3OWNkMWYwY2EzZGZmOThkNDMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAKQEAgLTMxLDE1ICszMSwxNSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCkKLSAgICA6IG1fYWxpZ24oU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JRFlNSUQpCi0gICAgLCBtX21lZXRPclNsaWNlKFNWR19NRUVUT1JTTElD
RV9NRUVUKQorU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUoU3RyaW5nVmlldyB2YWx1ZSkKIHsKKyAgICBwYXJzZSh2YWx1ZSk7CiB9CiAKLVNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKFN0
cmluZ1ZpZXcgdmFsdWUpCitTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZShTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZSBhbGlnbiwgU1ZHTWVl
dE9yU2xpY2VUeXBlIG1lZXRPclNsaWNlKQorICAgIDogbV9hbGlnbihhbGlnbikKKyAgICAsIG1f
bWVldE9yU2xpY2UobWVldE9yU2xpY2UpCiB7Ci0gICAgcGFyc2UodmFsdWUpOwogfQogCiBFeGNl
cHRpb25Pcjx2b2lkPiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OnNldEFsaWduKHVuc2ln
bmVkIHNob3J0IGFsaWduKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZS5oCmluZGV4IDUxNDBmNjlkZjgyNzZiNWU3NDM2YjI4ZmQ1NGM4MzE3YzI5
OWFiMzAuLmRkZDc4NjFhZjg2MjgwYzY4YTI3YjI2Mzk3YTdkYzk3ZWZmNmI4NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKQEAgLTUx
LDggKzUxLDkgQEAgcHVibGljOgogICAgICAgICBTVkdfTUVFVE9SU0xJQ0VfU0xJQ0UgPSAyCiAg
ICAgfTsKIAotICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgpOworICAgIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSgpID0gZGVmYXVsdDsKICAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUoU3RyaW5nVmlldyk7CisgICAgV0VCQ09SRV9FWFBPUlQgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBlLCBTVkdNZWV0T3JTbGljZVR5
cGUpOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxpZ24odW5zaWduZWQgc2hvcnQpOwog
ICAgIHVuc2lnbmVkIHNob3J0IGFsaWduKCkgY29uc3QgeyByZXR1cm4gbV9hbGlnbjsgfQpAQCAt
NzAsOSArNzEsMTIgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25z
dDsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6
Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1R5cGUgbV9hbGlnbjsKLSAgICBTVkdNZWV0T3JT
bGljZVR5cGUgbV9tZWV0T3JTbGljZTsKKyAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZSBt
X2FsaWduIHsgU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSUQgfTsKKyAgICBTVkdNZWV0
T3JTbGljZVR5cGUgbV9tZWV0T3JTbGljZSB7IFNWR19NRUVUT1JTTElDRV9NRUVUIH07CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIHBhcnNlSW50ZXJuYWwoU3Ry
aW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYsIGJvb2wgdmFsaWRhdGUpOwogfTsKQEAg
LTg0LDQgKzg4LDU5IEBAIHRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gewogICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVl
QXNTdHJpbmcoKTsgfQogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG1fYWxpZ247CisgICAgZW5jb2RlciA8PCBtX21lZXRPclNsaWNlOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWU+IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VHlwZT4gYWxpZ247CisgICAgZGVjb2RlciA+PiBhbGlnbjsKKyAgICBpZiAoIWFsaWduKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTVkdNZWV0T3JT
bGljZVR5cGU+IG1lZXRPclNsaWNlOworICAgIGRlY29kZXIgPj4gbWVldE9yU2xpY2U7CisgICAg
aWYgKCFtZWV0T3JTbGljZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJl
dHVybiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKmFsaWduLCAqbWVldE9yU2xpY2UpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBlLAorCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fVU5LTk9XTiwKKyAgICAg
ICAgV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19OT05FLAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOLAorICAgICAgICBXZWJDb3JlOjpT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZ
TUlOLAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19Q
UkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlOLAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlELAorICAg
ICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSURZTUlELAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUlELAorICAgICAgICBXZWJD
b3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElP
X1hNSU5ZTUFYLAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6
OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSURZTUFYLAorICAgICAgICBXZWJDb3JlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNQVhZTUFY
CisgICAgPjsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdNZWV0T3JTbGljZVR5cGU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWU6OlNWR01lZXRPclNsaWNlVHlwZSwKKworICAgICAgICBXZWJDb3JlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19NRUVUT1JTTElDRV9VTktOT1dOLAorICAgICAg
ICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19NRUVUT1JTTElDRV9N
RUVULAorICAgICAgICBXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19N
RUVUT1JTTElDRV9TTElDRQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKaW5k
ZXggMjJiMjUxMDk3MzhkOWIyYjk3YzdmOGJjMTk5N2Y0ZTdhMTAzZjYzMC4uZGMzZDMzZWYzYWI1
ZWIwN2ViY2RkNjY3ZTlkYzc1ZjlhYzM3ZTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKQEAgLTYxLDYgKzYxLDEwIEBAIEZs
b2F0UmVjdCBGRUltYWdlOjpjYWxjdWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiBmaWx0ZXIs
IGNvbnN0IEZpbHRlckltYWdlVmVjCiAgICAgICAgIH0sCiAgICAgICAgIFsmXSAoY29uc3QgUmVm
PEltYWdlQnVmZmVyPiYpIHsKICAgICAgICAgICAgIHJldHVybiBwcmltaXRpdmVTdWJyZWdpb247
CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSB7
CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIHJldHVybiBG
bG9hdFJlY3QoKTsKICAgICAgICAgfQogICAgICk7CiAgICAgcmV0dXJuIGZpbHRlci5jbGlwVG9N
YXhFZmZlY3RSZWN0KGltYWdlUmVjdCwgcHJpbWl0aXZlU3VicmVnaW9uKTsKQEAgLTEwMSw2ICsx
MDUsOSBAQCBib29sIEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXI6OmFwcGx5KGNvbnN0IEZpbHRlciYg
ZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvcgogICAgICAgICAgICAgaW1hZ2VSZWN0LnNj
YWxlKGZpbHRlci5maWx0ZXJTY2FsZSgpKTsKICAgICAgICAgICAgIGltYWdlUmVjdCA9IEludFJl
Y3QoaW1hZ2VSZWN0KSAtIHJlc3VsdC5hYnNvbHV0ZUltYWdlUmVjdCgpLmxvY2F0aW9uKCk7CiAg
ICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgaW1hZ2VSZWN0
LmxvY2F0aW9uKCkpOworICAgICAgICB9LAorICAgICAgICBbJl0gKFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
IH0KICAgICApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmls
dGVycy9TVkdGRUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUltYWdlLmgKaW5kZXggYzljNTJlZTBkMmNkYjU3MjgxYjU2YWQwZTYxOWFhZjM0MTNkZDk5
NC4uMWY3ZTgzMjYyYjljYjkyMzBhM2EzYzllYzUzMTlhYTE5M2RkZTgxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaApAQCAtMjQsNiAr
MjQsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zMywxMCArMzQsMTQgQEAgY2xhc3MgSW1hZ2VCdWZm
ZXI7CiAKIGNsYXNzIEZFSW1hZ2UgZmluYWwgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKIHB1Ymxp
YzoKLSAgICB1c2luZyBTb3VyY2VJbWFnZSA9IHN0ZDo6dmFyaWFudDxSZWY8SW1hZ2U+LCBSZWY8
SW1hZ2VCdWZmZXI+PjsKKyAgICB1c2luZyBTb3VyY2VJbWFnZSA9IHN0ZDo6dmFyaWFudDwKKyAg
ICAgICAgUmVmPEltYWdlPiwKKyAgICAgICAgUmVmPEltYWdlQnVmZmVyPiwKKyAgICAgICAgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyCisgICAgPjsKIAogICAgIHN0YXRpYyBSZWY8RkVJbWFn
ZT4gY3JlYXRlKFJlZjxJbWFnZT4mJiwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Jik7Ci0gICAgc3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoU291cmNlSW1hZ2UmJiwgY29uc3Qg
RmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVJbWFnZT4gY3JlYXRlKFNv
dXJjZUltYWdlJiYsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKTsKIAogICAgIGNvbnN0IFNvdXJjZUltYWdlJiBzb3Vy
Y2VJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2U7IH0KICAgICB2b2lkIHNldElt
YWdlU291cmNlKFNvdXJjZUltYWdlJiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9IFdU
Rk1vdmUoc291cmNlSW1hZ2UpOyB9CkBAIC00NCw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBGbG9h
dFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7
IH0KICAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0
UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3ByZXNlcnZlQXNwZWN0UmF0aW87IH0KIAorICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWY8RkVJbWFnZT4+
IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRkVJbWFnZShTb3VyY2VJbWFnZSYm
LCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlJik7CiAKQEAgLTYzLDYgKzcxLDQ3IEBAIHByaXZhdGU6CiAgICAgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsKIH07CiAKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZFSW1hZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIFdURjo6c3dpdGNoT24obV9zb3VyY2VJbWFnZSwKKyAgICAgICAgWyZd
IChjb25zdCBSZWY8SW1hZ2U+JiBpbWFnZSkgeworICAgICAgICAgICAgaWYgKGF1dG8gbmF0aXZl
SW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKSkKKyAgICAgICAgICAgICAgICBlbmNvZGVyIDw8
IG5hdGl2ZUltYWdlLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKTsKKyAgICAgICAgfSwK
KyAgICAgICAgWyZdIChjb25zdCBSZWY8SW1hZ2VCdWZmZXI+JiBpbWFnZUJ1ZmZlcikgeworICAg
ICAgICAgICAgZW5jb2RlciA8PCBpbWFnZUJ1ZmZlci0+cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKCk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgeworICAgICAgICAgICAgZW5jb2RlciA8
PCByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CisgICAgICAgIH0KKyAgICApOworCisgICAg
ZW5jb2RlciA8PCBtX3NvdXJjZUltYWdlUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fcHJlc2VydmVB
c3BlY3RSYXRpbzsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8
UmVmPEZFSW1hZ2U+PiBGRUltYWdlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBz
dGQ6Om9wdGlvbmFsPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gaW1hZ2VJZGVudGlmaWVy
OworICAgIGRlY29kZXIgPj4gaW1hZ2VJZGVudGlmaWVyOworICAgIGlmICghaW1hZ2VJZGVudGlm
aWVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxG
bG9hdFJlY3Q+IHNvdXJjZUltYWdlUmVjdDsKKyAgICBkZWNvZGVyID4+IHNvdXJjZUltYWdlUmVj
dDsKKyAgICBpZiAoIXNvdXJjZUltYWdlUmVjdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVz
ZXJ2ZUFzcGVjdFJhdGlvOworICAgIGRlY29kZXIgPj4gcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAg
ICBpZiAoIXByZXNlcnZlQXNwZWN0UmF0aW8pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRlKCppbWFnZUlkZW50aWZpZXIsICpzb3VyY2VJ
bWFnZVJlY3QsICpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVJbWFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCmlu
ZGV4IGMyZDgwNzE5M2VmZjM5MGRhZDc0NGYzMThmMjRiYjEwYTQ5NDM4OGUuLmM1NTYxNjcyNzkx
ZmRlZWM2ZDAyZTgxZDNkZGZkZjY4MjQ3NzJhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcApAQCAtMTE3LDYgKzExNywxOSBAQCBS
ZWZQdHI8RmlsdGVyRWZmZWN0PiBTVkdGaWx0ZXI6Omxhc3RFZmZlY3QoKSBjb25zdAogICAgIHJl
dHVybiBtX2V4cHJlc3Npb24ubGFzdCgpLmVmZmVjdC5wdHIoKTsKIH0KIAorRmlsdGVyRWZmZWN0
VmVjdG9yIFNWR0ZpbHRlcjo6ZWZmZWN0c09mVHlwZShGaWx0ZXJGdW5jdGlvbjo6VHlwZSBmaWx0
ZXJUeXBlKSBjb25zdAoreworICAgIEhhc2hTZXQ8UmVmUHRyPEZpbHRlckVmZmVjdD4+IGVmZmVj
dHM7CisKKyAgICBmb3IgKGF1dG8mIHRlcm0gOiBtX2V4cHJlc3Npb24pIHsKKyAgICAgICAgYXV0
byYgZWZmZWN0ID0gdGVybS5lZmZlY3Q7CisgICAgICAgIGlmIChlZmZlY3QtPmZpbHRlclR5cGUo
KSA9PSBmaWx0ZXJUeXBlKQorICAgICAgICAgICAgZWZmZWN0cy5hZGQoeyBlZmZlY3QucHRyKCkg
fSk7CisgICAgfQorCisgICAgcmV0dXJuIGNvcHlUb1ZlY3RvcihlZmZlY3RzKTsKK30KKwogUmVm
UHRyPEZpbHRlckltYWdlPiBTVkdGaWx0ZXI6OmFwcGx5KGNvbnN0IEZpbHRlciYsIEZpbHRlcklt
YWdlJiBzb3VyY2VJbWFnZSkKIHsKICAgICByZXR1cm4gYXBwbHkoJnNvdXJjZUltYWdlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKaW5kZXgg
ZGVmZjFhMzhmNzdlNWMzZjMxZjNjYzYxZGUzMWJiOGMxOTM2MTQ0MC4uOGUxNjUwNTE4NDliZjRk
MWVhMThiNDkyMWViMjRlOTZlYmNlNjk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAg
IGNvbnN0IFNWR0ZpbHRlckV4cHJlc3Npb24mIGV4cHJlc3Npb24oKSBjb25zdCB7IHJldHVybiBt
X2V4cHJlc3Npb247IH0KICAgICAKICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0
KCkgY29uc3QgZmluYWw7CisgICAgRmlsdGVyRWZmZWN0VmVjdG9yIGVmZmVjdHNPZlR5cGUoRmls
dGVyRnVuY3Rpb246OlR5cGUpIGNvbnN0IGZpbmFsOwogCiAgICAgUmVmUHRyPEZpbHRlckltYWdl
PiBhcHBseShGaWx0ZXJJbWFnZSogc291cmNlSW1hZ2UpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxp
c3RSZWNvcmRlci5jcHAKaW5kZXggNWUyM2RkMmFmZjI4ZmVhNDk3OWQ2OWNmYWUzYWQ0ODlmY2E2
ZWViMi4uNDljYTQ1ZGNiNmYwNmEwZWRhN2ZjNjMzZWI5ZTY5ZmQ5YTY3NWIwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVj
b3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVE
aXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTIzNCw2ICsyMzUsMjcgQEAgdm9pZCBSZW1v
dGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcihzdGQ6Om9wdGlv
bmFsPFJlbmRlcmluZ1IKIAogICAgIGF1dG8gZmlsdGVyID0gZmlsdGVyUmVmZXJlbmNlLnRha2VG
aWx0ZXIoKTsKIAorICAgIGZvciAoYXV0byYgZWZmZWN0IDogZmlsdGVyLT5lZmZlY3RzT2ZUeXBl
KEZpbHRlckVmZmVjdDo6VHlwZTo6RkVJbWFnZSkpIHsKKyAgICAgICAgYXV0byYgZmVJbWFnZSA9
ICpkb3duY2FzdDxGRUltYWdlPihlZmZlY3QuZ2V0KCkpOworCisgICAgICAgIGNvbnN0IGF1dG8q
IHJlc291cmNlSWRlbnRpZmllciA9IHN0ZDo6Z2V0X2lmPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcj4oJmZlSW1hZ2Uuc291cmNlSW1hZ2UoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VJZGVu
dGlmaWVyKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gcmVz
b3VyY2VDYWNoZSgpLmNhY2hlZE5hdGl2ZUltYWdlKHsgKnJlc291cmNlSWRlbnRpZmllciwgbV93
ZWJQcm9jZXNzSWRlbnRpZmllciB9KSkgeworICAgICAgICAgICAgUmVmPEltYWdlPiBpbWFnZSA9
IEJpdG1hcEltYWdlOjpjcmVhdGUoUmVmUHRyPE5hdGl2ZUltYWdlPiB7IG5hdGl2ZUltYWdlIH0p
OworICAgICAgICAgICAgZmVJbWFnZS5zZXRJbWFnZVNvdXJjZShXVEZNb3ZlKGltYWdlKSk7Cisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvIGltYWdl
QnVmZmVyID0gcmVzb3VyY2VDYWNoZSgpLmNhY2hlZEltYWdlQnVmZmVyKHsgKnJlc291cmNlSWRl
bnRpZmllciwgbV93ZWJQcm9jZXNzSWRlbnRpZmllciB9KSkgeworICAgICAgICAgICAgZmVJbWFn
ZS5zZXRJbWFnZVNvdXJjZSh7ICppbWFnZUJ1ZmZlciB9KTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisgICAgfQorCiAgICAgaGFuZGxlSXRlbShEaXNwbGF5TGlzdDo6RHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIoc291cmNlSW1hZ2VJZGVudGlmaWVyLCBzb3VyY2VJbWFnZVJlY3Qs
IFdURk1vdmUoZmlsdGVyKSksIHNvdXJjZUltYWdlLmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmggYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaAppbmRleCA3MGJlNDkwZDI1ZjUwOGMy
ZjViODZlNGNjYzE0ZGY0YWIwNzYwNGUyLi5jZjZjMDNjNjQ4MGU2OGM2ZTRmYmVmY2JhYzdjNzA3
NDcxZmQzYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJS
ZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVu
Y2UuaApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRkVUdXJidWxlbmNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlckVm
ZmVjdFZlY3Rvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU1ZHRkVJbWFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU1ZHRmlsdGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VBbHBoYS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU291cmNlR3JhcGhpYy5oPgpAQCAtMTM5LDcgKzE0MCw3IEBAIHZv
aWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29yZTo6Rmls
dGVyRWZmZWN0JiBlZmZlY3QsIEVuCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFSW1hZ2U6Ci0gICAgICAgIC8vIEZJWE1FOiBlbmNvZGUg
RkVJbWFnZS4KKyAgICAgICAgZG93bmNhc3Q8V2ViQ29yZTo6RkVJbWFnZT4oZWZmZWN0KS5lbmNv
ZGUoZW5jb2Rlcik7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3Q6OlR5cGU6OkZFTWVyZ2U6CkBAIC0yMjksNyArMjMwLDcgQEAgUmVmUHRyPFdlYkNvcmU6
OkZpbHRlckVmZmVjdD4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2Rl
ciYgZGVjb2QKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVJbWFnZToKLSAgICAgICAgLy8gRklYTUU6IGRlY29kZSBGRUltYWdlLgorICAg
ICAgICBlZmZlY3QgPSBXZWJDb3JlOjpGRUltYWdlOjpkZWNvZGUoZGVjb2Rlcik7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZFTWVyZ2U6
Cg==
</data>
<flag name="review"
          id="472066"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446645</attachid>
            <date>2021-12-09 17:44:27 -0800</date>
            <delta_ts>2021-12-09 18:40:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234099-20211209174426.patch</filename>
            <type>text/plain</type>
            <size>26388</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk0ZGVmMzcwMzIyZmM0
Mjg4OWM5NjIxMjNiNTg4ZDc5NTAyYmE0NC4uNGQyMzFmZTMyMTY1MDVmNWM0MjcwYWQ5NWQ0NTEz
OTJlMjA2ZjdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTEyLTA5ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciBGRUltYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgRkVJbWFnZSBuZWVkcyB0
byBlbmNvZGUgYW5kIGRlY29kZSB0aGUgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG9mIHRo
ZQorICAgICAgICBJbWFnZSBvciB0aGUgSW1hZ2VCdWZmZXIgb2YgaXRzIFNvdXJjZUltYWdlLgor
CisgICAgICAgIEEgbmV3IHR5cGUgJ1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcicgaXMgYWRk
ZWQgdG8gRkVJbWFnZTo6U291cmNlSW1hZ2UKKyAgICAgICAgdmFyaWFudC4gVGhpcyBnb2luZyB0
byBiZSB1c2VkIHdoaWxlIHRyYW5zZmVycmluZyB0aGUgRkVJbWFnZSBmcm9tIAorICAgICAgICBX
ZWJQcm9jZXNzIHRvIEdQVVByb2Nlc3MuIAorCisgICAgICAgIFJlY29yZC11c2luZyB0aGUgSW1h
Z2Ugb3IgSW1hZ2VCdWZmZXIgb2YgRkVJbWFnZTo6U291cmNlSW1hZ2UgaGFzIHRvCisgICAgICAg
IGhhcHBlbiBpbiBSZWNvcmRlcjo6ZHJhd0ZpbHRlcmVkSW1hZ2VCdWZmZXIoKSBzaW5jZSB0aGlz
IGlzIHRoZSBwbGFjZSB3ZQorICAgICAgICBjYW4gc2VuZCBtZXNzYWdlcyB0byBHUFVQcm9jZXNz
LgorCisgICAgICAgIFJlc29sdmluZyBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgb2YgRkVJ
bWFnZTo6U291cmNlSW1hZ2UgYmFjayB0byBhbgorICAgICAgICBJbWFnZSBvciBhbiBJbWFnZUJ1
ZmZlciBoYXMgdG8gaGFwcGVuIGluIFJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXI6OgorICAgICAg
ICBkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlciBiZWZvcmUgaGFuZGxpbmcgdGhlIGl0ZW0gRHJhd0Zp
bHRlcmVkSW1hZ2VCdWZmZXIuCisKKyAgICAgICAgQmVjYXVzZSBvZiB0aGUgdHdvIHJlc3RyaWN0
aW9ucyBhYm92ZSB3ZSBoYXZlIHRvIHByb3ZpZGUgdGhlIHZpcnR1YWwKKyAgICAgICAgZnVuY3Rp
b24gRmlsdGVyOjplZmZlY3RzT2ZUeXBlKCkgd2hpY2ggaXMgb3ZlcnJpZGRlbiBieSBDU1NGaWx0
ZXIgYW5kIAorICAgICAgICBTVkdGaWx0ZXIuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6UmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdl
QnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
RmlsdGVyOjplZmZlY3RzT2ZUeXBlIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmls
dGVyLmg6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlOjpkZWNvZGUpOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6Y2FsY3VsYXRlSW1hZ2VSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXI6OmFwcGx5IGNvbnN0
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpGRUltYWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVJ
bWFnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjplZmZlY3RzT2ZUeXBlIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKwogMjAyMS0xMi0w
OCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFdlYiBJbnNw
ZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRv
IGJlIHRvIG5vdGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9uIHRhYiBuYXZpZ2F0ZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggZjg2ZDE3MmRlM2I4NDU3NGRiZjFiNjY1ZjliMDgyMzA3NWU3OGYzNy4uOTMxNDE2MWRkMjlj
YzdlMzA4M2IyODc0ZWEwN2U4NzI3ZmQwMjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAyMS0xMi0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdIFtGaWx0ZXJzXSBBZGQgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBm
b3IgRkVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM0MDk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAg
IEFkZCB0aGUgc3VwcG9ydCB0byBlbmNvZGUgYW5kIGRlY29kZSB0aGUgRkVJbWFnZSB0aHJvdWdo
IEZpbHRlclJlZmVyZW5jZS4KKyAgICAgICAgVGhlIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciBvZiB0aGUgSW1hZ2Ugb3IgdGhlIEltYWdlQnVmZmVyIHdpbGwgYmUKKyAgICAgICAgdXNlZCB3
aGlsZSBlbmNvZGluZyBhbmQgZGVjb2RpbmcgdGhlIEZFSW1hZ2UuIFJlc29sdmluZyB0aGUgZGVj
b2RlZAorICAgICAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgYmFjayB0byBhbiBJbWFn
ZSBvciBJbWFnZUJ1ZmZlciB3aWxsIGhhcHBlbgorICAgICAgICBpbiBSZW1vdGVEaXNwbGF5TGlz
dFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcikuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcik6
CisgICAgICAgICogUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oOgorICAgICAgICAoSVBD
OjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZUZpbHRlckVmZmVjdCk6CisgICAgICAgIChJUEM6OkZp
bHRlclJlZmVyZW5jZTo6ZGVjb2RlRmlsdGVyRWZmZWN0KToKKwogMjAyMS0xMi0wOCAgQkogQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHBy
b3ZpZGUgYSB3YXkgZm9yIF9XS0luc3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIHRvIG5v
dGlmaWVkIHdoZW4gYW4gZXh0ZW5zaW9uIHRhYiBuYXZpZ2F0ZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IDYxZmZiMGExNzRiYjc4ZThlYmVjYzBhODk0Mjc2NGNkY2ZjM2NhMzYuLjY2NTBmMzBkNjFl
ZDRmMTY2ZTU4NDRiYzg1YWYwZjMwNzZhNzI2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTkx
MCwxMiArMTkxMCwxNCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgc3ZnL1NWR0xlbmd0aFZhbHVlLmgKICAgICBzdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgKICAg
ICBzdmcvU1ZHUGFyc2luZ0Vycm9yLmgKKyAgICBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlLmgKICAgICBzdmcvU1ZHU3RyaW5nTGlzdC5oCiAgICAgc3ZnL1NWR1Rlc3RzLmgKICAgICBz
dmcvU1ZHVW5pdFR5cGVzLmgKIAogICAgIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUNhY2hlLmgKIAor
ICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAogICAgIHN2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlci5oCiAgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyRXhw
cmVzc2lvbi5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1YjI0MmNlMjI1MzAzNTNjM2MzNjE4M2VhOWRhNjYyOGJlNTYyMzM0
Li5mYzNmOTA2OTk4NDhlZTJhYzI5ZWQ0ZmY0ODUyODM1MjY1ZThkYjVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzE5LDYg
KzIzMTksNyBAQAogCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NzJBNUQxOTIyNzVFOEZGRTAwNjU4MzNFIC8qIFNWR0ZpbHRlckV4cHJlc3Npb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNkNERTI1Mjc1QjQ4OTcw
MEE0NDVCMiAvKiBTVkdGaWx0ZXJFeHByZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzJBNzNCRUYyNDVBM0Y5MDAwMUM5RDAzIC8qIEFu
aW1hdGlvbkZyYW1lUmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIyQTgxNUMyMzhGRDUwNTAwQzAwNTgzIC8qIEFuaW1hdGlvbkZyYW1lUmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyQUND
OUM2Mjc2MjlBNzcwMEQ1MjNGNyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOEYyMjQ2MUREM0Qx
QzUwMEU5MkRBMyAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MkI4QjAzNTI3NTM0Mzg2MDBG
NzUyQUEgLyogRmlsdGVyRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyNjJENzU2MjcyQTE3NDEwMEM1NkEwOSAvKiBGaWx0ZXJGdW5jdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
QjhCMDM2Mjc1MzQ0MTQwMEY3NTJBQSAvKiBGaWx0ZXJJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0MzVFRjQyNzNEMDc2NzAwMDVFN0VFIC8q
IEZpbHRlckltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNzJCQUMzQUUyM0UxRjBCMDAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJCQUMzQTUy
M0UxNzMyODAwOEQ3NDFDIC8qIEltYWdlQnVmZmVyQmFja2VuZC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zODcxLDcgKzM4NzIsNyBAQAogCQlC
MjIyRjY5RDBBQjc3MUI4MDAyMkVGQUQgLyogSlNTVkdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjIyRjY5QjBBQjc3MUI4MDAyMkVGQUQg
LyogSlNTVkdFbGVtZW50LmggKi87IH07CiAJCUIyMjM2MjI5MEMzQUYwNEEwMDA4Q0E5QiAvKiBK
U1NWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjIyMzYyMjcwQzNBRjA0QTAwMDhDQTlCIC8qIEpTU1ZHVGV4dFBhdGhFbGVt
ZW50LmggKi87IH07CiAJCUIyMzU0MEYzMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMzU0
MEYxMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCMjU1OTk4NTBEMDBEOEJBMDBCQjgy
NUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjI1NTk4RUIwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCAqLzsgfTsK
KwkJQjI1NTk5ODUwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEVCMEQwMEQ4QjkwMEJCODI1
QyAvKiBTVkdGRUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQjI1NTk5QTQwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ltYWdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTkwQzBEMDBEOEI5
MDBCQjgyNUMgLyogU1ZHSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCMjU1OTlBNTBEMDBEOEJBMDBCQjgyNUMgLyogRW1wdHlDbGllbnRz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTkw
RDBEMDBEOEI5MDBCQjgyNUMgLyogRW1wdHlDbGllbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NjUwQjA1MzgxNDAwMkNFNjRGIC8q
IFBERkRvY3VtZW50SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyNzUzNTM3MEIwNTM4MTQwMDJDRTY0RiAvKiBQREZEb2N1bWVudEltYWdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM3MjUy
LDYgKzM3MjUzLDcgQEAKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWdv
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk3MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3MkFDQzlDNjI3NjI5QTc3MDBENTIzRjcgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyogU1ZHUHJp
bWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3
IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjE0NDMzNDIyM0VDOTE2MDBG
MTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RS
ZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKaW5kZXggZDhiOGZjYTM5M2FmNjM2ZGZiODRmODQ3
MDU3NWNjYWZjOWE3M2VhYy4uZTY3ZTUxNmIzODdlOTJmMzgzZTNkZmJhYzE5NmIyNWQwMmJhYmM5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiU1ZHRkVJbWFnZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogCkBAIC0xNDgsMTMgKzE0OSw0MCBAQCB2b2lkIFJlY29yZGVyOjpkcmF3RmlsdGVyZWRJbWFn
ZUJ1ZmZlcihJbWFnZUJ1ZmZlciogc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdAogewogICAg
IGFwcGVuZFN0YXRlQ2hhbmdlSXRlbUlmTmVjZXNzYXJ5KCk7CiAKLSAgICBpZiAoIXNvdXJjZUlt
YWdlKSB7Ci0gICAgICAgIHJlY29yZERyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHsgfSwgc291cmNl
SW1hZ2VSZWN0LCBmaWx0ZXIpOworICAgIGlmIChzb3VyY2VJbWFnZSAmJiAhY2FuRHJhd0ltYWdl
QnVmZmVyKCpzb3VyY2VJbWFnZSkpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rmls
dGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFjYW5EcmF3SW1hZ2VCdWZmZXIoKnNv
dXJjZUltYWdlKSkgewotICAgICAgICBHcmFwaGljc0NvbnRleHQ6OmRyYXdGaWx0ZXJlZEltYWdl
QnVmZmVyKHNvdXJjZUltYWdlLCBzb3VyY2VJbWFnZVJlY3QsIGZpbHRlcik7CisgICAgZm9yIChh
dXRvJiBlZmZlY3QgOiBmaWx0ZXIuZWZmZWN0c09mVHlwZShGaWx0ZXJFZmZlY3Q6OlR5cGU6OkZF
SW1hZ2UpKSB7CisgICAgICAgIGJvb2wgaXNSZWNvcmRlZCA9IFdURjo6c3dpdGNoT24oZG93bmNh
c3Q8RkVJbWFnZT4oZWZmZWN0LmdldCgpKS0+c291cmNlSW1hZ2UoKSwKKyAgICAgICAgICAgIFsm
XSAoY29uc3QgUmVmPEltYWdlPiYgaW1hZ2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBu
YXRpdmVJbWFnZSA9IGltYWdlLT5uYXRpdmVJbWFnZSgpKSB7CisgICAgICAgICAgICAgICAgICAg
IHJlY29yZFJlc291cmNlVXNlKCpuYXRpdmVJbWFnZSk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgWyZdIChjb25zdCBSZWY8SW1hZ2VCdWZm
ZXI+JiBpbWFnZUJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGlmIChjYW5EcmF3SW1hZ2VCdWZm
ZXIoaW1hZ2VCdWZmZXIpKSB7CisgICAgICAgICAgICAgICAgICAgIHJlY29yZFJlc291cmNlVXNl
KGltYWdlQnVmZmVyKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBbJl0gKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgeworICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICApOworCisgICAg
ICAgIGlmICghaXNSZWNvcmRlZCkgeworICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0OjpkcmF3
RmlsdGVyZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZSwgc291cmNlSW1hZ2VSZWN0LCBmaWx0ZXIp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFzb3Vy
Y2VJbWFnZSkgeworICAgICAgICByZWNvcmREcmF3RmlsdGVyZWRJbWFnZUJ1ZmZlcih7IH0sIHNv
dXJjZUltYWdlUmVjdCwgZmlsdGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKaW5kZXgg
YjJiYTNlZjQ4ZDYwOTQyYTRiM2RkMTdiZDRlNzcwZDJiNDE0MmNlMi4uN2M1NWYzNDNmMGI2MDA5
YzY1MDJlYTI5YWIxNjFiOWZlMGI4ZjRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0VmVjdG9yLmgiCiAjaW5jbHVkZSAiRmls
dGVyRnVuY3Rpb24uaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGlj
c1R5cGVzLmgiCkBAIC02MCw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICBGbG9hdFJlY3QgY2xpcFRv
TWF4RWZmZWN0UmVjdChjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29uc3QgRmxvYXRSZWN0
JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0OwogCiAgICAgdmlydHVhbCBSZWZQdHI8RmlsdGVy
RWZmZWN0PiBsYXN0RWZmZWN0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRmlsdGVyRWZmZWN0
VmVjdG9yIGVmZmVjdHNPZlR5cGUoRmlsdGVyRnVuY3Rpb246OlR5cGUpIGNvbnN0ID0gMDsKIAog
ICAgIGJvb2wgY2xhbXBGaWx0ZXJSZWdpb25JZk5lZWRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DU1NGaWx0ZXIuY3BwCmluZGV4IDNlZjI3Y2RiYTYyMzg5MGVhNzhkMTc0YzlmZmNiN2I0
MDI1NDk5OGIuLmExMzI4YTZlY2RkMTI4YjM5OGVmYmMyMGQ3YjExY2VlNzNlOWI0MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCkBAIC0zNDcsNiArMzQ3LDI1IEBAIFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+IENTU0ZpbHRlcjo6bGFzdEVmZmVjdCgpIGNvbnN0CiAgICAgcmV0
dXJuIGRvd25jYXN0PEZpbHRlckVmZmVjdD4oZnVuY3Rpb24ucHRyKCkpOwogfQogCitGaWx0ZXJF
ZmZlY3RWZWN0b3IgQ1NTRmlsdGVyOjplZmZlY3RzT2ZUeXBlKEZpbHRlckZ1bmN0aW9uOjpUeXBl
IGZpbHRlclR5cGUpIGNvbnN0Cit7CisgICAgRmlsdGVyRWZmZWN0VmVjdG9yIGVmZmVjdHM7CisK
KyAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogbV9mdW5jdGlvbnMpIHsKKyAgICAgICAgaWYgKGZ1
bmN0aW9uLT5maWx0ZXJUeXBlKCkgPT0gZmlsdGVyVHlwZSkgeworICAgICAgICAgICAgZWZmZWN0
cy5hcHBlbmQoeyBkb3duY2FzdDxGaWx0ZXJFZmZlY3Q+KGZ1bmN0aW9uLnB0cigpKSB9KTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZ1bmN0aW9uLT5p
c1NWR0ZpbHRlcigpKSB7CisgICAgICAgICAgICBhdXRvJiBmaWx0ZXIgPSBkb3duY2FzdDxTVkdG
aWx0ZXI+KGZ1bmN0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIGVmZmVjdHMuYXBwZW5kVmVjdG9y
KGZpbHRlci5lZmZlY3RzT2ZUeXBlKGZpbHRlclR5cGUpKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHJldHVybiBlZmZlY3RzOworfQorCiAjaWYgVVNFKENPUkVfSU1BR0UpCiBib29sIENTU0Zp
bHRlcjo6c3VwcG9ydHNDb3JlSW1hZ2VSZW5kZXJpbmcoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0NTU0ZpbHRlci5oCmluZGV4IDljZDFlNDJhNmIwOWY5MWJlNDk5ZmQ2ZDhmOTYxNTI4
MzRlNGUwMjkuLmJlYTJiMGJiNjI4N2M4MTFlNGUxN2Q1YThhNDI3MmZkYzQzZTg1OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX2hhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3Vy
aXR5T3JpZ2luOyB9CiAKICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBsYXN0RWZmZWN0KCkgY29u
c3QgZmluYWw7CisgICAgRmlsdGVyRWZmZWN0VmVjdG9yIGVmZmVjdHNPZlR5cGUoRmlsdGVyRnVu
Y3Rpb246OlR5cGUpIGNvbnN0IGZpbmFsOworCiAgICAgSW50T3V0c2V0cyBvdXRzZXRzKCkgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGNsZWFySW50ZXJtZWRpYXRlUmVzdWx0cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAppbmRl
eCAxMGM4ODQyOWM3MjQwM2RjZWQzYTNmN2VhNDA2MDBiNTc0NzAzY2U4Li40MTg0MDJiYjAxYWQ4
YjMwZjEwMTc5Y2QxZjBjYTNkZmY5OGQ0MzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmNwcApAQCAtMzEsMTUgKzMxLDE1IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoKQotICAgIDogbV9hbGlnbihTVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlEWU1JRCkKLSAgICAsIG1fbWVldE9yU2xpY2UoU1ZHX01FRVRPUlNMSUNFX01F
RVQpCitTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZShTdHJpbmdWaWV3IHZhbHVlKQogeworICAgIHBhcnNlKHZhbHVlKTsKIH0KIAotU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUoU3RyaW5n
VmlldyB2YWx1ZSkKK1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBlIGFsaWduLCBTVkdNZWV0T3JT
bGljZVR5cGUgbWVldE9yU2xpY2UpCisgICAgOiBtX2FsaWduKGFsaWduKQorICAgICwgbV9tZWV0
T3JTbGljZShtZWV0T3JTbGljZSkKIHsKLSAgICBwYXJzZSh2YWx1ZSk7CiB9CiAKIEV4Y2VwdGlv
bk9yPHZvaWQ+IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6c2V0QWxpZ24odW5zaWduZWQg
c2hvcnQgYWxpZ24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmgKaW5kZXggNTE0MGY2OWRmODI3NmI1ZTc0MzZiMjhmZDU0YzgzMTdjMjk5YWIz
MC4uZGRkNzg2MWFmODYyODBjNjhhMjdiMjYzOTdhN2RjOTdlZmY2Yjg1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaApAQCAtNTEsOCAr
NTEsOSBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19NRUVUT1JTTElDRV9TTElDRSA9IDIKICAgICB9
OwogCi0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7CisgICAgU1ZHUHJlc2VydmVB
c3BlY3RSYXRpb1ZhbHVlKCkgPSBkZWZhdWx0OwogICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZShTdHJpbmdWaWV3KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUoU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1R5cGUsIFNWR01lZXRPclNsaWNlVHlwZSk7
CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGlnbih1bnNpZ25lZCBzaG9ydCk7CiAgICAg
dW5zaWduZWQgc2hvcnQgYWxpZ24oKSBjb25zdCB7IHJldHVybiBtX2FsaWduOyB9CkBAIC03MCw5
ICs3MSwxMiBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0Owog
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKLSAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZSBtX2FsaWduOwotICAgIFNWR01lZXRPclNsaWNl
VHlwZSBtX21lZXRPclNsaWNlOworICAgIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBlIG1fYWxp
Z24geyBTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRCB9OworICAgIFNWR01lZXRPclNs
aWNlVHlwZSBtX21lZXRPclNsaWNlIHsgU1ZHX01FRVRPUlNMSUNFX01FRVQgfTsKIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VJbnRlcm5hbChTdHJpbmdQ
YXJzaW5nQnVmZmVyPENoYXJhY3RlclR5cGU+JiwgYm9vbCB2YWxpZGF0ZSk7CiB9OwpAQCAtODQs
NCArODgsNTkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPiB7CiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0
cmluZygpOyB9CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgbV9hbGlnbjsKKyAgICBlbmNvZGVyIDw8IG1fbWVldE9yU2xpY2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW9WYWx1ZT4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9UeXBl
PiBhbGlnbjsKKyAgICBkZWNvZGVyID4+IGFsaWduOworICAgIGlmICghYWxpZ24pCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNWR01lZXRPclNsaWNl
VHlwZT4gbWVldE9yU2xpY2U7CisgICAgZGVjb2RlciA+PiBtZWV0T3JTbGljZTsKKyAgICBpZiAo
IW1lZXRPclNsaWNlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSgqYWxpZ24sICptZWV0T3JTbGljZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlOjpT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1R5cGUsCisKKyAgICAgICAgV2ViQ29yZTo6U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlOjpTVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19VTktOT1dOLAorICAgICAgICBX
ZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR19QUkVTRVJWRUFTUEVDVFJB
VElPX05PTkUsCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6
U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4sCisgICAgICAgIFdlYkNvcmU6OlNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNSU4s
CisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNF
UlZFQVNQRUNUUkFUSU9fWE1BWFlNSU4sCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSUQsCisgICAgICAg
IFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JRFlNSUQsCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSUQsCisgICAgICAgIFdlYkNvcmU6
OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1J
TllNQVgsCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZH
X1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JRFlNQVgsCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVgKKyAg
ICA+OworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWU6OlNWR01lZXRPclNsaWNlVHlwZT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW9WYWx1ZTo6U1ZHTWVldE9yU2xpY2VUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX01FRVRPUlNMSUNFX1VOS05PV04sCisgICAgICAgIFdl
YkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX01FRVRPUlNMSUNFX01FRVQs
CisgICAgICAgIFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZTo6U1ZHX01FRVRP
UlNMSUNFX1NMSUNFCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAppbmRleCAy
MmIyNTEwOTczOGQ5YjJiOTdjN2Y4YmMxOTk3ZjRlN2ExMDNmNjMwLi5kYzNkMzNlZjNhYjVlYjA3
ZWJjZGQ2NjdlOWRjNzVmOWFjMzdlNGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcApAQCAtNjEsNiArNjEsMTAgQEAgRmxvYXRS
ZWN0IEZFSW1hZ2U6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29u
c3QgRmlsdGVySW1hZ2VWZWMKICAgICAgICAgfSwKICAgICAgICAgWyZdIChjb25zdCBSZWY8SW1h
Z2VCdWZmZXI+JikgewogICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVN1YnJlZ2lvbjsKKyAg
ICAgICAgfSwKKyAgICAgICAgWyZdIChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIHsKKyAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIEZsb2F0
UmVjdCgpOwogICAgICAgICB9CiAgICAgKTsKICAgICByZXR1cm4gZmlsdGVyLmNsaXBUb01heEVm
ZmVjdFJlY3QoaW1hZ2VSZWN0LCBwcmltaXRpdmVTdWJyZWdpb24pOwpAQCAtMTAxLDYgKzEwNSw5
IEBAIGJvb2wgRkVJbWFnZVNvZnR3YXJlQXBwbGllcjo6YXBwbHkoY29uc3QgRmlsdGVyJiBmaWx0
ZXIsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yCiAgICAgICAgICAgICBpbWFnZVJlY3Quc2NhbGUo
ZmlsdGVyLmZpbHRlclNjYWxlKCkpOwogICAgICAgICAgICAgaW1hZ2VSZWN0ID0gSW50UmVjdChp
bWFnZVJlY3QpIC0gcmVzdWx0LmFic29sdXRlSW1hZ2VSZWN0KCkubG9jYXRpb24oKTsKICAgICAg
ICAgICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKGltYWdlQnVmZmVyLCBpbWFnZVJlY3QubG9j
YXRpb24oKSk7CisgICAgICAgIH0sCisgICAgICAgIFsmXSAoUmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKSB7CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQog
ICAgICk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZFSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZF
SW1hZ2UuaAppbmRleCBjOWM1MmVlMGQyY2RiNTcyODFiNTZhZDBlNjE5YWFmMzQxM2RkOTk0Li4x
ZjdlODMyNjJiOWNiOTIzMGEzYTNjOWVjNTMxOWFhMTkzZGRlODE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCkBAIC0yNCw2ICsyNCw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZpbHRlckVmZmVjdC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTMzLDEwICszNCwxNCBAQCBjbGFzcyBJbWFnZUJ1ZmZlcjsK
IAogY2xhc3MgRkVJbWFnZSBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgot
ICAgIHVzaW5nIFNvdXJjZUltYWdlID0gc3RkOjp2YXJpYW50PFJlZjxJbWFnZT4sIFJlZjxJbWFn
ZUJ1ZmZlcj4+OworICAgIHVzaW5nIFNvdXJjZUltYWdlID0gc3RkOjp2YXJpYW50PAorICAgICAg
ICBSZWY8SW1hZ2U+LAorICAgICAgICBSZWY8SW1hZ2VCdWZmZXI+LAorICAgICAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIKKyAgICA+OwogCiAgICAgc3RhdGljIFJlZjxGRUltYWdlPiBj
cmVhdGUoUmVmPEltYWdlPiYmLCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKTsK
LSAgICBzdGF0aWMgUmVmPEZFSW1hZ2U+IGNyZWF0ZShTb3VyY2VJbWFnZSYmLCBjb25zdCBGbG9h
dFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoU291cmNl
SW1hZ2UmJiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwogCiAgICAgY29uc3QgU291cmNlSW1hZ2UmIHNvdXJjZUlt
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJbWFnZTsgfQogICAgIHZvaWQgc2V0SW1hZ2VT
b3VyY2UoU291cmNlSW1hZ2UmJiBzb3VyY2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gV1RGTW92
ZShzb3VyY2VJbWFnZSk7IH0KQEAgLTQ0LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIEZsb2F0UmVj
dCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdlUmVjdDsgfQog
ICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRp
bygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQogCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUltYWdlPj4gZGVj
b2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGRUltYWdlKFNvdXJjZUltYWdlJiYsIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUmKTsKIApAQCAtNjMsNiArNzEsNDcgQEAgcHJpdmF0ZToKICAgICBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwogfTsKIAordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgV1RGOjpzd2l0Y2hPbihtX3NvdXJjZUltYWdlLAorICAgICAgICBbJl0gKGNv
bnN0IFJlZjxJbWFnZT4mIGltYWdlKSB7CisgICAgICAgICAgICBpZiAoYXV0byBuYXRpdmVJbWFn
ZSA9IGltYWdlLT5uYXRpdmVJbWFnZSgpKQorICAgICAgICAgICAgICAgIGVuY29kZXIgPDwgbmF0
aXZlSW1hZ2UtPnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpOworICAgICAgICB9LAorICAg
ICAgICBbJl0gKGNvbnN0IFJlZjxJbWFnZUJ1ZmZlcj4mIGltYWdlQnVmZmVyKSB7CisgICAgICAg
ICAgICBlbmNvZGVyIDw8IGltYWdlQnVmZmVyLT5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIo
KTsKKyAgICAgICAgfSwKKyAgICAgICAgWyZdIChSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIg
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSB7CisgICAgICAgICAgICBlbmNvZGVyIDw8IHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKKyAgICAgICAgfQorICAgICk7CisKKyAgICBlbmNv
ZGVyIDw8IG1fc291cmNlSW1hZ2VSZWN0OworICAgIGVuY29kZXIgPDwgbV9wcmVzZXJ2ZUFzcGVj
dFJhdGlvOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxSZWY8
RkVJbWFnZT4+IEZFSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6
b3B0aW9uYWw8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBpbWFnZUlkZW50aWZpZXI7Cisg
ICAgZGVjb2RlciA+PiBpbWFnZUlkZW50aWZpZXI7CisgICAgaWYgKCFpbWFnZUlkZW50aWZpZXIp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0
UmVjdD4gc291cmNlSW1hZ2VSZWN0OworICAgIGRlY29kZXIgPj4gc291cmNlSW1hZ2VSZWN0Owor
ICAgIGlmICghc291cmNlSW1hZ2VSZWN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgc3RkOjpvcHRpb25hbDxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+IHByZXNlcnZl
QXNwZWN0UmF0aW87CisgICAgZGVjb2RlciA+PiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIGlm
ICghcHJlc2VydmVBc3BlY3RSYXRpbykKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiBGRUltYWdlOjpjcmVhdGUoKmltYWdlSWRlbnRpZmllciwgKnNvdXJjZUltYWdl
UmVjdCwgKnByZXNlcnZlQXNwZWN0UmF0aW8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChGRUltYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKaW5kZXgg
YzJkODA3MTkzZWZmMzkwZGFkNzQ0ZjMxOGYyNGJiMTBhNDk0Mzg4ZS4uYzU1NjE2NzI3OTFmZGVl
YzZkMDJlODFkM2RkZmRmNjgyNDc3MmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCkBAIC0xMTcsNiArMTE3LDE5IEBAIFJlZlB0
cjxGaWx0ZXJFZmZlY3Q+IFNWR0ZpbHRlcjo6bGFzdEVmZmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fZXhwcmVzc2lvbi5sYXN0KCkuZWZmZWN0LnB0cigpOwogfQogCitGaWx0ZXJFZmZlY3RWZWN0
b3IgU1ZHRmlsdGVyOjplZmZlY3RzT2ZUeXBlKEZpbHRlckZ1bmN0aW9uOjpUeXBlIGZpbHRlclR5
cGUpIGNvbnN0Cit7CisgICAgSGFzaFNldDxSZWZQdHI8RmlsdGVyRWZmZWN0Pj4gZWZmZWN0czsK
KworICAgIGZvciAoYXV0byYgdGVybSA6IG1fZXhwcmVzc2lvbikgeworICAgICAgICBhdXRvJiBl
ZmZlY3QgPSB0ZXJtLmVmZmVjdDsKKyAgICAgICAgaWYgKGVmZmVjdC0+ZmlsdGVyVHlwZSgpID09
IGZpbHRlclR5cGUpCisgICAgICAgICAgICBlZmZlY3RzLmFkZCh7IGVmZmVjdC5wdHIoKSB9KTsK
KyAgICB9CisKKyAgICByZXR1cm4gY29weVRvVmVjdG9yKGVmZmVjdHMpOworfQorCiBSZWZQdHI8
RmlsdGVySW1hZ2U+IFNWR0ZpbHRlcjo6YXBwbHkoY29uc3QgRmlsdGVyJiwgRmlsdGVySW1hZ2Um
IHNvdXJjZUltYWdlKQogewogICAgIHJldHVybiBhcHBseSgmc291cmNlSW1hZ2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAppbmRleCBkZWZm
MWEzOGY3N2U1YzNmMzFmM2NjNjFkZTMxYmI4YzE5MzYxNDQwLi44ZTE2NTA1MTg0OWJmNGQxZWEx
OGI0OTIxZWIyNGU5NmViY2U2OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgY29u
c3QgU1ZHRmlsdGVyRXhwcmVzc2lvbiYgZXhwcmVzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
cmVzc2lvbjsgfQogICAgIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3QoKSBj
b25zdCBmaW5hbDsKKyAgICBGaWx0ZXJFZmZlY3RWZWN0b3IgZWZmZWN0c09mVHlwZShGaWx0ZXJG
dW5jdGlvbjo6VHlwZSkgY29uc3QgZmluYWw7CiAKICAgICBSZWZQdHI8RmlsdGVySW1hZ2U+IGFw
cGx5KEZpbHRlckltYWdlKiBzb3VyY2VJbWFnZSkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcAppbmRleCA1ZTIzZGQyYWZmMjhmZWE0OTc5ZDY5Y2ZhZTNhZDQ4OWZjYTZlZWIy
Li44ZmVlYTJlZmZjYjVmOGEwMmZiNTdiZTIwZGFjMWFkMGM5ZjI5YmNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCiAjaW5jbHVkZSAiUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjM0LDYgKzIzNSwyNiBAQCB2b2lkIFJlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXI6OmRyYXdGaWx0ZXJlZEltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8
UmVuZGVyaW5nUgogCiAgICAgYXV0byBmaWx0ZXIgPSBmaWx0ZXJSZWZlcmVuY2UudGFrZUZpbHRl
cigpOwogCisgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBmaWx0ZXItPmVmZmVjdHNPZlR5cGUoRmls
dGVyRWZmZWN0OjpUeXBlOjpGRUltYWdlKSkgeworICAgICAgICBhdXRvJiBmZUltYWdlID0gKmRv
d25jYXN0PEZFSW1hZ2U+KGVmZmVjdC5nZXQoKSk7CisKKyAgICAgICAgY29uc3QgYXV0byogcmVz
b3VyY2VJZGVudGlmaWVyID0gc3RkOjpnZXRfaWY8UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
PigmZmVJbWFnZS5zb3VyY2VJbWFnZSgpKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZUlkZW50aWZp
ZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSByZXNvdXJj
ZUNhY2hlKCkuY2FjaGVkTmF0aXZlSW1hZ2UoeyAqcmVzb3VyY2VJZGVudGlmaWVyLCBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyIH0pKSB7CisgICAgICAgICAgICBmZUltYWdlLnNldEltYWdlU291cmNl
KFJlZjxJbWFnZT4geyBCaXRtYXBJbWFnZTo6Y3JlYXRlKG5hdGl2ZUltYWdlKSB9KTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8gaW1hZ2VCdWZm
ZXIgPSByZXNvdXJjZUNhY2hlKCkuY2FjaGVkSW1hZ2VCdWZmZXIoeyAqcmVzb3VyY2VJZGVudGlm
aWVyLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyIH0pKSB7CisgICAgICAgICAgICBmZUltYWdlLnNl
dEltYWdlU291cmNlKHsgKmltYWdlQnVmZmVyIH0pOworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyAgICB9CisKICAgICBoYW5kbGVJdGVtKERpc3BsYXlMaXN0OjpEcmF3RmlsdGVy
ZWRJbWFnZUJ1ZmZlcihzb3VyY2VJbWFnZUlkZW50aWZpZXIsIHNvdXJjZUltYWdlUmVjdCwgV1RG
TW92ZShmaWx0ZXIpKSwgc291cmNlSW1hZ2UuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCmluZGV4IDcwYmU0OTBkMjVmNTA4YzJmNWI4
NmU0Y2NjMTRkZjRhYjA3NjA0ZTIuLmNmNmMwM2M2NDgwZTY4YzZlNGZiZWZjYmFjN2M3MDc0NzFm
ZDNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVy
ZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5o
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GRVR1cmJ1bGVuY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZpbHRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyRWZmZWN0
VmVjdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TVkdGRUltYWdlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TVkdGaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUFscGhhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Tb3VyY2VHcmFwaGljLmg+CkBAIC0xMzksNyArMTQwLDcgQEAgdm9pZCBG
aWx0ZXJSZWZlcmVuY2U6OmVuY29kZUZpbHRlckVmZmVjdChjb25zdCBXZWJDb3JlOjpGaWx0ZXJF
ZmZlY3QmIGVmZmVjdCwgRW4KICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFdlYkNvcmU6OkZp
bHRlckVmZmVjdDo6VHlwZTo6RkVJbWFnZToKLSAgICAgICAgLy8gRklYTUU6IGVuY29kZSBGRUlt
YWdlLgorICAgICAgICBkb3duY2FzdDxXZWJDb3JlOjpGRUltYWdlPihlZmZlY3QpLmVuY29kZShl
bmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVj
dDo6VHlwZTo6RkVNZXJnZToKQEAgLTIyOSw3ICsyMzAsNyBAQCBSZWZQdHI8V2ViQ29yZTo6Rmls
dGVyRWZmZWN0PiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJiBk
ZWNvZAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpU
eXBlOjpGRUltYWdlOgotICAgICAgICAvLyBGSVhNRTogZGVjb2RlIEZFSW1hZ2UuCisgICAgICAg
IGVmZmVjdCA9IFdlYkNvcmU6OkZFSW1hZ2U6OmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6RkVNZXJnZToK
</data>

          </attachment>
      

    </bug>

</bugzilla>