<?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>112401</bug_id>
          
          <creation_ts>2013-03-14 21:47:09 -0700</creation_ts>
          <short_desc>Replace static_casts with to* helper functions - Part 5</short_desc>
          <delta_ts>2013-03-15 10:33:45 -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>WebKit Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Abhishek Arya">inferno</reporter>
          <assigned_to name="Abhishek Arya">inferno</assigned_to>
          <cc>abarth</cc>
    
    <cc>aboxhall</cc>
    
    <cc>andersca</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jdiggs</cc>
    
    <cc>luiz</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>855685</commentid>
    <comment_count>0</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-03-14 21:47:09 -0700</bug_when>
    <thetext>Replace static_casts with to* helper functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856033</commentid>
    <comment_count>1</comment_count>
      <attachid>193322</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-03-15 09:22:38 -0700</bug_when>
    <thetext>Created attachment 193322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856044</commentid>
    <comment_count>2</comment_count>
      <attachid>193322</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-15 09:36:04 -0700</bug_when>
    <thetext>Comment on attachment 193322
Patch

Attachment 193322 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17173597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856049</commentid>
    <comment_count>3</comment_count>
      <attachid>193322</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-03-15 09:40:11 -0700</bug_when>
    <thetext>Comment on attachment 193322
Patch

Attachment 193322 did not pass gtk-ews (gtk):
Output: http://webkit-commit-queue.appspot.com/results/17074732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856050</commentid>
    <comment_count>4</comment_count>
      <attachid>193324</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-03-15 09:42:47 -0700</bug_when>
    <thetext>Created attachment 193324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856056</commentid>
    <comment_count>5</comment_count>
      <attachid>193325</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2013-03-15 09:55:17 -0700</bug_when>
    <thetext>Created attachment 193325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856073</commentid>
    <comment_count>6</comment_count>
      <attachid>193325</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2013-03-15 10:19:18 -0700</bug_when>
    <thetext>Comment on attachment 193325
Patch

R=me. All seems fine, as safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856087</commentid>
    <comment_count>7</comment_count>
      <attachid>193325</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 10:33:40 -0700</bug_when>
    <thetext>Comment on attachment 193325
Patch

Clearing flags on attachment: 193325

Committed r145913: &lt;http://trac.webkit.org/changeset/145913&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856088</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 10:33:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193322</attachid>
            <date>2013-03-15 09:22:38 -0700</date>
            <delta_ts>2013-03-15 09:42:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112401-20130315091834.patch</filename>
            <type>text/plain</type>
            <size>100022</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiYTI4YTE1OGRiNzhj
ZjI1OTM1OGQzNDAzOWI0NGI2NjI3Yzc3ZC4uZWM0YTUyOTY3NzM4ZDEwMWE4MDVkYTc4OGI4NGRh
OWRiYjQ1OWFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5MCBAQAorMjAxMy0wMy0xNSAgQWJo
aXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3Rh
dGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJl
ZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRv
IGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvclBvaW50KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJBcmVhT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpkb2N1bWVudEZyYW1lVmll
dyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRP
YmplY3RJZkV4aXN0cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVj
dENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0
RnJvbVBsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpz
ZXRKYXZhU2NyaXB0UGF1c2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlw
dEluc3RhbmNlRm9yV2lkZ2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRh
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnN1YmZyYW1lRm9yVGFyZ2V0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdldCk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZnJhbWVGb3JXaWRnZXQpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFt
ZVZpZXdDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0N1c3RvbVNj
cm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWlu
aW5nVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZW1vdmVDaGlsZCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRnJhbWVWaWV3
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpjb2xsZWN0UGx1Z2luVmlld3MpOgorICAgICAgICAqIHBhZ2UvY2hy
b21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVu
dEhhbmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hl
ZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBh
Z2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGlu
YXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKiBwYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
YXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3d4L0V2ZW50SGFuZGxlcld4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dp
ZGdldCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29y
ZTo6dG9TY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmlzU2Nyb2xsVmll
d1Njcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om1vdXNlVXApOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpheE9iamVjdENhY2hlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6aXNTY3JvbGxWaWV3KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtU2NyZWVuQmxhY2tCZXJyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1VzZXJTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNldFBhcmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3VwcG9ydDo6cGx1Z2luU2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgICog
cGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQbHVn
aW5PY2NsdXNpb25zKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGx1Z2luVmlldyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3QmFz
ZTo6aXNQbHVnaW5WaWV3QmFzZSk6CisgICAgICAgIChQbHVnaW5WaWV3QmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjp0b1BsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsdWdpbnMvYmxhY2tiZXJyeS9OUENhbGxiYWNrc0JsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0VmlzaWJsZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFyVmlz
aWJsZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3dLZXlib2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXF1ZXN0RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpleGl0RnVsbFNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpyZXF1ZXN0Q2VudGVyRml0Wm9vbSk6CisgICAgICAg
IChXZWJDb3JlOjpsb2NrT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2NrT3Jp
ZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cHJldmVudElkbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6bG9ja0JhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2NrQmFja0J1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpsb2NrUmVhZEZyb250QnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OnVubG9ja1JlYWRGcm9udEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpzd2FwQnVm
ZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdWZmZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlc3Ryb3lCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2l6ZUJ1ZmZlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SG9sZVB1bmNoKToKKyAgICAgICAgKiBwbHVnaW5zL2JsYWNr
YmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnVwZGF0ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVTY3JvbGxFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpjYWxjdWxhdGVDbGlwUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGdWxsU2NyZWVuQWxsb3dlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZ1bGxTY3JlZW5FeGl0RXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVz
dHJveSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRCYWNrZ3JvdW5kUGxheSk6
CisgICAgICAgICogcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6c2V0VmlzaWJsZVJl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjpzaG93S2V5Ym9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1ByaXZhdGU6OnJlcXVlc3RGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjpyZXF1ZXN0Q2VudGVyRml0
Wm9vbSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6bG9ja09yaWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjp1bmxvY2tPcmllbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6cHJldmVudElkbGUp
OgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKiBwbHVnaW5z
L21hYy9QbHVnaW5WaWV3TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCk6CisgICAgICAgICogcGx1Z2lucy9ucGFwaS5jcHA6CisgICAgICAgIChwbHVn
aW5WaWV3Rm9ySW5zdGFuY2UpOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6Cisg
ICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGFpbnRJbnRvVHJhbnNmb3JtZWRDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBhaW50V2luZG93ZWRQbHVnaW5JbnRvQ29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldE5Q
V2luZG93UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzbmFwc2hvdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmFkZExheW91dE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6
OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RW1iZWRkZWRPYmplY3Q6OnZpZXdDbGVhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVt
YmVkZGVkT2JqZWN0Ojpub2RlQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6c2Nyb2xsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUmVuZGVyRmxleGlibGVCb3gpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZyYW1lOjp2aWV3Q2xlYXJlZCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckZyYW1lQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZUJhc2U6
OmxheW91dFdpdGhGbGF0dGVuaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklGcmFtZTo6Y29udGVudFJvb3RSZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlv
bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBv
c2l0aW5nVG9FbmNsb3NpbmdGcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydDo6cmVxdWlyZXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhcnQ6OmVtYmVkZGVkQ29udGVu
dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cnVieUJl
Zm9yZUJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OnJ1YnlBZnRlckJsb2NrKToKKyAgICAgICAg
KFdlYkNvcmU6Omxhc3RSdWJ5UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRSdWJ5UnVuUGFy
ZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp3cml0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnBhaW50Q29udGVudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpzZXRPdmVybGFwVGVzdFJlc3VsdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnVwZGF0ZVdpZGdldFBvc2l0aW9uKToKKwogMjAxMy0w
My0xNCAgQWxiZXJ0byBHYXJjaWEgIDxhZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0Js
YWNrQmVycnldIEdyYWRpZW50OiBkb24ndCB1c2UgdGhlIGRlZmF1bHQgc2V0UGxhdGZvcm1HcmFk
aWVudFNwYWNlVHJhbnNmb3JtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDVm
NmIzN2NmNzI0NWMwNjI2ZWFhNDNiZWMxNTIwYmRlOGY1YTc4NGUuLjU1NDUyZWIzZTM1MGQ5MjZk
OTI0MzNlNDIzMTQ2MjYzNGQ5YTEwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVy
IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMjQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHRvKiBoZWxwZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBj
YWxscyBzaW5jZSB0aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBv
biB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6ZnJhbWVGb3JOb2RlKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6bmVlZHNMYXlvdXRSZWN1cnNpdmUpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnJlZGlyZWN0RGF0YVRvUGx1Z2lu
KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6ZW5zdXJlRm9jdXNQbHVnaW5FbGVtZW50
VmlzaWJsZSk6CisKIDIwMTMtMDMtMTQgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVu
Y3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1YmI2NDViY2FmNmFhOTlmNGM2
NzkxYzAwYTFlMmYzNmYyNDNiMzVkLi5iMTBiYzdkMTJkOGNjZGE1MDMwZjk2MmJkZmE0YjA5MzBl
NTM3NGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEz
LTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxwZXIgZnVuY3Rp
b25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5CisgICAg
ICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBpbmZyYXN0
cnVjdHVyZS4KKworICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2Nyb2xsUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNldFdhbnRzV2hlZWxFdmVudHMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVNb3VzZUV2
ZW50KToKKyAgICAgICAgKiB0ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlRFU1RfRik6CisKIDIwMTMtMDMtMTQgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBS
b2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTg4MDA0LiAgUmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKaW5kZXggNWJjMTRhYzczOWQ4YTZkZTZkNWRiYjQ4MTJjYzE5MGQ4ZTVhOTgwMS4uZWExMjdj
ZDViMTg0Y2Q0YjU0MjZmOTg4NTc2NmNlOTllMDNkODkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1
bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IHRvKiBoZWxwZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxs
cyBzaW5jZSB0aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0
aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50RWZsOjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisKIDIwMTMtMDMtMTQgIEpvbmF0aGFuIExp
dSAgPG5ldDE0N0BnbWFpbC5jb20+CiAKICAgICAgICAgRml4IGRldGVjdGlvbiBvZiBJbnRlbCBN
YWMgT1MgWCBwbGF0Zm9ybSBvbiBJbnRlbCBNYWMgNjQtYml0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
OTA5YWIxODc4NjgxM2RmY2UxZmI5Mjg3ODA4ZmYyODY0OGUxOGIwYy4uNzhkNzdjZWJlNTM2NTcy
MDFjYmEyNzgzZmQzZmMxYmU3MWRmNDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxw
ZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0
aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGlu
ZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnJlZGly
ZWN0RGF0YVRvUGx1Z2luKToKKwogMjAxMy0wMy0xNCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhl
bHBlciBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMzA3YzhlMzIyNTNlZDk5ODNkN2Iz
YzM1NGI5ZGE3ZTEwZmVlYmZiNi4uMzhmNjViNjU5MTM4ZTM3M2E3MGE4MTg3ZjU2Mjg2ZDhiOTg0
NzIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTE1ICBBYmhp
c2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBzdGF0
aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxwZXIgZnVuY3Rpb25zIGFyZSBwcmVm
ZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5CisgICAgICAgIGhlbHAgdG8g
Y2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViUmVuZGVyTm9kZS5tbToKKyAgICAgICAgKGNvcHlSZW5kZXJO
b2RlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
X2FkZFNjcm9sbGVyRGFzaGJvYXJkUmVnaW9uc0ZvckZyYW1lVmlldzpkYXNoYm9hcmRSZWdpb25z
Ol0pOgorCiAyMDEzLTAzLTE0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9u
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggYWU1Y2UwZjc3NjVhNWFmOTlkN2E0Y2Q0NjQ3NzliMTUxOTA5
YTFlMS4uMzU3Mzg3MjBmY2ZhZTUyY2Q2NjdlZjBmMmNiNmIzMGVkZDA3ZWNiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVy
bm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8q
IGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGlj
X2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBl
YXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50UXQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKwogMjAxMy0wMy0xNCAgUmlr
IENhYmFuaWVyICA8Y2FiYW5pZXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtRdF1bV0sxXSBSRUdS
RVNTSU9OKHIxNDU3ODQpOiBCbGVuZCB0ZXN0cyBhcmUgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDVhZWY5NmE0ZjhhMzQ3ZmY3ZWI5NGZhYmY5NjJiZmVhOTdkOWMxMDYuLmNkZDM4MjJlNDRm
YjM3OWYyOTYwYmNjODFkM2Y2MjAwZGU0MThmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0
MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byog
aGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2lu
Y2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRl
c3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FbWJlZGRl
ZFdpZGdldC5jcHA6CisgICAgICAgIChFbWJlZGRlZFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisKIDIw
MTMtMDMtMTQgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIE1vdmUgcGxhdGZvcm0tc3BlY2lmaWMgdHlwZWRlZnMgdG8gUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZjZhMTk4YTQy
NGU4OGJhMDM1ZTc0ODZjMjBjMDFmNzc2OTMzNGM5Li5iN2MxNjlkNzQyMzZhYTJlYzIxYjlkNDA2
N2UwOWU2N2Y3YmExYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxwZXIgZnVu
Y3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5Cisg
ICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBpbmZy
YXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpyZWRp
cmVjdERhdGFUb1BsdWdpbik6CisKIDIwMTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRGlzYWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24g
bm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRlIEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUlu
dGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAxZjBhMGQwMjhjN2I2YWI1YzE1NTA5YmU3NmQzZDgz
YTU5ZDNmMzRlLi44NzI2NzIxMWNkMWE2MWYyN2EwODJiYzgyNDcwNzkzY2Q5ODcyNjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8
aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0
aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMjQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHRvKiBoZWxwZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBz
dGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNh
c3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdl
YktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudFd4OjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisKIDIwMTMtMDMtMTQg
IEpvbmF0aGFuIExpdSAgPG5ldDE0N0BnbWFpbC5jb20+CiAKICAgICAgICAgRml4IGRldGVjdGlv
biBvZiBJbnRlbCBNYWMgT1MgWCBwbGF0Zm9ybSBvbiBJbnRlbCBNYWMgNjQtYml0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggMjIxNDBlOWVlZTBiZjk1YmFmYmY1MjMzZjkzNzM3NzI0OGFmMjY0My4uY2VkOTU2MmQw
YTczZjQyMGNhM2RkZGJjYjg1ZDY3NjE4NTg1YmI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxw
ZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0
aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGlu
ZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdCk6CisK
IDIwMTMtMDMtMTQgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKaW5kZXggNzliOWJiOTFlNDg3YmI3ZjFhNWM1YWNiZGZjMzE2NTcwNWE3NmU2Ny4uMDNjZDNk
Mzc1MWJkMjdlMWFjMjg5MmRkNDRlMTEzNDllNDFlMTY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0zOTksNyAr
Mzk5LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdChBY2Nlc3NpYmls
aXR5T2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHkKICAgICAgICAgaWYgKCF3aWRnZXQgfHwg
IXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0g
ICAgICAgIERvY3VtZW50KiBkb2MgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5m
cmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICBEb2N1bWVudCogZG9jID0gdG9GcmFtZVZpZXco
d2lkZ2V0KS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2MgfHwgIWRvYy0+
cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAppbmRleCA1NmFlNWRmZjQ2MmIwYWI5NjRiZjQwZWNiZWFkZjFmMzliNjE2N2YxLi5hNjM3
M2Q2OWM0MmFkMmRhNGQyN2Y4Y2U3MmJiZTY3ZjczZTVmYThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTIwMTMsMTEgKzIwMTMsMTEgQEAgVmlzaWJsZVBvc2l0aW9uIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW4KICAgICAg
ICAgV2lkZ2V0KiB3aWRnZXQgPSB0b1JlbmRlcldpZGdldChyZW5kZXJlciktPndpZGdldCgpOwog
ICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KHdpZGdldCktPmZyYW1lKCk7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IHRvRnJhbWVWaWV3KHdp
ZGdldCktPmZyYW1lKCk7CiAgICAgICAgIGlmICghZnJhbWUpCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgcmVuZGVyVmlldyA9IGZyYW1lLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCk7Ci0g
ICAgICAgIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCk7CisgICAg
ICAgIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCk7CiAgICAgfQogICAgIAogICAgIHJl
dHVybiBpbm5lck5vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQocG9pbnRSZXN1bHQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcAppbmRleCAxOWI0NDgyZWM4M2M2YjA5ZjZkZjI1Y2NkN2Q5MThlY2Yz
YzBmMTBlLi4yNmZmNjJmYzBlMTVkZDI0MjA0NzRlZTJhNTcxNGI5ZjE5OGQ1ZDNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vz
c2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJBcmVhT2JqZWN0KCkgY29uc3QKICAgICBpZiAoIW1fc2Ny
b2xsVmlldyB8fCAhbV9zY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4g
MDsKICAgICAKLSAgICBEb2N1bWVudCogZG9jID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV9z
Y3JvbGxWaWV3KS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogZG9jID0gdG9G
cmFtZVZpZXcobV9zY3JvbGxWaWV3KS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRv
YyB8fCAhZG9jLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjA0LDcgKzIw
NCw3IEBAIEZyYW1lVmlldyogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OmRvY3VtZW50RnJhbWVW
aWV3KCkgY29uc3QKICAgICBpZiAoIW1fc2Nyb2xsVmlldyB8fCAhbV9zY3JvbGxWaWV3LT5pc0Zy
YW1lVmlldygpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RnJhbWVWaWV3Kj4obV9zY3JvbGxWaWV3KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcobV9z
Y3JvbGxWaWV3KTsKIH0gICAgCiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlT
Y3JvbGxWaWV3OjpwYXJlbnRPYmplY3QoKSBjb25zdApAQCAtMjEyLDcgKzIxMiw3IEBAIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRPYmplY3QoKSBj
b25zdAogICAgIGlmICghbV9zY3JvbGxWaWV3IHx8ICFtX3Njcm9sbFZpZXctPmlzRnJhbWVWaWV3
KCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAotICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXIgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3Njcm9sbFZpZXcpLT5mcmFtZSgpLT5v
d25lckVsZW1lbnQoKTsKKyAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gdG9GcmFt
ZVZpZXcobV9zY3JvbGxWaWV3KS0+ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7CiAgICAgaWYgKG93
bmVyICYmIG93bmVyLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShvd25lcik7CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBj
b25zdAogICAgIGlmICghbV9zY3JvbGxWaWV3IHx8ICFtX3Njcm9sbFZpZXctPmlzRnJhbWVWaWV3
KCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAotICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXIgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3Njcm9sbFZpZXcpLT5mcmFtZSgpLT5v
d25lckVsZW1lbnQoKTsKKyAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyID0gdG9GcmFt
ZVZpZXcobV9zY3JvbGxWaWV3KS0+ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7CiAgICAgaWYgKG93
bmVyICYmIG93bmVyLT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgp
LT5nZXQob3duZXIpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCmluZGV4IGY2
OGE1OTE4MjMyMmJlNjA4YTJiZDU0OGVmOGY1MjQ5ODdjZTQ5MjIuLmYyYmQ3ZjAzMDQ1ZThmZTQy
NGNlODk4NzFhZDNjNGY3MzE3OTAzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAK
QEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBBWE5vdGlmaWMKICAgICAgICAgU2Nyb2xs
YmFyKiBzY3JvbGxCYXIgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKj4ob2Jq
KS0+c2Nyb2xsYmFyKCk7CiAgICAgICAgIGlmICghc2Nyb2xsQmFyIHx8ICFzY3JvbGxCYXItPnBh
cmVudCgpIHx8ICFzY3JvbGxCYXItPnBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPihzY3JvbGxCYXItPnBhcmVudCgpKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9GcmFtZVZpZXcoc2Nyb2xsQmFyLT5wYXJlbnQoKSkt
PmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgICAgIGlmIChkb2N1bWVudCAhPSBkb2N1bWVudC0+
dG9wRG9jdW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgb2JqID0gZ2V0KGRv
Y3VtZW50LT5yZW5kZXJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDZmMTY2YWM5ZDdiNTdlODZm
M2Y1NDkyYjlkYTNlOGRiNGY4YTRiNGYuLjY5ZDMzMDlmMWQzNDc4NmU5MWQ3MTA0Y2ZjNDc3Y2Q5
MTNmNDRiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgSlNPYmpl
Y3QqIHBsdWdpblNjcmlwdE9iamVjdEZyb21QbHVnaW5WaWV3QmFzZShIVE1MUGx1Z0luRWxlbWVu
dCogcGx1Z2luRQogICAgIGlmICghcGx1Z2luV2lkZ2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgUGx1Z2luVmlld0Jhc2UqIHBsdWdpblZpZXdCYXNlID0g
c3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPihwbHVnaW5XaWRnZXQpOworICAgIFBsdWdpblZp
ZXdCYXNlKiBwbHVnaW5WaWV3QmFzZSA9IHRvUGx1Z2luVmlld0Jhc2UocGx1Z2luV2lkZ2V0KTsK
ICAgICByZXR1cm4gcGx1Z2luVmlld0Jhc2UtPnNjcmlwdE9iamVjdChnbG9iYWxPYmplY3QpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcAppbmRleCA2ZjBiYzJjZDJkMTg4ZGEwZDUxNzRlMmRjNWUzZjAzODA5ZDFlYTM0
Li41NjhhZTQzZTA4ZjA3NzQxYzEwYjBlY2ZkYWU4Y2E5MDJkMzZkOGY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAg
LTIyNiw3ICsyMjYsNyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0SmF2YVNjcmlw
dFBhdXNlZChGcmFtZVZpZXcqIHZpZXcsIGJvb2wgcGF1c2VkKQogICAgICAgICBXaWRnZXQqIHdp
ZGdldCA9ICgqaXQpLmdldCgpOwogICAgICAgICBpZiAoIXdpZGdldC0+aXNQbHVnaW5WaWV3KCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+
KHdpZGdldCktPnNldEphdmFTY3JpcHRQYXVzZWQocGF1c2VkKTsKKyAgICAgICAgdG9QbHVnaW5W
aWV3KHdpZGdldCktPnNldEphdmFTY3JpcHRQYXVzZWQocGF1c2VkKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXgg
MTBlYzk0YTEyODY1YmQ4ZGY3OTljODk2ZDZmOGU5MWVkYWUxOGEwYS4uYWZhOTU2ODlmYmYzMzdh
YjZjZTk1OGM2MGU1NjhmN2VkMmZjOGVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM5MCw3ICszOTAsNyBAQCBQYXNzUmVmUHRy
PEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJ
bnN0YW5jZUZvcldpZAogICAgIGlmICghd2lkZ2V0LT5pc1BsdWdpblZpZXcoKSkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHdpZGdldCkt
PmJpbmRpbmdJbnN0YW5jZSgpOworICAgIHJldHVybiB0b1BsdWdpblZpZXcod2lkZ2V0KS0+Ymlu
ZGluZ0luc3RhbmNlKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggMTRlODk0MjU2MDZiYTYxOTc4ZTI1
YjlhZTVmNzY3ZjhkOTYyZjFlMi4uZGY5ODMyZmIxMGU5NDgxNDc5ZGE4NWI2MzQ5NzE0Y2M4MDJm
NDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyUXQuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQ
dHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlw
dEluc3RhbmNlRm9yV2lkZ2V0KFdlYkNvcmU6OldpZGdldCogd2lkZ2V0KQogewogICAgIGlmICh3
aWRnZXQtPmlzUGx1Z2luVmlldygpKSB7Ci0gICAgICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcg
PSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lkZ2V0KTsKKyAgICAgICAgUGx1Z2luVmlldyog
cGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyh3aWRnZXQpOwogICAgICAgICByZXR1cm4gcGx1Z2lu
Vmlldy0+YmluZGluZ0luc3RhbmNlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDMzMDdkMTMzMGIzN2Y5Y2MyMjE4
YzZiZjk2MjdjOTdjY2QwNTc0MWUuLmJmYjgzNDFmNjM3ZTYwNDU1N2JlZDI4NTY4MmY5NzdmNDEz
ZjM4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuY3BwCkBAIC01MjYsNyArNTI2LDcgQEAgUGFzc1NjcmlwdEluc3RhbmNlIFNjcmlwdENvbnRy
b2xsZXI6OmNyZWF0ZVNjcmlwdEluc3RhbmNlRm9yV2lkZ2V0KFdpZGdldCogd2lkZ2UKICAgICBp
ZiAoIXdpZGdldC0+aXNQbHVnaW5WaWV3QmFzZSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAg
IE5QT2JqZWN0KiBucE9iamVjdCA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0
KS0+c2NyaXB0YWJsZU9iamVjdCgpOworICAgIE5QT2JqZWN0KiBucE9iamVjdCA9IHRvUGx1Z2lu
Vmlld0Jhc2Uod2lkZ2V0KS0+c2NyaXB0YWJsZU9iamVjdCgpOwogCiAgICAgaWYgKCFucE9iamVj
dCkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCmluZGV4IGNkNzJhMDM3OTBkZDRkNjEyMThkYmQxMDdjNzUyNDc3NDg2ZWJkNmQuLjFj
YWEyMWM3NjI4MTc4ZTA4OTcxYjJhZjdkOGFjMTEwZTJjZWJhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC01MDIsNyArNTAyLDcgQEAgYm9vbCBIVE1M
T2JqZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9v
bCkKICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBTdHJpbmcgdmFsdWU7Ci0gICAgaWYgKCFzdGF0aWNfY2Fz
dDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdldCktPmdldEZvcm1WYWx1ZSh2YWx1ZSkpCisgICAgaWYg
KCF0b1BsdWdpblZpZXdCYXNlKHdpZGdldCktPmdldEZvcm1WYWx1ZSh2YWx1ZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBlbmNvZGluZy5hcHBlbmREYXRhKG5hbWUoKSwgdmFsdWUpOwog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGZm
MTQ0OTc0YmNiMjU2YmEwNTk4ZTA5YmY2MmJmNTBhZThkMzNhZjEuLmQ0NjkwMTE0ODhmMGM0ZjMw
MmI4NTg1NDcxOWFkMjRlMjI4NjdjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTExNzYsNyArMTE3Niw3IEBAIEZyYW1lKiBFdmVudEhhbmRsZXI6OnN1YmZyYW1lRm9y
VGFyZ2V0Tm9kZShOb2RlKiBub2RlKQogICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJh
bWVWaWV3KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdl
dCktPmZyYW1lKCk7CiB9CiAKIHN0YXRpYyBib29sIGlzU3VibWl0SW1hZ2UoTm9kZSogbm9kZSkK
QEAgLTI2NTUsNyArMjY1NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzR2VzdHVyZUV2ZW50
VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFCiAgICAgaWYgKCF3
aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS0+aGFuZGxlR2VzdHVyZUV2ZW50KGdlc3R1cmVFdmVudCk7CisgICAgcmV0dXJuIHRvRnJhbWVW
aWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQo
Z2VzdHVyZUV2ZW50KTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRU
b1dpZGdldElmUG9zc2libGUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVu
dCwgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggN2U3MGZi
NTBhMzZhNThkMzhjZTEwNzc2NDU5YTgwM2FmMTZmZjBiOC4uODg1OWRjMDUxYWM3YzIzN2U4YzRm
YWUwZjhkMzc1NTc3MWI5NGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTYzNCw3ICs2MzQs
NyBAQCBGcmFtZSogRnJhbWU6OmZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCogd2lkZ2V0KQog
ICAgIC8vIEFzc3VtZSBhbGwgd2lkZ2V0cyBhcmUgZWl0aGVyIGEgRnJhbWVWaWV3IG9yIG93bmVk
IGJ5IGEgUmVuZGVyV2lkZ2V0LgogICAgIC8vIEZJWE1FOiBUaGF0IGFzc3VtcHRpb24gaXMgbm90
IHJpZ2h0IGZvciBzY3JvbGwgYmFycyEKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNB
VElPTih3aWRnZXQtPmlzRnJhbWVWaWV3KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25z
dCBGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3
aWRnZXQpLT5mcmFtZSgpOwogfQogCiB2b2lkIEZyYW1lOjpjbGVhclRpbWVycyhGcmFtZVZpZXcg
KnZpZXcsIERvY3VtZW50ICpkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCAyNDM3MWJjNGU5NWEyZDZkZjhhMmZjMDlmM2ZkOWU5NGU0YmNiZmU0Li42MzU2ZGJiNmNiNTY0
ZTZkMjdhMWE4ZWNkMDMyODA0MzI0NGI0NTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC0zMDYsMTEgKzMwNiw2IEBAIHZvaWQgRnJhbWVWaWV3OjpyZW1vdmVGcm9tQVhPYmplY3RD
YWNoZSgpCiAgICAgICAgIGF4T2JqZWN0Q2FjaGUoKS0+cmVtb3ZlKHRoaXMpOwogfQogCi1ib29s
IEZyYW1lVmlldzo6aXNGcmFtZVZpZXcoKSBjb25zdAoteyAKLSAgICByZXR1cm4gdHJ1ZTsgCi19
Ci0KIHZvaWQgRnJhbWVWaWV3OjpjbGVhckZyYW1lKCkKIHsKICAgICBtX2ZyYW1lID0gMDsKQEAg
LTEwNDIsNyArMTAzNyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0RnJhbWVWaWV3Q2hp
bGRyZW4oRnJhbWVWaWV3KiBmcmFtZVZpZXcsIFZlY3RvcjxSZWZQdHI8CiAgICAgZm9yIChIYXNo
U2V0PFJlZlB0cjxXaWRnZXQ+ID46Oml0ZXJhdG9yIGN1cnJlbnQgPSB2aWV3Q2hpbGRyZW4tPmJl
Z2luKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQpIHsKICAgICAgICAgV2lkZ2V0KiB3aWRn
ZXQgPSAoKmN1cnJlbnQpLmdldCgpOwogICAgICAgICBpZiAod2lkZ2V0LT5pc0ZyYW1lVmlldygp
KQotICAgICAgICAgICAgZnJhbWVWaWV3cy5hcHBlbmQoc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
d2lkZ2V0KSk7CisgICAgICAgICAgICBmcmFtZVZpZXdzLmFwcGVuZCh0b0ZyYW1lVmlldyh3aWRn
ZXQpKTsKICAgICB9CiB9CiAKQEAgLTMyMzgsNyArMzIzMyw3IEBAIGJvb2wgRnJhbWVWaWV3Ojpo
YXNDdXN0b21TY3JvbGxiYXJzKCkgY29uc3QKICAgICBmb3IgKEhhc2hTZXQ8UmVmUHRyPFdpZGdl
dD4gPjo6Y29uc3RfaXRlcmF0b3IgY3VycmVudCA9IHZpZXdDaGlsZHJlbi0+YmVnaW4oKTsgY3Vy
cmVudCAhPSBlbmQ7ICsrY3VycmVudCkgewogICAgICAgICBXaWRnZXQqIHdpZGdldCA9IGN1cnJl
bnQtPmdldCgpOwogICAgICAgICBpZiAod2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+aGFzQ3VzdG9tU2Nyb2xs
YmFycygpKQorICAgICAgICAgICAgaWYgKHRvRnJhbWVWaWV3KHdpZGdldCktPmhhc0N1c3RvbVNj
cm9sbGJhcnMoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSBlbHNl
IGlmICh3aWRnZXQtPmlzU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGJhciogc2Ny
b2xsYmFyID0gc3RhdGljX2Nhc3Q8U2Nyb2xsYmFyKj4od2lkZ2V0KTsKQEAgLTM3MjAsNyArMzcx
NSw3IEBAIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJ
bnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBh
cmVudFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmll
dy0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRW
aWV3ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7Cisg
ICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJl
bnRTY3JvbGxWaWV3KTsKICAgICAgICAgICAgIC8vIEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBh
cmVudCB2aWV3CiAgICAgICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZnJhbWUtPm93
bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCkBAIC0zNzQzLDcgKzM3
MzgsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6Y29udmVydEZyb21Db250YWluaW5nVmlldyhjb25z
dCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIGlmIChjb25zdCBTY3JvbGxWaWV3
KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpIHsKICAgICAgICAgaWYgKHBhcmVudFNjcm9s
bFZpZXctPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFy
ZW50VmlldyA9IHN0YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHBhcmVudFNjcm9sbFZpZXcp
OworICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gdG9GcmFtZVZpZXco
cGFyZW50U2Nyb2xsVmlldyk7CiAKICAgICAgICAgICAgIC8vIEdldCBvdXIgcmVuZGVyZXIgaW4g
dGhlIHBhcmVudCB2aWV3CiAgICAgICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZnJh
bWUtPm93bmVyUmVuZGVyZXIoKTsKQEAgLTM3NjcsNyArMzc2Miw3IEBAIEludFBvaW50IEZyYW1l
Vmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQp
IGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcgPSBw
YXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkg
ewotICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8
Y29uc3QgRnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7CisgICAgICAgICAgICBjb25zdCBG
cmFtZVZpZXcqIHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKIAog
ICAgICAgICAgICAgLy8gR2V0IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZpZXcKICAgICAg
ICAgICAgIFJlbmRlclBhcnQqIHJlbmRlcmVyID0gbV9mcmFtZS0+b3duZXJSZW5kZXJlcigpOwpA
QCAtMzc5Miw3ICszNzg3LDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBpZiAo
Y29uc3QgU2Nyb2xsVmlldyogcGFyZW50U2Nyb2xsVmlldyA9IHBhcmVudCgpKSB7CiAgICAgICAg
IGlmIChwYXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgICAgICBjb25z
dCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBGcmFtZVZpZXcqPihw
YXJlbnRTY3JvbGxWaWV3KTsKKyAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50Vmll
dyA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQg
b3VyIHJlbmRlcmVyIGluIHRoZSBwYXJlbnQgdmlldwogICAgICAgICAgICAgUmVuZGVyUGFydCog
cmVuZGVyZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CkBAIC0zOTAzLDcgKzM4OTgsNyBA
QCBib29sIEZyYW1lVmlldzo6Y29udGFpbnNTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSog
c2Nyb2xsYWJsZUFyZWEpIGNvbnN0CiB2b2lkIEZyYW1lVmlldzo6cmVtb3ZlQ2hpbGQoV2lkZ2V0
KiB3aWRnZXQpCiB7CiAgICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgcmVt
b3ZlU2Nyb2xsYWJsZUFyZWEoc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KSk7CisgICAg
ICAgIHJlbW92ZVNjcm9sbGFibGVBcmVhKHRvRnJhbWVWaWV3KHdpZGdldCkpOwogCiAgICAgU2Ny
b2xsVmlldzo6cmVtb3ZlQ2hpbGQod2lkZ2V0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmlu
ZGV4IDE0OGRjNjFiMmZiNzJkZGY3Yjc3ZDhlNTM2NjI5ZGEzYTEyZjM3OWQuLjkwNjUzYTQ0ZjBj
MTBmMTJjOWZhYTIwNDI0MzJkNjY4NmRlZTNmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApA
QCAtNDE3LDcgKzQxNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQg
aW5pdCgpOwogCi0gICAgdmlydHVhbCBib29sIGlzRnJhbWVWaWV3KCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzRnJhbWVWaWV3KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgZnJpZW5kIGNsYXNzIFJlbmRlcldpZGdldDsKICAgICBib29sIHVzZVNsb3dSZXBhaW50
cyhib29sIGNvbnNpZGVyT3ZlcmxhcCA9IHRydWUpIGNvbnN0OwpAQCAtNjQzLDYgKzY0MywyMSBA
QCBpbmxpbmUgTGF5b3V0VW5pdCBGcmFtZVZpZXc6Om1hcEZyb21DU1NUb0xheW91dFVuaXRzKGlu
dCB2YWx1ZSkKICAgICByZXR1cm4gdmFsdWUgKiBtX2ZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICog
bV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpOwogfQogCitpbmxpbmUgRnJhbWVWaWV3KiB0b0Zy
YW1lVmlldyhXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQoIXdpZGdldCB8fCB3aWRnZXQt
PmlzRnJhbWVWaWV3KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQpOworfQorCitpbmxpbmUgY29uc3QgRnJhbWVWaWV3KiB0b0ZyYW1lVmlldyhjb25zdCBXaWRn
ZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQoIXdpZGdldCB8fCB3aWRnZXQtPmlzRnJhbWVWaWV3
KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBGcmFtZVZpZXcqPih3aWRnZXQpOwor
fQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3Qu
Cit2b2lkIHRvRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyopOworCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBGcmFtZVZpZXdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDNi
ZGIwZTJjNjc2ZGZlZjU3YzA3Yzk2OGJkYzVmNjMwYjlhMDlmZC4uYmFjOGM1YTJiMDk1ODk5ZGU1
OTk2Yjk2MzQyM2YxNzM1ZDZiNTUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMTc0LDcgKzEx
NzQsNyBAQCB2b2lkIFBhZ2U6OmNvbGxlY3RQbHVnaW5WaWV3cyhWZWN0b3I8UmVmUHRyPFBsdWdp
blZpZXdCYXNlPiwgMzI+JiBwbHVnaW5WaWV3QmFzZQogICAgICAgICBmb3IgKEhhc2hTZXQ8UmVm
UHRyPFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjaGlsZHJlbi0+YmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBXaWRnZXQqIHdpZGdldCA9ICgqaXQpLmdldCgp
OwogICAgICAgICAgICAgaWYgKHdpZGdldC0+aXNQbHVnaW5WaWV3QmFzZSgpKQotICAgICAgICAg
ICAgICAgIHBsdWdpblZpZXdCYXNlcy5hcHBlbmQoc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2Uq
Pih3aWRnZXQpKTsKKyAgICAgICAgICAgICAgICBwbHVnaW5WaWV3QmFzZXMuYXBwZW5kKHRvUGx1
Z2luVmlld0Jhc2Uod2lkZ2V0KSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwCmluZGV4
IDExMmIwZTViZGU2OWIxMzk2ZjhjYzkxZjc5OGYzNWQ0YTM4ZTk0NjkuLjAxM2QzYTM5YWRiOTk1
MTk0YTQxOTk5ZDBlMWU0MjU2Y2YxZmNkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC05Nyw3ICs5Nyw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCwKICAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmll
dyo+KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdo
ZWVsRXZlbnQpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIH0KIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2
ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggN2M4NDI3NGFmZDI1NjVlY2RjN2Q4NWQzNzM2YThhZDYw
NTUyOGNkNC4uZTM2ZWRjYjRlYmU1ODhkM2Q0ZGQxMjExOWVhNzdjZGIyZGVjMTE4ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC05Myw3ICs5Myw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdlCiAgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVu
dChldmVudCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50
SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKIH0KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRs
ZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcApp
bmRleCAzNjhjZmUwMTlhZjFkMjIyZjRhYmQxODFmNDg4NzU3ZTczZWM0N2I4Li5jZmQ2Yzg4NTIx
YmJlMTZiNmVkNjFhZTZmYWQ5MGY5NmJkYTgzZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Z3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCwgV2lkZ2UKICAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZy
YW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKKyAgICByZXR1
cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdo
ZWVsRXZlbnQoZXZlbnQpOwogfQogCiBQYXNzUmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVy
OjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggNDUxNTBlNGY1NjAwYjFlODJiYTViZmFlYzM1Y2Qw
MTc5ZjA0ODkyNC4uZTUxZDBkZmZlMjU5MWNkZDlhNDhjMGQ2YjExNmFiMDM4MTBhNDUyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNDMxLDcgKzQz
MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwKICAgICAgICAgaWYgKCF3aWRnZXQtPmlzRnJh
bWVWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5o
YW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICByZXR1cm4gdG9GcmFtZVZpZXco
d2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxF
dmVudCk7CiAgICAgfQogCiAgICAgaWYgKFtjdXJyZW50TlNFdmVudCgpIHR5cGVdICE9IE5TU2Ny
b2xsV2hlZWwgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3F0L0V2ZW50SGFuZGxlclF0LmNwcAppbmRleCBhYjc1OTQ5NmYxYjMwNTY5YTE1NGRkZDdkMDk1
ODA3MzVhZmM3NDQxLi4wZjc4MDZhNTNiN2ZjMTU0NGMwYzU3MjFkNjIyNDAzMTllYzZjMjgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0V2ZW50SGFuZGxlclF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0V2ZW50SGFuZGxlclF0LmNwcApAQCAtOTEsNyArOTEs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZQogICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmll
dygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJh
bWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZl
bnQoZXZlbnQpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7CiB9CiAKIFBhc3NSZWZQdHI8Q2xp
cGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAppbmRleCA4YTgxMDU1Nzc2YzQzMTI4MzBiMzU0YjAyZTA2ZmJmNDI0NmRlYTAzLi5k
YTFkZDk0NjVjMDJlZTVmYTljOGU5NjgwNDZlNmY2OTQwNmJjNmI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBA
IC0xNDQsNyArMTQ0LDcgQEAgUmVnaW9uIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb21wdXRlTm9u
RmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgRnJhbWUqIGZyYW1lLAogICAgICAgICAgICAgaWYg
KCEoKml0KS0+aXNQbHVnaW5WaWV3QmFzZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgICAgICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSBzdGF0aWNfY2Fz
dDxQbHVnaW5WaWV3QmFzZSo+KCgqaXQpLmdldCgpKTsKKyAgICAgICAgICAgIFBsdWdpblZpZXdC
YXNlKiBwbHVnaW5WaWV3QmFzZSA9IHRvUGx1Z2luVmlld0Jhc2UoKCppdCkuZ2V0KCkpOwogICAg
ICAgICAgICAgaWYgKHBsdWdpblZpZXdCYXNlLT53YW50c1doZWVsRXZlbnRzKCkpCiAgICAgICAg
ICAgICAgICAgbm9uRmFzdFNjcm9sbGFibGVSZWdpb24udW5pdGUocGx1Z2luVmlld0Jhc2UtPmZy
YW1lUmVjdCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93
aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFu
ZGxlcldpbi5jcHAKaW5kZXggZTM5MWI3NzY1ZTdkYzcwZDdjODYzMjNhNmFmMmM3MmU0NDZjZTBh
My4uMDRiOTg4Zjk0MTBmNDA1ZGJmMDY2MGRiOGU0MmY2NGQwYmE3MzcyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC04Miw3ICs4Miw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCwKICAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIH0KIAogYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRXZlbnRIYW5kbGVyV3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS93eC9FdmVudEhhbmRsZXJXeC5jcHAKaW5kZXggMTY3Y2M5MzBhN2FiMzcz
NjZhODM3NjNkOGM4MDk4NDQxZWVhMTUzNy4uZjBiNzQ1MGIyMWE0NWY3OTE2NDBkZWZkODJhY2Rl
NmE2NGYzZTJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS93eC9FdmVudEhhbmRs
ZXJXeC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93eC9FdmVudEhhbmRsZXJXeC5jcHAK
QEAgLTc5LDcgKzc5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRn
ZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2UKICAgICBpZiAoIXdpZGdl
dCB8fCAhd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRI
YW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOworICAgIHJldHVybiB0b0ZyYW1lVmll
dyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVu
dCk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9h
cmRFdmVudCogZXZlbnQpIGNvbnN0IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmlu
ZGV4IGQwNGMzZTg3ZDY3MWQ4N2VkNDVhYmRjODVmMzYyYTg3ZTc1NTViMGEuLmQzYTI5N2ExMDMw
YTkwMTk5NGNkZTg3YWYxZjNlYTc3ODNiN2ZmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmgKQEAgLTI5NSw2ICsyOTUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNhbGN1bGF0
ZUFuZFBhaW50T3ZlcmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QpOwogCisgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsVmlldygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbFZpZXcoKTsKIApA
QCAtNDE1LDYgKzQxNywyMSBAQCBwcml2YXRlOgogCiB9OyAvLyBjbGFzcyBTY3JvbGxWaWV3CiAK
K2lubGluZSBTY3JvbGxWaWV3KiB0b1Njcm9sbFZpZXcoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAg
QVNTRVJUKCF3aWRnZXQgfHwgd2lkZ2V0LT5pc1Njcm9sbFZpZXcoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PFNjcm9sbFZpZXcqPih3aWRnZXQpOworfQorCitpbmxpbmUgY29uc3QgU2Nyb2xs
VmlldyogdG9TY3JvbGxWaWV3KGNvbnN0IFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCgh
d2lkZ2V0IHx8IHdpZGdldC0+aXNTY3JvbGxWaWV3KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBTY3JvbGxWaWV3Kj4od2lkZ2V0KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFu
eW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1Njcm9sbFZpZXcoY29uc3Qg
U2Nyb2xsVmlldyopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTY3Jv
bGxWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDQ1YTQ4ZGRi
YzRkZTcyNWQ2OGI1YmJhMzU5ZDZjZGZjY2Q2MmE2YTMuLmZmMWU4MDU5YWNhM2EwOGMzYmNiOGM5
YTM0NDBmZjc4NDNmNDQ3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtMTM2LDcgKzEzNiw3IEBAIGJvb2wgU2Nyb2xsYmFyOjppc1Njcm9sbGFibGVBcmVhQWN0aXZl
KCkgY29uc3QKIAogYm9vbCBTY3JvbGxiYXI6OmlzU2Nyb2xsVmlld1Njcm9sbGJhcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpICYmIHN0
YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKS0+aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKHRo
aXMpOworICAgIHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSAmJiB0
b0ZyYW1lVmlldyhwYXJlbnQoKSktPmlzU2Nyb2xsVmlld1Njcm9sbGJhcih0aGlzKTsKIH0KIAog
dm9pZCBTY3JvbGxiYXI6Om9mZnNldERpZENoYW5nZSgpCkBAIC00NjUsNyArNDY1LDcgQEAgYm9v
bCBTY3JvbGxiYXI6Om1vdXNlVXAoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50
KQogICAgIH0KIAogICAgIGlmIChwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSkK
LSAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5mcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS0+c2V0TW91c2VQcmVzc2VkKGZhbHNlKTsKKyAgICAgICAgdG9GcmFtZVZpZXco
cGFyZW50KCkpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2V0TW91c2VQcmVzc2VkKGZhbHNl
KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTc0LDcgKzU3NCw3IEBAIEFYT2JqZWN0Q2Fj
aGUqIFNjcm9sbGJhcjo6YXhPYmplY3RDYWNoZSgpIGNvbnN0CiAgICAgCiAgICAgLy8gRklYTUU6
IEFjY2Vzc2luZyB0aGUgRnJhbWVWaWV3IGFuZCBEb2N1bWVudCBoZXJlIGlzIGEgbGF5ZXJpbmcg
dmlvbGF0aW9uCiAgICAgLy8gYW5kIHNob3VsZCBiZSByZW1vdmVkLgotICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKS0+ZnJhbWUoKS0+ZG9j
dW1lbnQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSkt
PmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgcmV0dXJuIGRvY3VtZW50LT5heE9iamVjdENhY2hl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggMzU2M2I1NmMxN2YxZmExYjZh
MjcwMGMyNjhlNzlkNjUwMTdmMTYyMC4uNzdjY2Y5MWQ3MGEwNDZlYWFmYTVmZjE4MWQ5MjJmMjA1
MDIyMDBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTE3Nyw2ICsxNzcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gRklYTUU6IFRoZSBNYWMgcGx1Zy1pbiBjb2RlIHNob3VsZCBpbmhlcml0
IGZyb20gUGx1Z2luVmlldy4gV2hlbiB0aGlzIGhhcHBlbnMgUGx1Z2luVmlld0Jhc2UgYW5kIFBs
dWdpblZpZXcgY2FuIGJlY29tZSBvbmUgY2xhc3MuCiAgICAgdmlydHVhbCBib29sIGlzUGx1Z2lu
Vmlld0Jhc2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nj
cm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2Ny
b2xsVmlldygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIHJlbW92ZUZyb21Q
YXJlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFyZW50KFNjcm9sbFZpZXcqIHZpZXcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVNj
cmVlbkJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9Q
bGF0Zm9ybVNjcmVlbkJsYWNrQmVycnkuY3BwCmluZGV4IDg0NDQzOGY5MmZjYWJiYjhmZWE4NDRl
YWQzMGZkYmU4YTExOThiZGUuLmRmN2UyNTA2NmJkNjY4OWUyMDAzNTgwYmE5ODY0MzJlMTI2N2Q1
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkvUGxhdGZv
cm1TY3JlZW5CbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFj
a2JlcnJ5L1BsYXRmb3JtU2NyZWVuQmxhY2tCZXJyeS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgaW50
IHNjcmVlbkRlcHRoKFdpZGdldCopCiBzdGF0aWMgRmxvYXRSZWN0IHRvVXNlclNwYWNlKEZsb2F0
UmVjdCByZWN0LCBXaWRnZXQqIHdpZGdldCkKIHsKICAgICBpZiAod2lkZ2V0LT5pc0ZyYW1lVmll
dygpKSB7Ci0gICAgICAgIFBhZ2UqIHBhZ2UgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQpLT5mcmFtZSgpLT5wYWdlKCk7CisgICAgICAgIFBhZ2UqIHBhZ2UgPSB0b0ZyYW1lVmlldyh3
aWRnZXQpLT5mcmFtZSgpLT5wYWdlKCk7CiAgICAgICAgIGlmIChwYWdlICYmICFwYWdlLT5zZXR0
aW5ncygpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpCiAgICAgICAgICAg
ICByZWN0LnNjYWxlKDEgLyBwYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwCmluZGV4IGI0NDVjYjFi
ZjYyNTYxM2YyYTI4NzhhYTEzZGIzNDUzMGRlNzE5NDEuLjYyNWU1MTJiM2ZmMzAwNmJmZDI4ZDZm
NzliZDdmODA0N2NhODYwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9TY3JvbGxiYXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3Jv
bGxiYXJFZmwuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBTY3JvbGxiYXJFZmw6OnNldFBh
cmVudChTY3JvbGxWaWV3KiB2aWV3KQogICAgIGlmICghdmlldyB8fCAhdmlldy0+ZXZhc09iamVj
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPih2aWV3KS0+ZnJhbWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSB0b0ZyYW1lVmll
dyh2aWV3KS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+cGFnZSgpKQogICAg
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bs
YXRmb3JtU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3Jt
U3VwcG9ydFF0LmNwcAppbmRleCA1NWE1Y2ZhYjg0NDFhYmQzYmRiMjlhMmUyOGFlZDkxMjJjNTBi
MDlhLi4wYzI4MjY0YTQyNTBlODllMDVjNTVkNzIzYjM2Y2VkOWZjZmViNzcwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVN1cHBvcnRRdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0UXQuY3BwCkBAIC0zMyw3
ICszMyw3IEBAIGJvb2wgUGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKE5QUCBucHApCiB7
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgaWYgKG5wcCAmJiBucHAtPm5k
YXRhKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KG5wcC0+bmRhdGEp
LT5hcmVQb3B1cHNBbGxvd2VkKCk7CisgICAgICAgIHJldHVybiB0b1BsdWdpblZpZXcobnBwLT5u
ZGF0YSktPmFyZVBvcHVwc0FsbG93ZWQoKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNDgsNyArNDgsNyBAQCBOUE9iamVjdCogUGxhdGZvcm1TdXBwb3J0OjpwbHVnaW5TY3JpcHRh
YmxlT2JqZWN0KFdpZGdldCogd2lkZ2V0KQogICAgICAgICByZXR1cm4gMDsKIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBzdGF0
aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lkZ2V0KTsKKyAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
ID0gdG9QbHVnaW5WaWV3KHdpZGdldCk7CiAgICAgcmV0dXJuIHBsdWdpblZpZXctPm5wT2JqZWN0
KCk7CiAjZWxzZQogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFt
ZVNoaW1TdXBwb3J0LmNwcAppbmRleCA4MjY1NzY1MTEwYWU1NDY4ZDAzMDVmM2VmYjA0NmQyNWFk
ZDdmZWZmLi45OTE2NzdmM2RhMDEyMzgxZTFhMWUzNGUwMzdjOThiZTA3M2IyNmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lGcmFtZVNoaW1TdXBwb3J0LmNwcApAQCAtMTMzLDcgKzEz
Myw3IEBAIHZvaWQgZ2V0UGx1Z2luT2NjbHVzaW9ucyhFbGVtZW50KiBlbGVtZW50LCBXaWRnZXQq
IHBhcmVudFdpZGdldCwgY29uc3QgSW50UmVjdCYKICAgICBpZiAoIXBhcmVudFdpZGdldC0+aXNG
cmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3KiBwYXJlbnRGcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnRXaWRnZXQpOworICAgIEZyYW1l
VmlldyogcGFyZW50RnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50V2lkZ2V0KTsKIAogICAg
IGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPiogY2hpbGRyZW4gPSBwYXJlbnRGcmFtZVZp
ZXctPmNoaWxkcmVuKCk7CiAgICAgZm9yIChIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gY2hpbGRyZW4tPmJlZ2luKCk7IGl0ICE9IGNoaWxkcmVuLT5lbmQoKTsg
KytpdCkgewpAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgZ2V0UGx1Z2luT2NjbHVzaW9ucyhFbGVt
ZW50KiBlbGVtZW50LCBXaWRnZXQqIHBhcmVudFdpZGdldCwgY29uc3QgSW50UmVjdCYKICAgICAg
ICAgaWYgKCEoKml0KS0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g
ICAgICAgIGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJh
bWVWaWV3Kj4oKCppdCkuZ2V0KCkpOworICAgICAgICBjb25zdCBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IHRvRnJhbWVWaWV3KCgqaXQpLmdldCgpKTsKICAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBz
dXJlIHdlIGNhbiBnZXQgYm90aCB0aGUgZWxlbWVudCBhbmQgdGhlIFJlbmRlck9iamVjdAogICAg
ICAgICAvLyBmb3IgdGhpcyBGcmFtZVZpZXcsIGlmIHdlIGNhbid0IGp1c3QgbW92ZSBvbiB0byB0
aGUgbmV4dCBvYmplY3QuCiAgICAgICAgIGlmICghZnJhbWVWaWV3LT5mcmFtZSgpIHx8ICFmcmFt
ZVZpZXctPmZyYW1lKCktPm93bmVyRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCmluZGV4IGIzMzM0ODA3ZDUwOTE3ZDIxYzM1NTczNzQyMmRlZTFiNDg3N2ZkYjEuLjdlNzYw
NDBjMzA4ZWVjZDNiNGJmMWM4MzQ1MDE1OTA5ZGRmMmE2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5oCkBAIC0yMjEsNyArMjIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFyZW50KFNjcm9sbFZpZXcqKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHNldFBhcmVudFZpc2libGUoYm9vbCk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGlz
UGx1Z2luVmlldygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29s
IGlzUGx1Z2luVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAg
ICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudEZyYW1lLmdldCgp
OyB9CiAKQEAgLTQ3Miw2ICs0NzIsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIFBsdWdp
blZpZXcqIHNfY3VycmVudFBsdWdpblZpZXc7CiAgICAgfTsKIAoraW5saW5lIFBsdWdpblZpZXcq
IHRvUGx1Z2luVmlldyhXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQoIXdpZGdldCB8fCB3
aWRnZXQtPmlzUGx1Z2luVmlldygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmll
dyo+KHdpZGdldCk7Cit9CisKK2lubGluZSBjb25zdCBQbHVnaW5WaWV3KiB0b1BsdWdpblZpZXco
Y29uc3QgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRnZXQgfHwgd2lkZ2V0LT5p
c1BsdWdpblZpZXcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFBsdWdpblZpZXcq
Pih3aWRnZXQpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVj
ZXNzYXJ5IGNhc3QuCit2b2lkIHRvUGx1Z2luVmlldyhjb25zdCBQbHVnaW5WaWV3Kik7CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXdCYXNlLmgKaW5kZXggOTZkNjVmMDliNTRhNDI5YjNiOTBmZTNmNDE3ZGY5ZDBhNjk4OWYw
YS4uMzExYzljYzU4OWZiYmJhNTAxMjQzZTc1ZWVlZDU1OThmYTY1MDdhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaApAQCAtNzcsMTMgKzc3LDI3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb25Gcm9tRHJhZ3MoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlld0Jhc2Uo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBQbHVn
aW5WaWV3QmFzZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQgPSAwKSA6IFdpZGdldCh3aWRnZXQpIHsg
fQotICAgIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5WaWV3QmFzZSgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKK2lubGluZSBQbHVnaW5WaWV3QmFzZSogdG9QbHVn
aW5WaWV3QmFzZShXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQoIXdpZGdldCB8fCB3aWRn
ZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZp
ZXdCYXNlKj4od2lkZ2V0KTsKK30KKworaW5saW5lIGNvbnN0IFBsdWdpblZpZXdCYXNlKiB0b1Bs
dWdpblZpZXdCYXNlKGNvbnN0IFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0
IHx8IHdpZGdldC0+aXNQbHVnaW5WaWV3QmFzZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgUGx1Z2luVmlld0Jhc2UqPih3aWRnZXQpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2gg
YW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUGx1Z2luVmlld0Jhc2Uo
Y29uc3QgUGx1Z2luVmlld0Jhc2UqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gUGx1Z2luV2lkZ2V0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
YmxhY2tiZXJyeS9OUENhbGxiYWNrc0JsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ibGFja2JlcnJ5L05QQ2FsbGJhY2tzQmxhY2tCZXJyeS5jcHAKaW5kZXggZDEyMmVmNmE5
NWEzOGEwNzcwOWY2ZGY4YjZmNGU3OTBlMjE5ZmY0ZC4uMDk5YjJjMTgzYmI1MGMxZjBmNWFlN2Q0
NDRiMGNlNzQ4ZmEwYmYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ibGFj
a2JlcnJ5L05QQ2FsbGJhY2tzQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ibGFja2JlcnJ5L05QQ2FsbGJhY2tzQmxhY2tCZXJyeS5jcHAKQEAgLTczLDEyNiArNzMs
MTI2IEBAIHZvaWQgbnBTZXRIb2xlUHVuY2hIYW5kbGVyKHZvaWQqIGhvbGVQdW5jaERhdGEpCiAK
IHZvaWQgc2V0VmlzaWJsZVJlY3RzKE5QUCBpbnN0YW5jZSwgY29uc3QgTlBSZWN0IHJlY3RzW10s
IGludDMyX3QgY291bnQpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBs
dWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1Bs
dWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1By
aXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUtPnNldFZpc2libGVS
ZWN0cyhyZWN0cywgY291bnQpOwogfQogCiB2b2lkIGNsZWFyVmlzaWJsZVJlY3RzKE5QUCBpbnN0
YW5jZSkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+
KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhp
bnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZp
ZXctPmdldFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+Y2xlYXJWaXNpYmxlUmVjdHMoKTsK
IH0KIAogdm9pZCBzaG93S2V5Ym9hcmQoTlBQIGluc3RhbmNlLCBib29sIHZhbHVlKQogewotICAg
IFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5k
YXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0
YSk7CiAgICAgUGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0
ZSgpOwogICAgIHZpZXdQcml2YXRlLT5zaG93S2V5Ym9hcmQodmFsdWUpOwogfQogCiB2b2lkIHJl
cXVlc3RGdWxsU2NyZWVuKE5QUCBpbnN0YW5jZSkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0g
c3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmll
dyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQ
cml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0
ZS0+cmVxdWVzdEZ1bGxTY3JlZW4oKTsKIH0KIAogdm9pZCBleGl0RnVsbFNjcmVlbihOUFAgaW5z
dGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcq
PihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXco
aW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2
aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUtPmV4aXRGdWxsU2NyZWVuKCk7CiB9
CiAKIHZvaWQgcmVxdWVzdENlbnRlckZpdFpvb20oTlBQIGluc3RhbmNlKQogewotICAgIFBsdWdp
blZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsK
KyAgICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAg
ICAgUGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwog
ICAgIHZpZXdQcml2YXRlLT5yZXF1ZXN0Q2VudGVyRml0Wm9vbSgpOwogfQogCiB2b2lkIGxvY2tP
cmllbnRhdGlvbihOUFAgaW5zdGFuY2UsIGJvb2wgbGFuZHNjYXBlKQogewotICAgIFBsdWdpblZp
ZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAg
ICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAg
UGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAg
IHZpZXdQcml2YXRlLT5sb2NrT3JpZW50YXRpb24obGFuZHNjYXBlKTsKIH0KIAogdm9pZCB1bmxv
Y2tPcmllbnRhdGlvbihOUFAgaW5zdGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0
YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcq
IHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJp
dmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUt
PnVubG9ja09yaWVudGF0aW9uKCk7CiB9CiAKIHZvaWQgcHJldmVudElkbGUoTlBQIGluc3RhbmNl
LCBib29sIHByZXZlbnRJZGxlKQogewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0aWNfY2Fz
dDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3ID0g
dG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZhdGUqIHZp
ZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAgIHZpZXdQcml2YXRlLT5wcmV2ZW50
SWRsZShwcmV2ZW50SWRsZSk7CiB9CiAKIE5QU3VyZmFjZSBsb2NrQmFja0J1ZmZlcihOUFAgaW5z
dGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcq
PihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXco
aW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2
aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgcmV0dXJuIHZpZXdQcml2YXRlLT5sb2NrQmFja0J1ZmZl
cigpOwogfQogCiB2b2lkIHVubG9ja0JhY2tCdWZmZXIoTlBQIGluc3RhbmNlKQogewotICAgIFBs
dWdpblZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRh
KTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7
CiAgICAgUGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgp
OwogICAgIHZpZXdQcml2YXRlLT51bmxvY2tCYWNrQnVmZmVyKCk7CiB9CiAKIE5QU3VyZmFjZSBs
b2NrUmVhZEZyb250QnVmZmVyKE5QUCBpbnN0YW5jZSkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3
ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2lu
VmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZp
ZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICByZXR1cm4g
dmlld1ByaXZhdGUtPmxvY2tSZWFkRnJvbnRCdWZmZXIoKTsKIH0KIAogdm9pZCB1bmxvY2tSZWFk
RnJvbnRCdWZmZXIoTlBQIGluc3RhbmNlKQogewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2
aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZh
dGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAgIHZpZXdQcml2YXRlLT51
bmxvY2tSZWFkRnJvbnRCdWZmZXIoKTsKIH0KIAogdm9pZCBzd2FwQnVmZmVycyhOUFAgaW5zdGFu
Y2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihp
bnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5z
dGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3
LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUtPnN3YXBCdWZmZXJzKCk7CiB9CiAKIGJv
b2wgY3JlYXRlQnVmZmVycyhOUFAgaW5zdGFuY2UsIE5QU3VyZmFjZUZvcm1hdCBmb3JtYXQsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9
IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2
aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICByZXR1cm4gdmlld1ByaXZhdGUt
PmNyZWF0ZUJ1ZmZlcnMoZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKIH0KIAogYm9vbCBkZXN0cm95
QnVmZmVycyhOUFAgaW5zdGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19j
YXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcg
PSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSog
dmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgcmV0dXJuIHZpZXdQcml2YXRl
LT5kZXN0cm95QnVmZmVycygpOwogfQogCiBib29sIHJlc2l6ZUJ1ZmZlcnMoTlBQIGluc3RhbmNl
LCBOUFN1cmZhY2VGb3JtYXQgZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAg
UGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRh
dGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRh
KTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRl
KCk7CiAgICAgcmV0dXJuIHZpZXdQcml2YXRlLT5yZXNpemVCdWZmZXJzKGZvcm1hdCwgd2lkdGgs
IGhlaWdodCk7CiB9CiAKIHZvaWQgc2V0SG9sZVB1bmNoKE5QUCBpbnN0YW5jZSwgaW50IHgsIGlu
dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0
YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcq
IHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJp
dmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUt
PnNldEhvbGVQdW5jaCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3QmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3Bw
CmluZGV4IGZhOWQ2NjI4ZTA1YjY4YWM0ZTFmZjE3Y2UzZjVkMDEwMDkxYTdkMDMuLjkzN2Q5NjY4
ZTViMDc4OTU4YzQ5NGE5YzRkMDI2YjUxY2I2MGU2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdCbGFja0JlcnJ5LmNwcApA
QCAtMTAxLDcgKzEwMSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsK
LSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVu
dCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsK
IAogICAgIEludFJlY3Qgb2xkV2luZG93UmVjdCA9IG1fd2luZG93UmVjdDsKICAgICBJbnRSZWN0
IG9sZENsaXBSZWN0ID0gbV9jbGlwUmVjdDsKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFBsdWdp
blZpZXc6OnVwZGF0ZUJ1ZmZlcihjb25zdCBJbnRSZWN0JiBidWZmZXJSZWN0KQogICAgIC8vIFVw
ZGF0ZSB0aGUgem9vbSBmYWN0b3IgaGVyZSwgaXQgaGFwcGVucyByaWdodCBiZWZvcmUgc2V0TlBX
aW5kb3dJZk5lZWRlZAogICAgIC8vIGVuc3VyaW5nIHRoYXQgdGhlIHBsdWdpbiBoYXMgZXZlcnkg
b3Bwb3J0dW5pdHkgdG8gZ2V0IHRoZSB6b29tIGZhY3RvciBiZWZvcmUKICAgICAvLyBpdCBwYWlu
dHMgYW55dGhpbmcuCi0gICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4ocGFyZW50KCkpKQorICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRv
RnJhbWVWaWV3KHBhcmVudCgpKSkKICAgICAgICAgbV9wcml2YXRlLT5zZXRab29tRmFjdG9yKGZy
YW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+Y3VycmVudFpvb21G
YWN0b3IoKSk7CiAKICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CkBAIC0yMjQsNyArMjI0LDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiAgICAgLy8gVXBkYXRlIHRoZSB6b29tIGZhY3RvciBoZXJlLCBpdCBo
YXBwZW5zIHJpZ2h0IGJlZm9yZSBzZXROUFdpbmRvd0lmTmVlZGVkCiAgICAgLy8gZW5zdXJpbmcg
dGhhdCB0aGUgcGx1Z2luIGhhcyBldmVyeSBvcHBvcnR1bml0eSB0byBnZXQgdGhlIHpvb20gZmFj
dG9yIGJlZm9yZQogICAgIC8vIGl0IHBhaW50cyBhbnl0aGluZy4KLSAgICBpZiAoRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSkpCisgICAgaWYg
KEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpKQogICAgICAgICBt
X3ByaXZhdGUtPnNldFpvb21GYWN0b3IoZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3Jt
UGFnZUNsaWVudCgpLT5jdXJyZW50Wm9vbUZhY3RvcigpKTsKIAogICAgIGlmIChjb250ZXh0LT5w
YWludGluZ0Rpc2FibGVkKCkpCkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpo
YW5kbGVSZXN1bWVFdmVudCgpCiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlU2Nyb2xsRXZlbnQo
KQogewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50
KCkpOwogCiAgICAgLy8gQXMgYSBzcGVjaWFsIGNhc2UsIGlmIHRoZSBmcmFtZVZpZXcgZXh0ZW50
IGluIGVpdGhlciBkaW1lbnNpb24gaXMKICAgICAvLyBlbXB0eSwgdGhlbiBzZW5kIGFuIG9uIHNj
cmVlbiBldmVudC4gVGhpcyBpcyBpbXBvcnRhbnQgZm9yIHNpdGVzIGxpa2UKQEAgLTYzOSw3ICs2
MzksNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZVNjcm9sbEV2ZW50KCkKIAogSW50UmVjdCBQ
bHVnaW5WaWV3OjpjYWxjdWxhdGVDbGlwUmVjdCgpIGNvbnN0CiB7Ci0gICAgRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAgICAgYm9vbCB2aXNpYmxl
ID0gZnJhbWVWaWV3ICYmIGlzVmlzaWJsZSgpOwogCiAgICAgaWYgKHZpc2libGUgJiYgZnJhbWVW
aWV3LT53aWR0aCgpICYmIGZyYW1lVmlldy0+aGVpZ2h0KCkpIHsKQEAgLTc0Nyw3ICs3NDcsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUZ1bGxTY3JlZW5BbGxvd2VkRXZlbnQoKQogICAgIG5w
RXZlbnQudHlwZSA9IE5QX0Z1bGxTY3JlZW5SZWFkeUV2ZW50OwogICAgIG5wRXZlbnQuZGF0YSA9
IDA7CiAKLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPihwYXJlbnQoKSkpIHsKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1l
VmlldyhwYXJlbnQoKSkpIHsKICAgICAgICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRm
b3JtUGFnZUNsaWVudCgpLT5kaWRQbHVnaW5FbnRlckZ1bGxTY3JlZW4odGhpcywgbV9wcml2YXRl
LT5tX3BsdWdpblVuaXF1ZVByZWZpeC5jX3N0cigpKTsKIAogICAgICAgICBpZiAoIWRpc3BhdGNo
TlBFdmVudChucEV2ZW50KSkKQEAgLTc2OCw3ICs3NjgsNyBAQCB2b2lkIFBsdWdpblZpZXc6Omhh
bmRsZUZ1bGxTY3JlZW5FeGl0RXZlbnQoKQogCiAgICAgZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQp
OwogCi0gICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4ocGFyZW50KCkpKQorICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3
KHBhcmVudCgpKSkKICAgICAgICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpLT5kaWRQbHVnaW5FeGl0RnVsbFNjcmVlbih0aGlzLCBtX3ByaXZhdGUtPm1fcGx1
Z2luVW5pcXVlUHJlZml4LmNfc3RyKCkpOwogCiAgICAgbV9wcml2YXRlLT5tX2lzRnVsbFNjcmVl
biA9IGZhbHNlOwpAQCAtODYwLDcgKzg2MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50
KFNjcm9sbFZpZXcqIHBhcmVudFdpZGdldCkKIHsKICAgICAvLyBJZiBwYXJlbnRXaWRnZXQgaXMg
MCwgbGV0cyB1bnJlZ2lzdGVyIHRoZSBwbHVnaW4gd2l0aCB0aGUgY3VycmVudCBwYXJlbnQuCiAg
ICAgaWYgKG1fcHJpdmF0ZSAmJiAoIXBhcmVudFdpZGdldCB8fCBwYXJlbnRXaWRnZXQgIT0gcGFy
ZW50KCkpKSB7Ci0gICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0
PEZyYW1lVmlldyo+KHBhcmVudCgpKSkgeworICAgICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSkpIHsKICAgICAgICAgICAgIGlmIChtX3ByaXZhdGUt
Pm1faXNCYWNrZ3JvdW5kUGxheWluZykKICAgICAgICAgICAgICAgICBmcmFtZVZpZXctPmhvc3RX
aW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPm9uUGx1Z2luU3RvcEJhY2tncm91bmRQbGF5
KHRoaXMsIG1fcHJpdmF0ZS0+bV9wbHVnaW5VbmlxdWVQcmVmaXguY19zdHIoKSk7CiAKQEAgLTg4
Nyw3ICs4ODcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChTY3JvbGxWaWV3KiBwYXJl
bnRXaWRnZXQpCiAgICAgaWYgKHBhcmVudFdpZGdldCkgewogICAgICAgICBpbml0KCk7CiAKLSAg
ICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJl
bnRXaWRnZXQpOworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFdpZGdldCk7CiAKICAgICAgICAgaWYgKGZyYW1lVmlldyAmJiBtX3ByaXZhdGUpIHsKICAg
ICAgICAgICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+
cmVnaXN0ZXJQbHVnaW4odGhpcywgdHJ1ZSAvKnNob3VsZFJlZ2lzdGVyKi8pOwpAQCAtOTEyLDcg
KzkxMiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgaWYg
KCFtX3ByaXZhdGUgfHwgIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8fCAhbV9wbHVnaW4tPnBs
dWdpbkZ1bmNzKCktPnNldHdpbmRvdykKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAgICAgaWYgKCFmcmFt
ZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPmlzQWN0aXZlKCkpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMTA2OCw3ICsxMDY4LDcgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJv
ciogcmUKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIE5QTlZSb290V2luZG93R3Jv
dXA6IHsKLSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPihwYXJlbnQoKSk7CisgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZp
ZXcocGFyZW50KCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3KSB7CiAgICAgICAgICAgICBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyAqd2luZG93ID0gZnJhbWVWaWV3LT5o
b3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5wbGF0Zm9ybVdpbmRvdygpOwogICAg
ICAgICAgICAgaWYgKHdpbmRvdykgewpAQCAtMTA4Niw3ICsxMDg2LDcgQEAgYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwg
TlBFcnJvciogcmUKICAgICB9CiAKICAgICBjYXNlIE5QTlZCcm93c2VyV2luZG93R3JvdXA6IHsK
LSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihw
YXJlbnQoKSk7CisgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFy
ZW50KCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3KSB7CiAgICAgICAgICAgICBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OldpbmRvdyogd2luZG93ID0gZnJhbWVWaWV3LT5ob3N0V2lu
ZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5wbGF0Zm9ybVdpbmRvdygpOwogICAgICAgICAg
ICAgaWYgKHdpbmRvdykgewpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybUdldFZhbHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnJv
ciogcmUKICAgICB9CiAKICAgICBjYXNlIE5QTlZCcm93c2VyRGlzcGxheUNvbnRleHQ6IHsKLSAg
ICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJl
bnQoKSk7CisgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50
KCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3KSB7CiAgICAgICAgICAgICBCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6R3JhcGhpY3M6OlBsYXRmb3JtRGlzcGxheUNvbnRleHRIYW5kbGUgY29udGV4dCA9
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6cGxhdGZvcm1EaXNwbGF5Q29udGV4dCgp
OwogICAgICAgICAgICAgaWYgKGNvbnRleHQpIHsKQEAgLTEyMzUsNyArMTIzNSw3IEBAIGJvb2wg
UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAKICAgICBzaG93KCk7CiAKLSAgICBpZiAoRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSkpCisg
ICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpKQogICAg
ICAgICBoYW5kbGVPcmllbnRhdGlvbkV2ZW50KGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVBhZ2VDbGllbnQoKS0+b3JpZW50YXRpb24oKSk7CiAKICAgICBpZiAoIShtX3BsdWdpbi0+
cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKSB7
CkBAIC0xMjU4LDcgKzEyNTgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgp
CiAgICAgbV9wcml2YXRlLT5jbGVhclZpc2libGVSZWN0cygpOwogCiAgICAgLy8gVGhpcyB3aWxs
IGVuc3VyZSB0aGF0IHdlIHVucmVnaXN0ZXJlZCB0aGUgcGx1Z2luLgotICAgIGlmIChGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKSkgeworICAg
IGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKSkgewogICAg
ICAgICBpZiAobV9wcml2YXRlLT5tX2lzQmFja2dyb3VuZFBsYXlpbmcpCiAgICAgICAgICAgICBm
cmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPm9uUGx1Z2luU3Rv
cEJhY2tncm91bmRQbGF5KHRoaXMsIG1fcHJpdmF0ZS0+bV9wbHVnaW5VbmlxdWVQcmVmaXguY19z
dHIoKSk7CiAKQEAgLTEzNTAsNyArMTM1MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0QmFja2dy
b3VuZFBsYXkoYm9vbCB2YWx1ZSkKICAgICBpZiAoIW1fcHJpdmF0ZSB8fCBtX3ByaXZhdGUtPm1f
aXNCYWNrZ3JvdW5kUGxheWluZyA9PSB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ByaXZhdGUtPm1f
dmlldy0+cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXco
bV9wcml2YXRlLT5tX3ZpZXctPnBhcmVudCgpKTsKICAgICBtX3ByaXZhdGUtPm1faXNCYWNrZ3Jv
dW5kUGxheWluZyA9IHZhbHVlOwogICAgIGlmIChtX3ByaXZhdGUtPm1faXNCYWNrZ3JvdW5kUGxh
eWluZykKICAgICAgICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVu
dCgpLT5vblBsdWdpblN0YXJ0QmFja2dyb3VuZFBsYXkodGhpcywgbV9wcml2YXRlLT5tX3BsdWdp
blVuaXF1ZVByZWZpeC5jX3N0cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3UHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxhY2tCZXJyeS5jcHAK
aW5kZXggNjM0NjIyMjBjODhjNDc5NDA2NGYwNTg5ZThiZmIwYzk5NjAwNjc0ZC4uZTQ2NWJlYjZl
NDhiMGY1ZmU2NzczODVmYzdlOWQ4YzgzNTc1OWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxh
Y2tCZXJyeS5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpz
ZXRWaXNpYmxlUmVjdHMoY29uc3QgTlBSZWN0IHJlY3RzW10sIGludDMyX3QgY291bnQpCiAKICAg
ICAvLyBBZGp1c3QgdGhlIHJlY3QgdG8gdGhlIHBhcmVudCB3aW5kb3cgYW5kIHRoZW4gYWRqdXN0
IGZvciBzY3JvbGxpbmcuCiAgICAgbV9rZWVwVmlzaWJsZVJlY3QgPSBtX3ZpZXctPmNvbnZlcnRU
b0NvbnRhaW5pbmdXaW5kb3cobV9rZWVwVmlzaWJsZVJlY3QpOwotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSk7CisgICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgpKTsKICAg
ICBtX2tlZXBWaXNpYmxlUmVjdC5tb3ZlKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKS54KCks
IGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKS55KCkpOwogCiAgICAgZnJhbWVWaWV3LT5ob3N0
V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5lbnN1cmVDb250ZW50VmlzaWJsZSgpOwpA
QCAtMTI2LDEzICsxMjYsMTMgQEAgdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6Y2xlYXJWaXNpYmxl
UmVjdHMoKQogCiB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpzaG93S2V5Ym9hcmQoYm9vbCB2YWx1
ZSkKIHsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KG1fdmlldy0+cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZp
ZXcobV92aWV3LT5wYXJlbnQoKSk7CiAgICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRm
b3JtUGFnZUNsaWVudCgpLT5zaG93VmlydHVhbEtleWJvYXJkKHZhbHVlKTsKIH0KIAogdm9pZCBQ
bHVnaW5WaWV3UHJpdmF0ZTo6cmVxdWVzdEZ1bGxTY3JlZW4oKQogewotICAgIGlmIChGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fdmlldy0+cGFyZW50KCkp
KQorICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmlldy0+cGFy
ZW50KCkpKQogICAgICAgICBpZiAoZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpLT5zaG91bGRQbHVnaW5FbnRlckZ1bGxTY3JlZW4obV92aWV3LCBtX3BsdWdpblVu
aXF1ZVByZWZpeC5jX3N0cigpKSkKICAgICAgICAgICAgIG1fdmlldy0+aGFuZGxlRnVsbFNjcmVl
bkFsbG93ZWRFdmVudCgpOwogfQpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgUGx1Z2luVmlld1By
aXZhdGU6OmV4aXRGdWxsU2NyZWVuKCkKIAogdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6cmVxdWVz
dENlbnRlckZpdFpvb20oKQogewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nh
c3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgpKTsKIAogICAgIGlmICghZnJhbWVWaWV3
KQogICAgICAgICByZXR1cm47CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBQbHVnaW5WaWV3UHJp
dmF0ZTo6cmVxdWVzdENlbnRlckZpdFpvb20oKQogCiB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjps
b2NrT3JpZW50YXRpb24oYm9vbCBsYW5kc2NhcGUpCiB7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXctPnBhcmVudCgpKTsKKyAgICBGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmlldy0+cGFyZW50KCkpOwogCiAgICAg
aWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lk
IFBsdWdpblZpZXdQcml2YXRlOjp1bmxvY2tPcmllbnRhdGlvbigpCiAgICAgaWYgKCFtX29yaWVu
dGF0aW9uTG9ja2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fdmlldy0+cGFyZW50KCkpOworICAgIEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcobV92aWV3LT5wYXJlbnQoKSk7CiAKICAgICBp
ZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQg
UGx1Z2luVmlld1ByaXZhdGU6OnByZXZlbnRJZGxlKGJvb2wgcHJldmVudElkbGUpCiAgICAgaWYg
KHByZXZlbnRJZGxlID09IG1faWRsZVByZXZlbnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXctPnBh
cmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmlldy0+
cGFyZW50KCkpOwogICAgIGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggYmU0NWQwNWE2
YjgwN2IzOGE1ZGZhZWYwZWIxMTliNWVmNGQyMzk0OC4uNjQ2ZDBkODliYjliMGM1ZTM3M2JhMTMw
Yzc3MTliNzgxYWQ4ZTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2lu
Vmlld0d0ay5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBs
dWdpbldpZGdldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChwYXJlbnQoKS0+aXNG
cmFtZVZpZXcoKSk7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmll
dyhwYXJlbnQoKSk7CiAKICAgICBJbnRSZWN0IG9sZFdpbmRvd1JlY3QgPSBtX3dpbmRvd1JlY3Q7
CiAgICAgSW50UmVjdCBvbGRDbGlwUmVjdCA9IG1fY2xpcFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQppbmRleCA5ZDNlYWIzMzE3NmMzZmM3N2Y3YjBj
ZDQwNmM1MDdjZDIxNTFiYTMzLi5kOTg2OGFiOWU2NmVhZmM3NTA5ZDFmNTM3M2NhMGYyMWJlZjM5
NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KQEAg
LTUwOCw3ICs1MDgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAg
ICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsKLSAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgp
KTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKIAog
ICAgIEludFJlY3Qgb2xkV2luZG93UmVjdCA9IG1fd2luZG93UmVjdDsKICAgICBJbnRSZWN0IG9s
ZENsaXBSZWN0ID0gbV9jbGlwUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvbnBhcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKaW5kZXggNjYy
MzU3MTQzZDMwNjk3MmZlNjNmMTgxNTc3ZTQzNzkwYzE5YmMyMS4uNWIwYjcyMDhiMTk0ZDRiNTRi
MDAzODNiMTAxOGQ3MDI3N2NlOWIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy9ucGFwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ucGFwaS5jcHAKQEAgLTM5
LDcgKzM5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgUGx1Z2luVmlldyog
cGx1Z2luVmlld0Zvckluc3RhbmNlKE5QUCBpbnN0YW5jZSkKIHsKICAgICBpZiAoaW5zdGFuY2Ug
JiYgaW5zdGFuY2UtPm5kYXRhKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmll
dyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgICAgIHJldHVybiB0b1BsdWdpblZpZXcoaW5zdGFu
Y2UtPm5kYXRhKTsKICAgICByZXR1cm4gUGx1Z2luVmlldzo6Y3VycmVudFBsdWdpblZpZXcoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGRl
NWMyYjg4ZWZlZWE2N2YwMTcyMTZiMmE2YmEwMTg0N2NmNDM5MTkuLjFiY2Y1ZTM3MTA4MjYxMmNj
NWM1ZGUzNGJlZWFhZTA1ZGQyZjc2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0
ZVBsdWdpbldpZGdldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChwYXJlbnQoKS0+
aXNGcmFtZVZpZXcoKSk7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1l
VmlldyhwYXJlbnQoKSk7CiAKICAgICBJbnRSZWN0IG9sZFdpbmRvd1JlY3QgPSBtX3dpbmRvd1Jl
Y3Q7CiAgICAgSW50UmVjdCBvbGRDbGlwUmVjdCA9IG1fY2xpcFJlY3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IGUwOTM0Y2I2YjMxNWFiMGE0
MzdlZGQyNWI5OGU0NGUyZTBlMzA0NTMuLjEyZDVhZTBhOGRkMTk2OWQ1MDZlMjY2YmI1MWI5M2Q5
MTAzMjExMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZp
ZXdXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4u
Y3BwCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQoKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3
KCkpOwotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50
KCkpOwogCiAgICAgSW50UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIElu
dFJlY3Qgb2xkQ2xpcFJlY3QgPSBtX2NsaXBSZWN0OwpAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQg
UGx1Z2luVmlldzo6cGFpbnRJbnRvVHJhbnNmb3JtZWRDb250ZXh0KEhEQyBoZGMpCiAKICAgICBX
SU5ET1dQT1Mgd2luZG93cG9zID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CiAKLSAgICBJbnRS
ZWN0IHIgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5k
b3coZnJhbWVSZWN0KCkpOworICAgIEludFJlY3QgciA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+
Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CiAKICAgICB3aW5kb3dwb3MueCA9IHIueCgp
OwogICAgIHdpbmRvd3Bvcy55ID0gci55KCk7CkBAIC01ODYsNyArNTg2LDcgQEAgdm9pZCBQbHVn
aW5WaWV3OjpwYWludFdpbmRvd2VkUGx1Z2luSW50b0NvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgIEFTU0VSVChjb250ZXh0LT5zaG91bGRJbmNsdWRlQ2hpbGRXaW5k
b3dzKCkpOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICBJbnRQ
b2ludCBsb2NhdGlvbkluV2luZG93ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkp
LT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpLmxvY2F0aW9uKCkpOworICAgIEludFBvaW50
IGxvY2F0aW9uSW5XaW5kb3cgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5k
b3coZnJhbWVSZWN0KCkubG9jYXRpb24oKSk7CiAKICAgICBMb2NhbFdpbmRvd3NDb250ZXh0IHdp
bmRvd3NDb250ZXh0KGNvbnRleHQsIGZyYW1lUmVjdCgpLCBmYWxzZSk7CiAKQEAgLTY0Niw3ICs2
NDYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBJbnRSZWN0IHJlY3RJbldpbmRvdyhyZWN0KTsKICAg
ICByZWN0SW5XaW5kb3cuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICNlbHNlCi0gICAgSW50UmVj
dCByZWN0SW5XaW5kb3cgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmNvbnRl
bnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOworICAgIEludFJlY3QgcmVjdEluV2luZG93ID0gdG9G
cmFtZVZpZXcocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpKTsKICNlbmRp
ZgogICAgIExvY2FsV2luZG93c0NvbnRleHQgd2luZG93c0NvbnRleHQoY29udGV4dCwgcmVjdElu
V2luZG93LCBtX2lzVHJhbnNwYXJlbnQpOwogCkBAIC03MDIsNyArNzAyLDcgQEAgdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogCiAgICAgTlBFdmVu
dCBucEV2ZW50OwogCi0gICAgSW50UG9pbnQgcCA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBh
cmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhJbnRQb2ludChldmVudC0+cGFnZVgoKSwgZXZlbnQt
PnBhZ2VZKCkpKTsKKyAgICBJbnRQb2ludCBwID0gdG9GcmFtZVZpZXcocGFyZW50KCkpLT5jb250
ZW50c1RvV2luZG93KEludFBvaW50KGV2ZW50LT5wYWdlWCgpLCBldmVudC0+cGFnZVkoKSkpOwog
CiAgICAgbnBFdmVudC5sUGFyYW0gPSBNQUtFTFBBUkFNKHAueCgpLCBwLnkoKSk7CiAgICAgbnBF
dmVudC53UGFyYW0gPSAwOwpAQCAtODIxLDcgKzgyMSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0
TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogI2lm
IE9TKFdJTkNFKQotICAgIEludFJlY3QgciA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVu
dCgpKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0KTsKKyAgICBJbnRSZWN0IHIgPSB0b0ZyYW1lVmll
dyhwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5kb3cocmVjdCk7CiAgICAgbV9ucFdpbmRvdy54ID0g
ci54KCk7CiAgICAgbV9ucFdpbmRvdy55ID0gci55KCk7CiAKQEAgLTgzNiw3ICs4MzYsNyBAQCB2
b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogIyBp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQogICAgIEludFBvaW50IHAgPSByZWN0Lmxv
Y2F0aW9uKCk7CiAjIGVsc2UKLSAgICBJbnRQb2ludCBwID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7CisgICAgSW50
UG9pbnQgcCA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0Lmxv
Y2F0aW9uKCkpOwogIyBlbmRpZgogICAgIG1fbnBXaW5kb3cueCA9IHAueCgpOwogICAgIG1fbnBX
aW5kb3cueSA9IHAueSgpOwpAQCAtMTA2OSw3ICsxMDY5LDcgQEAgUGFzc1JlZlB0cjxJbWFnZT4g
UGx1Z2luVmlldzo6c25hcHNob3QoKQogICAgICAgICAvLyBXaW5kb3dsZXNzIHBsdWctaW5zIGFz
c3VtZSB0aGF0IHRoZXkncmUgZHJhd2luZyBvbnRvIHRoZSB2aWV3J3MgREMuCiAgICAgICAgIC8v
IFRyYW5zbGF0ZSB0aGUgY29udGV4dCBzbyB0aGF0IHRoZSBwbHVnLWluIGRyYXdzIGF0ICgwLCAw
KS4KICAgICAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICAgICAgSW50
UG9pbnQgcG9zaXRpb24gPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmNvbnRl
bnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpLmxvY2F0aW9uKCk7CisgICAgICAgIEludFBvaW50IHBv
c2l0aW9uID0gdG9GcmFtZVZpZXcocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVj
dCgpKS5sb2NhdGlvbigpOwogICAgICAgICB0cmFuc2Zvcm0uZUR4ID0gLXBvc2l0aW9uLngoKTsK
ICAgICAgICAgdHJhbnNmb3JtLmVEeSA9IC1wb3NpdGlvbi55KCk7CiAgICAgICAgIFNldFdvcmxk
VHJhbnNmb3JtKGhkYy5nZXQoKSwgJnRyYW5zZm9ybSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCmluZGV4IDRiNjE4ZDJiOWVhNTY2ZDkxMjAxZTFkMzM0YmE2NDkzMDQ5ZjA3
ZWUuLmM5YTg1MTQ3M2I0ODNlYmQxZGZjNmY0NDg1Y2ViYTIwNjQ0MWY0NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00MTUxLDcgKzQxNTEsNyBAQCB2b2lkIFJl
bmRlckJveDo6YWRkTGF5b3V0T3ZlcmZsb3coY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKICAgICAg
ICAgYm9vbCBoYXNUb3BPdmVyZmxvdyA9ICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KCkgJiYgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgICAgIGJvb2wgaGFzTGVmdE92
ZXJmbG93ID0gIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpOwogICAgICAgICBpZiAoaXNGbGV4aWJsZUJveCgpICYmIHN0eWxlKCkt
PmlzUmV2ZXJzZUZsZXhEaXJlY3Rpb24oKSkgewotICAgICAgICAgICAgUmVuZGVyRmxleGlibGVC
b3gqIGZsZXhpYmxlQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVyRmxleGlibGVCb3gqPih0aGlzKTsK
KyAgICAgICAgICAgIFJlbmRlckZsZXhpYmxlQm94KiBmbGV4aWJsZUJveCA9IHRvUmVuZGVyRmxl
eGlibGVCb3godGhpcyk7CiAgICAgICAgICAgICBpZiAoZmxleGlibGVCb3gtPmlzSG9yaXpvbnRh
bEZsb3coKSkKICAgICAgICAgICAgICAgICBoYXNMZWZ0T3ZlcmZsb3cgPSB0cnVlOwogICAgICAg
ICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAKaW5kZXggZTQ3MGY5YjBhYzI0NTc4NmE4ODA3YjMzMGNlMzVjY2ZkNjZkNjFi
Yi4uNDUxYmQwOGYwZDM5OTQzODA1MmRiN2ZmMDcyMzFmZTUxMDUzYWE4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0yNzcy
LDcgKzI3NzIsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYQogICAgIExheW91dFNpemUgY29u
dGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQb2ludCgpKTsKIAog
ICAgIGlmICghc3R5bGUoKS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSAmJiBvLT5oYXNDb2x1bW5z
KCkpIHsKLSAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gc3RhdGljX2Nhc3Q8UmVuZGVyQmxv
Y2sqPihvKTsKKyAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5kZXJCbG9jayhvKTsK
ICAgICAgICAgTGF5b3V0UG9pbnQgcG9pbnQocm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0
YXRlLm1hcHBlZFBvaW50KCkpKTsKICAgICAgICAgcG9pbnQgLT0gY29udGFpbmVyT2Zmc2V0Owog
ICAgICAgICBibG9jay0+YWRqdXN0Rm9yQ29sdW1uUmVjdChjb250YWluZXJPZmZzZXQsIHBvaW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCmluZGV4IGE5MGQ1MjRiNjEzMjRjODQ3ZjQ0Zjk0ZDA4MmMxNDNhN2ZiZTc4ODkuLmZkNjkw
ODc0MWZmZTZiYzFmOTg4M2FkODk4Mzk5YTRkMjRiNTc0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAogCiBi
b29sIFJlbmRlckVtYmVkZGVkT2JqZWN0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gd2lkZ2V0KCkgJiYgd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jh
c2UoKSAmJiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdldCgpKS0+cGxhdGZvcm1M
YXllcigpOworICAgIHJldHVybiB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFz
ZSgpICYmIHRvUGx1Z2luVmlld0Jhc2Uod2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVyKCk7CiB9CiAj
ZW5kaWYKIApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnZp
ZXdDbGVhcmVkKCkKIHsKICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciA8b2JqZWN0PiBlbGVt
ZW50cyB3aG9zZSBjb250ZW50cyBhcmUgcmVuZGVyZWQgYnkgV2ViQ29yZSAoZS5nLiBzcmM9ImZv
by5odG1sIikuCiAgICAgaWYgKG5vZGUoKSAmJiB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNGcmFt
ZVZpZXcoKSkgewotICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPih3aWRnZXQoKSk7CisgICAgICAgIEZyYW1lVmlldyogdmlldyA9IHRvRnJhbWVWaWV3KHdp
ZGdldCgpKTsKICAgICAgICAgaW50IG1hcmdpbldpZHRoID0gLTE7CiAgICAgICAgIGludCBtYXJn
aW5IZWlnaHQgPSAtMTsKICAgICAgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShpZnJhbWVUYWcp
KSB7CkBAIC0zNTAsNyArMzUwLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6bm9kZUF0
UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXMKICAgICBpZiAo
IXdpZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIFBsdWdpblZpZXdCYXNlKiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2lu
Vmlld0Jhc2UqPih3aWRnZXQoKSk7CisgICAgUGx1Z2luVmlld0Jhc2UqIHZpZXcgPSB0b1BsdWdp
blZpZXdCYXNlKHdpZGdldCgpKTsKICAgICBJbnRQb2ludCByb3VuZGVkUG9pbnQgPSBsb2NhdGlv
bkluQ29udGFpbmVyLnJvdW5kZWRQb2ludCgpOwogCiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpv
bnRhbFNjcm9sbGJhciA9IHZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewpAQCAtMzc1LDcg
KzM3NSw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnNjcm9sbChTY3JvbGxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBnCiAgICAgaWYgKCF3aWRnZXQoKSB8fCAh
d2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0KCkpLT5zY3JvbGwo
ZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgcmV0dXJuIHRvUGx1Z2luVmlld0Jhc2Uod2lk
Z2V0KCkpLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CiB9CiAKIGJvb2wgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OmxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyLCBO
b2RlKiogc3RvcE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5oCmluZGV4IDQyODQ5M2IzNmIzMDVkMWZkZjFmMDUwYWQ0NjM2MWE3M2NiM2IxNzIuLmNj
MTRiMTg2ODdhY2M3NGM5OTM0NWViN2IxOTY0YzZhYmQyYTA5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzgsNiArMTc4LDIxIEBAIHBy
aXZhdGU6CiAgICAgaW50IG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lOwogfTsK
IAoraW5saW5lIFJlbmRlckZsZXhpYmxlQm94KiB0b1JlbmRlckZsZXhpYmxlQm94KFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc0ZsZXhpYmxlQm94KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxSZW5kZXJGbGV4aWJsZUJveCo+KG9iamVjdCk7Cit9CisKK2lubGluZSBjb25zdCBSZW5kZXJG
bGV4aWJsZUJveCogdG9SZW5kZXJGbGV4aWJsZUJveChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVj
dCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9i
amVjdC0+aXNGbGV4aWJsZUJveCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVu
ZGVyRmxleGlibGVCb3gqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25l
IGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyRmxleGlibGVCb3goY29u
c3QgUmVuZGVyRmxleGlibGVCb3gqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gUmVuZGVyRmxleGlibGVCb3hfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZS5jcHAKaW5kZXggZjRjM2NiNmI2ZjdmMjVjZmU0NGY3ZDgyNDgxMTgxNGY2MjcxMmRkZS4u
OWJkN2MxNjU0MDExNDI2MzEwZmIwZDZmNTEyYWNiNmY1OGY4YjNiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgUmVuZGVy
RnJhbWU6OnZpZXdDbGVhcmVkKCkKICAgICBpZiAoIWVsZW1lbnQgfHwgIXdpZGdldCgpIHx8ICF3
aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3
KiB2aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOworICAgIEZyYW1lVmll
dyogdmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCgpKTsKIAogICAgIGludCBtYXJnaW5XaWR0aCA9
IGVsZW1lbnQtPm1hcmdpbldpZHRoKCk7CiAgICAgaW50IG1hcmdpbkhlaWdodCA9IGVsZW1lbnQt
Pm1hcmdpbkhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYW1lQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVC
YXNlLmNwcAppbmRleCBmNzlhMjFhOTk1OGZiMGRmZWVlMDNjNmU5M2YzNTJhNzQyYzIxM2UxLi5m
MmJlOWY2NDdhMjMzZmM3MDcyZGFmMzM1NTc3ODBlM2ZkMTE5MjlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcApAQCAtNTQsOCArNTQsOCBAQCBpbmxp
bmUgYm9vbCBzaG91bGRFeHBhbmRGcmFtZShMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhl
aWdodCwgYm9vbCBoYXNGaXhlZAogCiB2b2lkIFJlbmRlckZyYW1lQmFzZTo6bGF5b3V0V2l0aEZs
YXR0ZW5pbmcoYm9vbCBoYXNGaXhlZFdpZHRoLCBib29sIGhhc0ZpeGVkSGVpZ2h0KQogewotICAg
IEZyYW1lVmlldyogY2hpbGRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQoKSk7Ci0gICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZpZXcgPyBzdGF0
aWNfY2FzdDxSZW5kZXJWaWV3Kj4oY2hpbGRGcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5k
ZXJlcigpKSA6IDA7CisgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3
KHdpZGdldCgpKTsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1lVmlldyA/
IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSA6IDA7CiAKICAgICBp
ZiAoIWNoaWxkUm9vdCB8fCAhc2hvdWxkRXhwYW5kRnJhbWUod2lkdGgoKSwgaGVpZ2h0KCksIGhh
c0ZpeGVkV2lkdGgsIGhhc0ZpeGVkSGVpZ2h0KSkgewogICAgICAgICB1cGRhdGVXaWRnZXRQb3Np
dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAppbmRleCA2
YTYzMzY4ODhmYmYwMDZmNDBlMjQ2NzhmZDBiZTgxN2IzMzUwMGYxLi5hZTExNmFjNTI1NGFiMGQz
YzUwODE3OTI2NDI1NjFkMDZjZDc4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySUZyYW1lLmNwcApAQCAtOTIsOCArOTIsOCBAQCBSZW5kZXJWaWV3KiBSZW5kZXJJRnJhbWU6
OmNvbnRlbnRSb290UmVuZGVyZXIoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBJcyB0aGlzIGFs
d2F5cyBhIHZhbGlkIGNhc3Q/IFdoYXQgYWJvdXQgcGx1Z2lucz8KICAgICBBU1NFUlQoIXdpZGdl
dCgpIHx8IHdpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICBGcmFtZVZpZXcqIGNoaWxkRnJh
bWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOwotICAgIHJldHVybiBj
aGlsZEZyYW1lVmlldyA/IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihjaGlsZEZyYW1lVmlldy0+
ZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkpIDogMDsKKyAgICBGcmFtZVZpZXcqIGNoaWxkRnJh
bWVWaWV3ID0gdG9GcmFtZVZpZXcod2lkZ2V0KCkpOworICAgIHJldHVybiBjaGlsZEZyYW1lVmll
dyA/IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSA6IDA7CiB9CiAK
IGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdApAQCAtMTM3LDcgKzEzNyw3
IEBAIHZvaWQgUmVuZGVySUZyYW1lOjpsYXlvdXRTZWFtbGVzc2x5KCkKICAgICAvLyBMYXlpbmcg
b3V0IG91ciBraWRzIGlzIG5vcm1hbGx5IHJlc3BvbnNpYmxlIGZvciBhZGp1c3Rpbmcgb3VyIGhl
aWdodCwgc28gd2Ugc2V0IGl0IGhlcmUuCiAgICAgLy8gUmVwbGFjZWQgZWxlbWVudHMgbm9ybWFs
bHkgZG8gbm90IHJlc3BlY3QgcGFkZGluZywgYnV0IHNlYW1sZXNzIGVsZW1lbnRzIHNob3VsZDog
d2UnbGwgYWRkCiAgICAgLy8gYm90aCBwYWRkaW5nIGFuZCBib3JkZXIgdG8gdGhlIGNoaWxkJ3Mg
bG9naWNhbCBoZWlnaHQgaGVyZS4KLSAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0gc3Rh
dGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOworICAgIEZyYW1lVmlldyogY2hpbGRGcmFt
ZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7CiAgICAgaWYgKGNoaWxkRnJhbWVWaWV3KSAv
LyBXaWRnZXQgc2hvdWxkIG5ldmVyIGJlIG51bGwgZHVyaW5nIGxheW91dCgpLCBidXQganVzdCBp
biBjYXNlLgogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGNoaWxkRnJhbWVWaWV3LT5jb250ZW50
c0hlaWdodCgpICsgYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0b20oKSArIHBhZGRpbmdUb3AoKSAr
IHBhZGRpbmdCb3R0b20oKSk7CiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwpAQCAtMTQ1LDcg
KzE0NSw3IEBAIHZvaWQgUmVuZGVySUZyYW1lOjpsYXlvdXRTZWFtbGVzc2x5KCkKICAgICB1cGRh
dGVXaWRnZXRQb3NpdGlvbigpOyAvLyBOb3RpZnkgdGhlIFdpZGdldCBvZiBvdXIgZmluYWwgaGVp
Z2h0LgogCiAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIGNoaWxkIGRvY3VtZW50IGRpZCBhIGNvbXBs
ZXRlIGxheW91dC4KLSAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1lVmlldyA/
IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihjaGlsZEZyYW1lVmlldy0+ZnJhbWUoKS0+Y29udGVu
dFJlbmRlcmVyKCkpIDogMDsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1l
VmlldyA/IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSA6IDA7CiAg
ICAgQVNTRVJUKCFjaGlsZEZyYW1lVmlldyB8fCAhY2hpbGRGcmFtZVZpZXctPmxheW91dFBlbmRp
bmcoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChjaGlsZFJvb3QsICFjaGlsZFJvb3QgfHwgIWNoaWxk
Um9vdC0+bmVlZHNMYXlvdXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGIyZjBhYTEyNjQwNTY3MGZmODc3Y2Y4ZmU5MjA4
OGEwNGI0ZTQyZWQuLmNlZTVhMGZhY2QxMDlhNmRiOWRlMjZlMTkwMDVjYzM4YjVmMjg3YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBA
IC01NDksNyArNTQ5LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNz
TGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICAgICAgdXBkYXRlSW1hZ2VDb250ZW50cygpOwogCiAg
ICAgaWYgKHJlbmRlcmVyLT5pc0VtYmVkZGVkT2JqZWN0KCkgJiYgdG9SZW5kZXJFbWJlZGRlZE9i
amVjdChyZW5kZXJlciktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkgewotICAgICAg
ICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3
QmFzZSo+KHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKS0+d2lkZ2V0KCkpOworICAgICAgICBQbHVn
aW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSB0b1BsdWdpblZpZXdCYXNlKHRvUmVuZGVyV2lk
Z2V0KHJlbmRlcmVyKS0+d2lkZ2V0KCkpOwogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENv
bnRlbnRzVG9NZWRpYShwbHVnaW5WaWV3QmFzZS0+cGxhdGZvcm1MYXllcigpKTsKICAgICB9CiAj
aWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzZDc0MWFlMmE0OWEyZmNiOGI5MDhiZWI3YzM2NWQ5
MDc3YTEwNDM5Li40MmNlNjc2MzIwMDk0ZTc2YjYzMDFkMDJmOWFiZTNkNDcwOGNkNWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtMTY0Myw3ICsxNjQzLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3Vs
ZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNvbnN0CiAgICAgUmVuZGVy
UGFydCogZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVyUGFydChyZW5kZXJlcik7CiAgICAgaWYgKGZy
YW1lUmVuZGVyZXItPndpZGdldCgpKSB7CiAgICAgICAgIEFTU0VSVChmcmFtZVJlbmRlcmVyLT53
aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgICAgIEZyYW1lVmlldyogdmlldyA9IHN0YXRp
Y19jYXN0PEZyYW1lVmlldyo+KGZyYW1lUmVuZGVyZXItPndpZGdldCgpKTsKKyAgICAgICAgRnJh
bWVWaWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpOwogICAg
ICAgICBpZiAodmlldy0+aXNPdmVybGFwcGVkSW5jbHVkaW5nQW5jZXN0b3JzKCkgfHwgdmlldy0+
aGFzQ29tcG9zaXRpbmdBbmNlc3RvcigpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwCmluZGV4IDRmYTdhZDFjYjM5
NTFmM2NjNjM4OTgyN2RkYjZjYTE1NGJhODY1YmQuLjYwZjM5NDQ4MTYyYmJjM2I3OWY0MDk2YzE3
OGQ2ODQwOWI1NjJjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQYXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAK
QEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBSZW5kZXJQYXJ0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSBjb25zdAogICAgIC8vIHJlbmRlcmVyIGFuZCB0aGUgcGx1Z2luIGhhcyBhIGxh
eWVyLCB0aGVuIHdlIG5lZWQgYSBsYXllci4gU2Vjb25kLCBpZiB0aGlzIGlzIAogICAgIC8vIGEg
cmVuZGVyZXIgd2l0aCBhIGNvbnRlbnREb2N1bWVudCBhbmQgdGhhdCBkb2N1bWVudCBuZWVkcyBh
IGxheWVyLCB0aGVuIHdlIG5lZWQKICAgICAvLyBhIGxheWVyLgotICAgIGlmICh3aWRnZXQoKSAm
JiB3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpICYmIHN0YXRpY19jYXN0PFBsdWdpblZpZXdC
YXNlKj4od2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgaWYgKHdpZGdldCgpICYmIHdp
ZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3QmFzZSh3aWRnZXQoKSkt
PnBsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIW5vZGUo
KSB8fCAhbm9kZSgpLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpCkBAIC0xMDcsNyArMTA3LDcgQEAg
UmVuZGVyQm94KiBSZW5kZXJQYXJ0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAogewogICAg
IGlmICghbm9kZSgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkpCiAg
ICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQoKSktPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRn
ZXQoKSktPmVtYmVkZGVkQ29udGVudEJveCgpOwogfQogCiBib29sIFJlbmRlclBhcnQ6Om5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKQEAgLTEx
NSw3ICsxMTUsNyBAQCBib29sIFJlbmRlclBhcnQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bAogICAgIGlmICghd2lkZ2V0KCkg
fHwgIXdpZGdldCgpLT5pc0ZyYW1lVmlldygpIHx8ICFyZXF1ZXN0LmFsbG93c0NoaWxkRnJhbWVD
b250ZW50KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6Om5vZGVBdFBvaW50KHJlcXVl
c3QsIHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGFjdGlv
bik7CiAKLSAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4od2lkZ2V0KCkpOworICAgIEZyYW1lVmlldyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1l
Vmlldyh3aWRnZXQoKSk7CiAgICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKIAogICAgIGlmIChjaGlsZFJvb3QpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSdWJ5LmNwcAppbmRleCAxNGFmMjU1NGNjZmZiYzc0ZTY3NjY0ZmQwYjkz
YmY5ZDQxNGRjYjMyLi4wNzY3NDRlMTYwN2QyNGQ3NTUzMzc1ZjhjNjU5ZjhmZjYzNWEyYzljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCkBAIC03NCwxMyArNzQsMTMg
QEAgc3RhdGljIGlubGluZSBib29sIGlzUnVieUFmdGVyQmxvY2soY29uc3QgUmVuZGVyT2JqZWN0
KiBvYmplY3QpCiBzdGF0aWMgaW5saW5lIFJlbmRlckJsb2NrKiBydWJ5QmVmb3JlQmxvY2soY29u
c3QgUmVuZGVyT2JqZWN0KiBydWJ5KQogewogICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBydWJ5
LT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGlzUnVieUJlZm9yZUJsb2NrKGNoaWxkKSA/IHN0
YXRpY19jYXN0PFJlbmRlckJsb2NrKj4oY2hpbGQpIDogMDsKKyAgICByZXR1cm4gaXNSdWJ5QmVm
b3JlQmxvY2soY2hpbGQpID8gdG9SZW5kZXJCbG9jayhjaGlsZCkgOiAwOwogfQogCiBzdGF0aWMg
aW5saW5lIFJlbmRlckJsb2NrKiBydWJ5QWZ0ZXJCbG9jayhjb25zdCBSZW5kZXJPYmplY3QqIHJ1
YnkpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHJ1YnktPmxhc3RDaGlsZCgpOwotICAg
IHJldHVybiBpc1J1YnlBZnRlckJsb2NrKGNoaWxkKSA/IHN0YXRpY19jYXN0PFJlbmRlckJsb2Nr
Kj4oY2hpbGQpIDogMDsKKyAgICByZXR1cm4gaXNSdWJ5QWZ0ZXJCbG9jayhjaGlsZCkgPyB0b1Jl
bmRlckJsb2NrKGNoaWxkKSA6IDA7CiB9CiAKIHN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5v
bnltb3VzUnVieUlubGluZUJsb2NrKFJlbmRlck9iamVjdCogcnVieSkKQEAgLTk3LDE0ICs5Nywx
NCBAQCBzdGF0aWMgUmVuZGVyUnVieVJ1biogbGFzdFJ1YnlSdW4oY29uc3QgUmVuZGVyT2JqZWN0
KiBydWJ5KQogICAgIGlmIChjaGlsZCAmJiAhY2hpbGQtPmlzUnVieVJ1bigpKQogICAgICAgICBj
aGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKICAgICBBU1NFUlQoIWNoaWxkIHx8IGNo
aWxkLT5pc1J1YnlSdW4oKSB8fCBjaGlsZC0+aXNCZWZvcmVDb250ZW50KCkgfHwgY2hpbGQgPT0g
cnVieUJlZm9yZUJsb2NrKHJ1YnkpKTsKLSAgICByZXR1cm4gY2hpbGQgJiYgY2hpbGQtPmlzUnVi
eVJ1bigpID8gc3RhdGljX2Nhc3Q8UmVuZGVyUnVieVJ1bio+KGNoaWxkKSA6IDA7CisgICAgcmV0
dXJuIGNoaWxkICYmIGNoaWxkLT5pc1J1YnlSdW4oKSA/IHRvUmVuZGVyUnVieVJ1bihjaGlsZCkg
OiAwOwogfQogCiBzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4qIGZpbmRSdWJ5UnVuUGFyZW50
KFJlbmRlck9iamVjdCogY2hpbGQpCiB7CiAgICAgd2hpbGUgKGNoaWxkICYmICFjaGlsZC0+aXNS
dWJ5UnVuKCkpCiAgICAgICAgIGNoaWxkID0gY2hpbGQtPnBhcmVudCgpOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxSZW5kZXJSdWJ5UnVuKj4oY2hpbGQpOworICAgIHJldHVybiB0b1JlbmRlclJ1
YnlSdW4oY2hpbGQpOwogfQogCiAvLz09PSBydWJ5IGFzIGlubGluZSBvYmplY3QgPT09CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggZDNmOGQ3
NDYwYTczYmEyOGEwNWMyZTBiZTA0MDU4NGNkYWM5ZWExOC4uYjM2OWUxMjMzMzQ3NWNiMzkyZWQy
ZDhjZTAwODZmMzc5MjU3MTAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUcmVlQXNUZXh0LmNwcApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQgd3JpdGUoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgaW50IGluZGVudCwgUmVuZGVyQXNUZXh0QmVo
YXZpCiAgICAgaWYgKG8uaXNXaWRnZXQoKSkgewogICAgICAgICBXaWRnZXQqIHdpZGdldCA9IHRv
UmVuZGVyV2lkZ2V0KCZvKS0+d2lkZ2V0KCk7CiAgICAgICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0
LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOworICAgICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0g
dG9GcmFtZVZpZXcod2lkZ2V0KTsKICAgICAgICAgICAgIFJlbmRlclZpZXcqIHJvb3QgPSB2aWV3
LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmIChyb290KSB7CiAg
ICAgICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCmluZGV4IGMyMGZiYmIwN2FiYzkyM2NjYjQwNjNkODZiZjhhZjUwZTk3
MjI1NzEuLjlhZjUzMTc1YTI0Y2NiNjQ5N2YyNzlkN2ZmNzk3MGFjNjFiMzBiMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAg
dm9pZCBSZW5kZXJXaWRnZXQ6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWludE8KICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnRyYW5z
bGF0ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwogCiAgICAgaWYgKG1fd2lkZ2V0LT5pc0ZyYW1lVmll
dygpKSB7Ci0gICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4obV93aWRnZXQuZ2V0KCkpOworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRv
RnJhbWVWaWV3KG1fd2lkZ2V0LmdldCgpKTsKICAgICAgICAgYm9vbCBydW5PdmVybGFwVGVzdHMg
PSAhZnJhbWVWaWV3LT51c2VTbG93UmVwYWludHNJZk5vdE92ZXJsYXBwZWQoKSB8fCBmcmFtZVZp
ZXctPmhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAgICAgICAg
aWYgKHBhaW50SW5mby5vdmVybGFwVGVzdFJlcXVlc3RzICYmIHJ1bk92ZXJsYXBUZXN0cykgewog
ICAgICAgICAgICAgQVNTRVJUKCFwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1ZXN0cy0+Y29udGFp
bnModGhpcykpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRPdmVy
bGFwVGVzdFJlc3VsdChib29sIGlzT3ZlcmxhcHBlZCkKIHsKICAgICBBU1NFUlQobV93aWRnZXQp
OwogICAgIEFTU0VSVChtX3dpZGdldC0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4obV93aWRnZXQuZ2V0KCkpLT5zZXRJc092ZXJsYXBwZWQoaXNPdmVybGFwcGVk
KTsKKyAgICB0b0ZyYW1lVmlldyhtX3dpZGdldC5nZXQoKSktPnNldElzT3ZlcmxhcHBlZChpc092
ZXJsYXBwZWQpOwogfQogCiB2b2lkIFJlbmRlcldpZGdldDo6ZGVyZWYoUmVuZGVyQXJlbmEgKmFy
ZW5hKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0Ojp1cGRhdGVXaWRnZXRQ
b3NpdGlvbigpCiAgICAgLy8gaWYgdGhlIGZyYW1lIGJvdW5kcyBnb3QgY2hhbmdlZCwgb3IgaWYg
dmlldyBuZWVkcyBsYXlvdXQgKHBvc3NpYmx5IGluZGljYXRpbmcKICAgICAvLyBjb250ZW50IHNp
emUgaXMgd3JvbmcpIHdlIGhhdmUgdG8gZG8gYSBsYXlvdXQgdG8gc2V0IHRoZSByaWdodCB3aWRn
ZXQgc2l6ZQogICAgIGlmIChtX3dpZGdldCAmJiBtX3dpZGdldC0+aXNGcmFtZVZpZXcoKSkgewot
ICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1f
d2lkZ2V0LmdldCgpKTsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmll
dyhtX3dpZGdldC5nZXQoKSk7CiAgICAgICAgIC8vIENoZWNrIHRoZSBmcmFtZSdzIHBhZ2UgdG8g
bWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGlzbid0IGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGRl
c3Ryb3llZC4KICAgICAgICAgaWYgKChib3VuZHNDaGFuZ2VkIHx8IGZyYW1lVmlldy0+bmVlZHNM
YXlvdXQoKSkgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLT5wYWdlKCkpCiAgICAgICAgICAgICBmcmFt
ZVZpZXctPmxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAK
aW5kZXggOWI4OTM3NWNhOTIxYzNhNjdhYTkxMTZkZTJkYTRmMTk3NmFlN2Y3YS4uMDFjYWYwMzA5
MmQxOWI1OTgwMTUxNmQ2ODhlYTdkZWZhYWQ4OWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0yNTUyLDcgKzI1NTIsNyBAQCBzdGF0aWMgaW5saW5lIEZy
YW1lKiBmcmFtZUZvck5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlmIChyZW5kZXJlci0+
aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJX
aWRnZXQocmVuZGVyZXIpLT53aWRnZXQoKTsKICAgICAgICAgICAgICAgICBpZiAod2lkZ2V0ICYm
IHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKSkKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRvRnJhbWVWaWV3KHdpZGdldCktPmZy
YW1lKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWU7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNTQxMiw3ICs1NDEyLDcgQEAgc3RhdGljIGJvb2wg
bmVlZHNMYXlvdXRSZWN1cnNpdmUoRnJhbWVWaWV3KiB2aWV3KQogICAgIGZvciAoSGFzaFNldDxS
ZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBjdXJyZW50ID0gdmlld0NoaWxkcmVuLT5i
ZWdpbigpOyBjdXJyZW50ICE9IGVuZCAmJiAhc3ViZnJhbWVzTmVlZHNMYXlvdXQ7ICsrY3VycmVu
dCkgewogICAgICAgICBXaWRnZXQqIHdpZGdldCA9ICgqY3VycmVudCkuZ2V0KCk7CiAgICAgICAg
IGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgICAgICBzdWJmcmFtZXNOZWVkc0xh
eW91dCB8PSBuZWVkc0xheW91dFJlY3Vyc2l2ZShzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQpKTsKKyAgICAgICAgICAgIHN1YmZyYW1lc05lZWRzTGF5b3V0IHw9IG5lZWRzTGF5b3V0UmVj
dXJzaXZlKHRvRnJhbWVWaWV3KHdpZGdldCkpOwogICAgIH0KIAogICAgIHJldHVybiBzdWJmcmFt
ZXNOZWVkc0xheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5j
cHAKaW5kZXggMWIzNWUxMGI5ZDUwMjlmYzk0YmQzZDIzY2RjMWVmMDYxMjYyZjNmNS4uZTJmODdj
MGE5NTc0Mjc5OTVhMGI5YmRmNTFjYjc1MzAyNGViMTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTM1OCw3ICszNTgsNyBAQCBQYXNzUmVmUHRy
PFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4oY29uc3Qg
SW50U2l6ZSYgcGx1ZwogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6cmVkaXJl
Y3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAgbV9wbHVnaW5WaWV3
ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7CisgICAgbV9wbHVnaW5W
aWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdldCk7CiAgICAgaWYgKHBsdWdpbldpZGdldCkK
ICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5j
cHAKaW5kZXggZWFkZmI0YmI1NDk1ZDJlZjhiYzRlMTc4ZWUzYTJmMTU2NzM3ZmFlYi4uYmJkNmJk
NGVmMDk0MTc3ZTFhMTEzOTY2ODFjNzQ5NTU0M2FjZGNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCkBAIC0x
NDEyLDcgKzE0MTIsNyBAQCB2b2lkIElucHV0SGFuZGxlcjo6ZW5zdXJlRm9jdXNQbHVnaW5FbGVt
ZW50VmlzaWJsZSgpCiAKICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCA9IHN0YXRpY19j
YXN0PFJlbmRlcldpZGdldCo+KG1fY3VycmVudEZvY3VzRWxlbWVudC0+cmVuZGVyZXIoKSk7CiAg
ICAgaWYgKHJlbmRlcldpZGdldCkgewotICAgICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0g
c3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOworICAgICAg
ICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHJlbmRlcldpZGdldC0+d2lk
Z2V0KCkpOwogCiAgICAgICAgIGlmIChwbHVnaW5WaWV3KQogICAgICAgICAgICAgc2VsZWN0aW9u
Rm9jdXNSZWN0ID0gcGx1Z2luVmlldy0+ZW5zdXJlVmlzaWJsZVJlY3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5k
ZXggOTEwMzQ5NjQ3MjBhNzI3NTk4ZDk2Nzk5NjNjMjJlMDlmZDUwOGFmYy4uZWNiMWMxODk5NTkw
NmEwZGU5NTRlMzZhZjI4ZTEwOGFjMGRkMmEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKQEAgLTM2Myw3ICszNjMs
NyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNjcm9sbFJlY3QoaW50IGR4LCBpbnQg
ZHksIGNvbnN0IFdlYlJlY3QmIHJlY3QpCiB7CiAgICAgV2lkZ2V0KiBwYXJlbnRXaWRnZXQgPSBw
YXJlbnQoKTsKICAgICBpZiAocGFyZW50V2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAg
IEZyYW1lVmlldyogcGFyZW50RnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFy
ZW50V2lkZ2V0KTsKKyAgICAgICAgRnJhbWVWaWV3KiBwYXJlbnRGcmFtZVZpZXcgPSB0b0ZyYW1l
VmlldyhwYXJlbnRXaWRnZXQpOwogICAgICAgICBpZiAoIXBhcmVudEZyYW1lVmlldy0+aXNPdmVy
bGFwcGVkKCkpIHsKICAgICAgICAgICAgIEludFJlY3QgZGFtYWdlUmVjdCA9IGNvbnZlcnRUb0Nv
bnRhaW5pbmdXaW5kb3coc3RhdGljX2Nhc3Q8SW50UmVjdD4ocmVjdCkpOwogICAgICAgICAgICAg
SW50U2l6ZSBzY3JvbGxEZWx0YShkeCwgZHkpOwpAQCAtNDk0LDcgKzQ5NCw3IEBAIHZvaWQgV2Vi
UGx1Z2luQ29udGFpbmVySW1wbDo6c2V0V2FudHNXaGVlbEV2ZW50cyhib29sIHdhbnRzV2hlZWxF
dmVudHMpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2Uo
KSkgewogICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAgICAgICAgaWYgKHBh
cmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICAgICAgICAgIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdMYXlvdXRVcGRhdGVkKHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHBhcmVudCgpKSk7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PmZyYW1lVmlld0xheW91dFVwZGF0ZWQodG9GcmFtZVZpZXcocGFyZW50KCkpKTsKICAgICAgICAg
fQogICAgIH0KIH0KQEAgLTY0NSw3ICs2NDUsNyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lcklt
cGw6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAKICAgICAvLyBXZSBjYWNo
ZSB0aGUgcGFyZW50IEZyYW1lVmlldyBoZXJlIGFzIHRoZSBwbHVnaW4gd2lkZ2V0IGNvdWxkIGJl
IGRlbGV0ZWQKICAgICAvLyBpbiB0aGUgY2FsbCB0byBIYW5kbGVFdmVudC4gU2VlIGh0dHA6Ly9i
L2lzc3VlP2lkPTEzNjI5NDgKLSAgICBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2Fz
dDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gdG9G
cmFtZVZpZXcocGFyZW50KCkpOwogCiAgICAgV2ViTW91c2VFdmVudEJ1aWxkZXIgd2ViRXZlbnQo
dGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVudC50
eXBlID09IFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVt
VGVzdC5jcHAKaW5kZXggYjU5Y2JhMTMxMzQyNjVmYjA2Njg1NmE1MTNjMzNkMGJhNmIyYmI2Yy4u
NGFlODU3NGMwMTk4MWQ3NmNkYTVhNTIyZWQ3ZWU5OTBkNmQ1MWY5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGlu
YXRvckNocm9taXVtVGVzdC5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCBURVNUX0YoU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDaHJvbWl1bVRlc3QsIGlmcmFtZVNjcm9sbGluZykKICAgICBBU1NFUlRfVFJV
RShyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKICAgICBBU1NFUlRfVFJVRShyZW5kZXJXaWRnZXQt
PndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKIAotICAgIEZyYW1lVmlldyogaW5uZXJGcmFtZVZp
ZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKKyAg
ICBGcmFtZVZpZXcqIGlubmVyRnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocmVuZGVyV2lkZ2V0LT53
aWRnZXQoKSk7CiAgICAgUmVuZGVyVmlldyogaW5uZXJSZW5kZXJWaWV3ID0gaW5uZXJGcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKICAgICBBU1NFUlRfVFJVRShpbm5lclJlbmRlclZpZXcpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAKaW5kZXggZTk5MGRjYzljNGFhMDI5MTdkOTNhNzA2ZThlNzYzNmU5Mzdk
NjYwNC4uMTI2NDIxZGYzNGE2ZTBiMjU5MDAzY2IxNWYzMTEwYTFiZmIyMzA5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcApAQCAtMzc2LDcgKzM3Niw3IEBAIFBhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluCiAK
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCog
cGx1Z2luV2lkZ2V0KQogewotICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZp
ZXcqPihwbHVnaW5XaWRnZXQpOworICAgIG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVn
aW5XaWRnZXQpOwogICAgIGlmIChwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3Bv
bnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBjZjlhYzRiZjc2
NjFjODE3ZGY0NDFkNjYyMDc3N2Q1OGE2NDVjNDM4Li5hNDdkYzA3ZDIxOWU3MDk0NzkyZmEyYjk0
YjA3ODk3MTAzNTdjNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC01NTIsNyArNTUyLDcgQEAg
UGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW5nJgogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVj
dERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKIHsKLSAgICBtX3BsdWdpblZpZXcg
PSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKKyAgICBtX3BsdWdpblZp
ZXcgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAgICBpZiAocGx1Z2luV2lkZ2V0KQog
ICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5vZGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5vZGUubW0KaW5kZXggMjM5MmI5OWY2ZGMyMDY0OGM4
YjM4YjRlNzdkYmMzZjM1NDE2OTAxOS4uYTE4MGVlZWFkNmIzODU0NmQ5ZmI2MDU4MTEyZTEwNzAw
OGU2NTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJO
b2RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTm9kZS5tbQpA
QCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgV2ViUmVuZGVyTm9kZSAqY29weVJlbmRlck5vZGUoUmVu
ZGVyT2JqZWN0KiBub2RlKQogICAgIAogICAgIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0ID0g
bm9kZS0+aXNXaWRnZXQoKSA/IHRvUmVuZGVyV2lkZ2V0KG5vZGUpIDogMDsKICAgICBXaWRnZXQq
IHdpZGdldCA9IHJlbmRlcldpZGdldCA/IHJlbmRlcldpZGdldC0+d2lkZ2V0KCkgOiAwOwotICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gd2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSA/
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCkgOiAwOworICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gd2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSA/IHRvRnJhbWVWaWV3KHdp
ZGdldCkgOiAwOwogICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lVmlldyA/IGZyYW1lVmlldy0+ZnJh
bWUoKSA6IDA7CiAKICAgICAvLyBGSVhNRTogYnJva2VuIHdpdGggdHJhbnNmb3JtcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDc2Mjc1NmUwNGVkOTQwMzNlYzE2NDMxNzQ3
MTE1ZDMwMDRiOGNiYjEuLjNmMzgxY2QwZjYwMzEyMDA4ZjAzZTA2MTQwM2FhMjFjNTU2MTQzN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIwOTIsNyArMjA5Miw3IEBA
IHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAgICBmb3IgKEhhc2hT
ZXQ8UmVmUHRyPFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjaGlsZHJlbi0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gKCppdCkuZ2V0
KCk7CiAgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIFtz
ZWxmIF9hZGRTY3JvbGxlckRhc2hib2FyZFJlZ2lvbnNGb3JGcmFtZVZpZXc6c3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4od2lkZ2V0KSBkYXNoYm9hcmRSZWdpb25zOnJlZ2lvbnNdOworICAgICAgICAg
ICAgW3NlbGYgX2FkZFNjcm9sbGVyRGFzaGJvYXJkUmVnaW9uc0ZvckZyYW1lVmlldzp0b0ZyYW1l
Vmlldyh3aWRnZXQpIGRhc2hib2FyZFJlZ2lvbnM6cmVnaW9uc107CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwZTYyMjhkZTdmYmJhMDI1Y2Mw
ZWVkNmRiYjJlOGFkNjIwM2IyNmZlLi45OTkxZDg1M2ZjNDE2MWUyNGYzZTYxNzhkNTAxY2RiZmNm
YzJiNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0MjMsNyArMTQyMyw3IEBAIHB1YmxpYzoKICAg
ICAgICAgUVJlY3QgY2xpcFJlY3Q7CiAgICAgICAgIGlmIChwYXJlbnRTY3JvbGxWaWV3KSB7CiAg
ICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihwYXJlbnRTY3JvbGxW
aWV3LT5pc0ZyYW1lVmlldygpKTsKLSAgICAgICAgICAgIGNsaXBSZWN0ID0gc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyktPndpbmRvd0NsaXBSZWN0KCk7CisgICAgICAg
ICAgICBjbGlwUmVjdCA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpLT53aW5kb3dDbGlw
UmVjdCgpOwogICAgICAgICAgICAgY2xpcFJlY3QudHJhbnNsYXRlKC13aW5kb3dSZWN0LngoKSwg
LXdpbmRvd1JlY3QueSgpKTsKICAgICAgICAgfQogICAgICAgICB3aWRnZXQtPnNldEdlb21ldHJ5
QW5kQ2xpcCh3aW5kb3dSZWN0LCBjbGlwUmVjdCwgaXNWaXNpYmxlKCkpOwpAQCAtMTU1MSw3ICsx
NTUxLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBs
dWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewotICAgIG1f
cGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOworICAg
IG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVnaW5XaWRnZXQpOwogICAgIGlmIChwbHVn
aW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L0VtYmVkZGVkV2lk
Z2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L0VtYmVkZGVkV2lkZ2V0
LmNwcAppbmRleCAwMDQ0MjI5MWM2MjM1MzA0NjVjZDA4Y2JiOTAwMzk1NmI3MDJhNjQ0Li42MmQw
YjllODI5YmIxYjQwMzQ1ZWMyMzNhZjEzNGNmNjM2ZDNjODlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9FbWJlZGRlZFdpZGdldC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvRW1iZWRkZWRXaWRnZXQuY3BwCkBAIC05NCw3ICs5
NCw3IEBAIHZvaWQgRW1iZWRkZWRXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2VkKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICBGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsKKyAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKIAogICAgIElu
dFJlY3Qgb2xkV2luZG93UmVjdCA9IG1fd2luZG93UmVjdDsKICAgICBJbnRSZWN0IG9sZENsaXBS
ZWN0ID0gbV9jbGlwUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBkNGJlYmI2MmNlNTA2N2Fi
YWE5ZGJhMmE4YzJkZTJiOThmMDQ0N2QwLi4xMzMyZTRlNWE3MDg5YmFhYzlmYzg3NTZjZTJmMTBm
NmVhM2EwYWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04ODMsNyArODgzLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5X
aWRnZXQpCiB7CiAgICAgLy8gSWRlYWxseSwgdGhpcyBmdW5jdGlvbiBzaG91bGRuJ3QgYmUgbmVj
ZXNzYXJ5LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzQ4NTI4ODk+CiAgICAgaWYgKCFwbHVnaW5XaWRn
ZXQgfHwgcGx1Z2luV2lkZ2V0LT5pc1BsdWdpblZpZXcoKSkKLSAgICAgICAgbV9tYW51YWxMb2Fk
ZXIgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKKyAgICAgICAgbV9t
YW51YWxMb2FkZXIgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAgICBlbHNlIAogICAg
ICAgICBtX21hbnVhbExvYWRlciA9IHN0YXRpY19jYXN0PEVtYmVkZGVkV2lkZ2V0Kj4ocGx1Z2lu
V2lkZ2V0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDU0MDEyMzY5MTAyNTY4
NDUyNTNjNmQ4ODU1MjA1NDAyZjE2ZTI4YjIuLjI3YzQ3MDQ1MGM2NTk0MTJlNjUyNTZmYzJkZDU1
ZDY0MWNmNDhhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMTc0LDcgKzE3NCw3
IEBAIFBhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmNyZWF0ZUZyYW1l
KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5D
RTo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAgbV9w
bHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7CisgICAg
bV9wbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdldCk7CiAgICAgaWYgKHBsdWdp
bldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guY3BwCmluZGV4IDQ5MWYzNGVlOWFkZmFiNWUyMjAyMjVkN2I1MTM5NGE1NDhlYWZlMjMu
LjlhY2YwMjkwZWRlMDFlNGY1MjhjYjQ0NTAxYWUzNGIyMmQ4ZjBmMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAK
QEAgLTg5OCw3ICs4OTgsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRX
eDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxQbAogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50V3g6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0
KQogewotICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5X
aWRnZXQpOworICAgIG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVnaW5XaWRnZXQpOwog
ICAgIGlmIChwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4g
PSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKaW5k
ZXggYjcyZmYwNDljMjJlN2QzZjg4Nzk3YTM2NDExNmE4MDQwYjVlZDIzZS4uMGQ2NzY5NjVmMWEx
ZDY0OWJmYTdmYjY2YjU2NGUyZjEyNmU1NjVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlJlbmRlck9iamVjdC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBXZWJSZW5kZXJPYmplY3Q6Oldl
YlJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBib29sIHNob3VsZEluY2x1ZGVE
ZXNjZQogICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4od2lkZ2V0KTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdp
ZGdldCk7CiAgICAgaWYgKFJlbmRlclZpZXcqIGNvcmVDb250ZW50UmVuZGVyZXIgPSBmcmFtZVZp
ZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpKSB7CiAgICAgICAgIFJlZlB0cjxXZWJSZW5k
ZXJPYmplY3Q+IGNvbnRlbnRSZW5kZXJlciA9IGFkb3B0UmVmKG5ldyBXZWJSZW5kZXJPYmplY3Qo
Y29yZUNvbnRlbnRSZW5kZXJlciwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKSk7CiAgICAgICAg
IG1fY2hpbGRyZW4tPmFwcGVuZChjb250ZW50UmVuZGVyZXIuZ2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193324</attachid>
            <date>2013-03-15 09:42:47 -0700</date>
            <delta_ts>2013-03-15 09:55:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112401-20130315093842.patch</filename>
            <type>text/plain</type>
            <size>99407</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiYTI4YTE1OGRiNzhj
ZjI1OTM1OGQzNDAzOWI0NGI2NjI3Yzc3ZC4uYjQ1OTkyNGJjODA5ZTkyOTM1ZDZkZTY0OWU4NzJi
ZGYyMGUyMGNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4OCBAQAorMjAxMy0wMy0xNSAgQWJo
aXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3Rh
dGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJl
ZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRv
IGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvclBvaW50KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJBcmVhT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpkb2N1bWVudEZyYW1lVmll
dyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRP
YmplY3RJZkV4aXN0cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVj
dENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0
RnJvbVBsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpz
ZXRKYXZhU2NyaXB0UGF1c2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlw
dEluc3RhbmNlRm9yV2lkZ2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRh
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnN1YmZyYW1lRm9yVGFyZ2V0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdldCk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZnJhbWVGb3JXaWRnZXQpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFt
ZVZpZXdDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0N1c3RvbVNj
cm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWlu
aW5nVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZW1vdmVDaGlsZCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRnJhbWVWaWV3
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpjb2xsZWN0UGx1Z2luVmlld3MpOgorICAgICAgICAqIHBhZ2UvY2hy
b21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVu
dEhhbmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hl
ZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBh
Z2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGlu
YXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKiBwYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
YXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3d4L0V2ZW50SGFuZGxlcld4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dp
ZGdldCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29y
ZTo6dG9TY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmlzU2Nyb2xsVmll
d1Njcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om1vdXNlVXApOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpheE9iamVjdENhY2hlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6aXNTY3JvbGxWaWV3KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtU2NyZWVuQmxhY2tCZXJyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1VzZXJTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNldFBhcmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3VwcG9ydDo6cGx1Z2luU2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgICog
cGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQbHVn
aW5PY2NsdXNpb25zKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGx1Z2luVmlldyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3QmFz
ZTo6aXNQbHVnaW5WaWV3QmFzZSk6CisgICAgICAgIChQbHVnaW5WaWV3QmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjp0b1BsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsdWdpbnMvYmxhY2tiZXJyeS9OUENhbGxiYWNrc0JsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0VmlzaWJsZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OmNsZWFyVmlz
aWJsZVJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3dLZXlib2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpyZXF1ZXN0RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpleGl0RnVsbFNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpyZXF1ZXN0Q2VudGVyRml0Wm9vbSk6CisgICAgICAg
IChXZWJDb3JlOjpsb2NrT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2NrT3Jp
ZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6cHJldmVudElkbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6bG9ja0JhY2tCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2NrQmFja0J1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpsb2NrUmVhZEZyb250QnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OnVubG9ja1JlYWRGcm9udEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpzd2FwQnVm
ZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVCdWZmZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlc3Ryb3lCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2l6ZUJ1ZmZlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SG9sZVB1bmNoKToKKyAgICAgICAgKiBwbHVnaW5zL2JsYWNr
YmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnVwZGF0ZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVTY3JvbGxFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpjYWxjdWxhdGVDbGlwUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVGdWxsU2NyZWVuQWxsb3dlZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZ1bGxTY3JlZW5FeGl0RXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0UGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
dWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6cGxhdGZvcm1HZXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVz
dHJveSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRCYWNrZ3JvdW5kUGxheSk6
CisgICAgICAgICogcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6c2V0VmlzaWJsZVJl
Y3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjpzaG93S2V5Ym9hcmQp
OgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1ByaXZhdGU6OnJlcXVlc3RGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjpyZXF1ZXN0Q2VudGVyRml0
Wm9vbSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6bG9ja09yaWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2YXRlOjp1bmxvY2tPcmllbnRh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6cHJldmVudElkbGUp
OgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKiBwbHVnaW5z
L21hYy9QbHVnaW5WaWV3TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxh
dGZvcm1TdGFydCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAg
KiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwYWludEludG9UcmFuc2Zvcm1lZENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6cGFpbnRXaW5kb3dlZFBsdWdpbkludG9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRs
ZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dS
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNuYXBzaG90KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
YWRkTGF5b3V0T3ZlcmZsb3cpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6YWxsb3dz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6dmlld0NsZWFyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRP
YmplY3Q6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpzY3JvbGwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgor
ICAgICAgICAoV2ViQ29yZTo6dG9SZW5kZXJGbGV4aWJsZUJveCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRnJhbWU6OnZpZXdDbGVhcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RnJhbWVCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lQmFzZTo6bGF5b3V0
V2l0aEZsYXR0ZW5pbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpjb250ZW50Um9vdFJlbmRlcmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklGcmFtZTo6bGF5b3V0U2VhbWxlc3NseSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvdWxkUHJvcGFnYXRlQ29tcG9zaXRpbmdU
b0VuY2xvc2luZ0ZyYW1lKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydDo6ZW1iZWRkZWRDb250ZW50Qm94KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhcnQ6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyUnVieS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydWJ5QmVmb3JlQmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6cnVieUFmdGVyQmxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6bGFzdFJ1YnlSdW4pOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFJ1YnlSdW5QYXJlbnQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OndyaXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJXaWRnZXQ6OnNldE92ZXJsYXBUZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6dXBkYXRlV2lkZ2V0UG9zaXRpb24pOgorCiAyMDEzLTAzLTE0ICBB
bGJlcnRvIEdhcmNpYSAgPGFnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJy
eV0gR3JhZGllbnQ6IGRvbid0IHVzZSB0aGUgZGVmYXVsdCBzZXRQbGF0Zm9ybUdyYWRpZW50U3Bh
Y2VUcmFuc2Zvcm0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggNWY2YjM3Y2Y3
MjQ1YzA2MjZlYWE0M2JlYzE1MjBiZGU4ZjVhNzg0ZS4uNTU0NTJlYjNlMzUwZDkyNmQ5MjQzM2U0
MjMxNDYyNjM0ZDlhMTAwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rp
b25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEy
NDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8q
IGhlbHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNp
bmNlIHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0
ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpmcmFtZUZvck5vZGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpuZWVkc0xheW91dFJlY3Vyc2l2ZSk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoKKyAgICAgICAgKEJsYWNrQmVy
cnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjplbnN1cmVGb2N1c1BsdWdpbkVsZW1lbnRWaXNpYmxl
KToKKwogMjAxMy0wMy0xNCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDViYjY0NWJjYWY2YWE5OWY0YzY3OTFjMDBh
MWUyZjM2ZjI0M2IzNWQuLmIxMGJjN2QxMmQ4Y2NkYTUwMzBmOTYyYmRmYTRiMDkzMGU1Mzc0YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDMtMTUg
IEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNl
IHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMgYXJl
IHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAgaGVs
cCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJl
LgorCisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzY3JvbGxSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0V2FudHNXaGVlbEV2ZW50cyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZU1vdXNlRXZlbnQpOgor
ICAgICAgICAqIHRlc3RzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VEVTVF9GKToKKwogMjAxMy0wMy0xNCAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBD
aHJvbWl1bSBERVBTIHRvIHIxODgwMDQuICBSZXF1ZXN0ZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRl
eCA1YmMxNGFjNzM5ZDhhNmRlNmQ1ZGJiNDgxMmNjMTkwZDhlNWE5ODAxLi5lYTEyN2NkNWIxODRj
ZDRiNTQyNmY5ODg1NzY2Y2U5OWUwM2Q4OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8qIGhl
bHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNl
IHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0
aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6
OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKwogMjAxMy0wMy0xNCAgSm9uYXRoYW4gTGl1ICA8bmV0
MTQ3QGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggZGV0ZWN0aW9uIG9mIEludGVsIE1hYyBPUyBY
IHBsYXRmb3JtIG9uIEludGVsIE1hYyA2NC1iaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5MDlhYjE4
Nzg2ODEzZGZjZTFmYjkyODc4MDhmZjI4NjQ4ZTE4YjBjLi43OGQ3N2NlYmU1MzY1NzIwMWNiYTI3
ODNmZDNmYzFiZTcxZGY0NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5j
dGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAg
ICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJh
c3RydWN0dXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRh
VG9QbHVnaW4pOgorCiAyMDEzLTAzLTE0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1
bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzMDdjOGUzMjI1M2VkOTk4M2Q3YjNjMzU0Yjlk
YTdlMTBmZWViZmI2Li4zOGY2NWI2NTkxMzhlMzczYTcwYTgxODdmNTYyODZkOGI5ODQ3MjBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFy
eWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0
cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBv
dmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBi
YWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAg
ICogV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1tOgorICAgICAgICAoY29weVJlbmRlck5vZGUpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfYWRkU2Ny
b2xsZXJEYXNoYm9hcmRSZWdpb25zRm9yRnJhbWVWaWV3OmRhc2hib2FyZFJlZ2lvbnM6XSk6CisK
IDIwMTMtMDMtMTQgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCBhZTVjZTBmNzc2NWE1YWY5OWQ3YTRjZDQ2NDc3OWIxNTE5MDlhMWUxLi4z
NTczODcyMGZjZmFlNTJjZDY2N2VmMGYyY2I2YjMwZWRkMDdlY2IzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVy
IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMjQwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHRvKiBoZWxwZXIgZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBj
YWxscyBzaW5jZSB0aGV5CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBv
biB0aGUgdGVzdGluZyBpbmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRRdDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorCiAyMDEzLTAzLTE0ICBSaWsgQ2FiYW5p
ZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CiAKICAgICAgICAgW1F0XVtXSzFdIFJFR1JFU1NJT04o
cjE0NTc4NCk6IEJsZW5kIHRlc3RzIGFyZSBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNWFl
Zjk2YTRmOGEzNDdmZjdlYjk0ZmFiZjk2MmJmZWE5N2Q5YzEwNi4uY2RkMzgyMmU0NGZiMzc5ZjI5
NjBiY2M4MWQzZjYyMDBkZTQxOGZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEzLTAzLTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjQwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRvKiBoZWxwZXIg
ZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5
CisgICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBp
bmZyYXN0cnVjdHVyZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VtYmVkZGVkV2lkZ2V0
LmNwcDoKKyAgICAgICAgKEVtYmVkZGVkV2lkZ2V0OjpmcmFtZVJlY3RzQ2hhbmdlZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKwogMjAxMy0wMy0x
NCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+
CiAKICAgICAgICAgTW92ZSBwbGF0Zm9ybS1zcGVjaWZpYyB0eXBlZGVmcyB0byBQbGF0Zm9ybU1l
bnVEZXNjcmlwdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmExOThhNDI0ZTg4YmEw
MzVlNzQ4NmMyMGMwMWY3NzY5MzM0YzkuLmI3YzE2OWQ3NDIzNmFhMmVjMjFiOWQ0MDY3ZTA5ZTY3
ZjdiYTFjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMt
MTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBs
YWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMg
YXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAg
aGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0
dXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OnJlZGlyZWN0RGF0
YVRvUGx1Z2luKToKKwogMjAxMy0wMi0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBEaXNhYmxlIGRlbGV0ZSBidXR0b24gY29udHJvbGxlciBvbiBub24tTWFj
IHBvcnRzIGFuZCBkZWxldGUgRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nCmluZGV4IDFmMGEwZDAyOGM3YjZhYjVjMTU1MDliZTc2ZDNkODNhNTlkM2Yz
NGUuLjg3MjY3MjExY2QxYTYxZjI3YTA4MmJjODI0NzA3OTNjZDk4NzI2NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5v
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBo
ZWxwZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19j
YXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFz
aWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50V3g6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKwogMjAxMy0wMy0xNCAgSm9uYXRo
YW4gTGl1ICA8bmV0MTQ3QGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggZGV0ZWN0aW9uIG9mIElu
dGVsIE1hYyBPUyBYIHBsYXRmb3JtIG9uIEludGVsIE1hYyA2NC1iaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAy
MjE0MGU5ZWVlMGJmOTViYWZiZjUyMzNmOTM3Mzc3MjQ4YWYyNjQzLi5jZWQ5NTYyZDBhNzNmNDIw
Y2EzZGRkYmNiODVkNjc2MTg1ODViYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5j
dGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAg
ICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJh
c3RydWN0dXJlLgorCisgICAgICAgICogU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlbmRlck9iamVjdDo6V2ViUmVuZGVyT2JqZWN0KToKKwogMjAxMy0w
My0xNCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
cGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCA3OWI5YmI5MWU0ODdiYjdmMWE1YzVhY2JkZmMzMTY1NzA1YTc2ZTY3Li4wM2NkM2QzNzUxYmQy
N2UxYWMyODkyZGQ0NGUxMTM0OWU0MWUxNjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTM5OSw3ICszOTksNyBA
QCBzdGF0aWMgdm9pZCBhcHBlbmRBY2Nlc3NpYmlsaXR5T2JqZWN0KEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iamVjdCwgQWNjZXNzaWJpbGl0eQogICAgICAgICBpZiAoIXdpZGdldCB8fCAhd2lkZ2V0
LT5pc0ZyYW1lVmlldygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICAgICAg
RG9jdW1lbnQqIGRvYyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCkt
PmRvY3VtZW50KCk7CisgICAgICAgIERvY3VtZW50KiBkb2MgPSB0b0ZyYW1lVmlldyh3aWRnZXQp
LT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoIWRvYyB8fCAhZG9jLT5yZW5kZXJl
cigpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDU2YWU1ZGZmNDYyYjBhYjk2NGJmNDBlY2JlYWRmMWYzOWI2MTY3ZjEuLmE2MzczZDY5YzQy
YWQyZGE0ZDI3ZjhjZTcyYmJlNjdmNzNlNWZhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAt
MjAxMywxMSArMjAxMywxMSBAQCBWaXNpYmxlUG9zaXRpb24gQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50UG9pbgogICAgICAgICBXaWRn
ZXQqIHdpZGdldCA9IHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKS0+d2lkZ2V0KCk7CiAgICAgICAg
IGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0
KS0+ZnJhbWUoKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gdG9GcmFtZVZpZXcod2lkZ2V0KS0+
ZnJhbWUoKTsKICAgICAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICByZW5kZXJWaWV3ID0gZnJhbWUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKTsKLSAgICAgICAg
ZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KTsKKyAgICAgICAgZnJh
bWVWaWV3ID0gdG9GcmFtZVZpZXcod2lkZ2V0KTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIGlu
bmVyTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChwb2ludFJlc3VsdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxW
aWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9s
bFZpZXcuY3BwCmluZGV4IDE5YjQ0ODJlYzgzYzZiMDlmNmRmMjVjY2Q3ZDkxOGVjZjNjMGYxMGUu
LjI2ZmY2MmZjMGUxNWRkMjQyMDQ3NGVlMmE1NzE0YjlmMTk4ZDVkM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcu
Y3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0
eVNjcm9sbFZpZXc6OndlYkFyZWFPYmplY3QoKSBjb25zdAogICAgIGlmICghbV9zY3JvbGxWaWV3
IHx8ICFtX3Njcm9sbFZpZXctPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IAotICAgIERvY3VtZW50KiBkb2MgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3Njcm9sbFZp
ZXcpLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIERvY3VtZW50KiBkb2MgPSB0b0ZyYW1lVmll
dyhtX3Njcm9sbFZpZXcpLT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jIHx8ICFk
b2MtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yMDQsNyArMjA0LDcgQEAg
RnJhbWVWaWV3KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6ZG9jdW1lbnRGcmFtZVZpZXcoKSBj
b25zdAogICAgIGlmICghbV9zY3JvbGxWaWV3IHx8ICFtX3Njcm9sbFZpZXctPmlzRnJhbWVWaWV3
KCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPihtX3Njcm9sbFZpZXcpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyhtX3Njcm9sbFZp
ZXcpOwogfSAgICAKIAogQWNjZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZp
ZXc6OnBhcmVudE9iamVjdCgpIGNvbnN0CkBAIC0yMTIsNyArMjEyLDcgQEAgQWNjZXNzaWJpbGl0
eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnBhcmVudE9iamVjdCgpIGNvbnN0CiAg
ICAgaWYgKCFtX3Njcm9sbFZpZXcgfHwgIW1fc2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPm93bmVyRWxl
bWVudCgpOworICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSB0b0ZyYW1lVmlldyht
X3Njcm9sbFZpZXcpLT5mcmFtZSgpLT5vd25lckVsZW1lbnQoKTsKICAgICBpZiAob3duZXIgJiYg
b3duZXItPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldE9y
Q3JlYXRlKG93bmVyKTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0CiAg
ICAgaWYgKCFtX3Njcm9sbFZpZXcgfHwgIW1fc2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lciA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPm93bmVyRWxl
bWVudCgpOworICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXIgPSB0b0ZyYW1lVmlldyht
X3Njcm9sbFZpZXcpLT5mcmFtZSgpLT5vd25lckVsZW1lbnQoKTsKICAgICBpZiAob3duZXIgJiYg
b3duZXItPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldChv
d25lcik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2No
cm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKaW5kZXggZjY4YTU5MTgy
MzIyYmU2MDhhMmJkNTQ4ZWY4ZjUyNDk4N2NlNDkyMi4uZjJiZDdmMDMwNDVlOGZlNDI0Y2U4OTg3
MWFkM2M0ZjczMTc5MDNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcApAQCAtNjAs
NyArNjAsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgICAgICBTY3JvbGxiYXIqIHNj
cm9sbEJhciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIqPihvYmopLT5zY3Jv
bGxiYXIoKTsKICAgICAgICAgaWYgKCFzY3JvbGxCYXIgfHwgIXNjcm9sbEJhci0+cGFyZW50KCkg
fHwgIXNjcm9sbEJhci0+cGFyZW50KCktPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KHNjcm9sbEJhci0+cGFyZW50KCkpLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSB0b0ZyYW1lVmlldyhzY3JvbGxCYXItPnBhcmVudCgpKS0+ZnJhbWUo
KS0+ZG9jdW1lbnQoKTsKICAgICAgICAgaWYgKGRvY3VtZW50ICE9IGRvY3VtZW50LT50b3BEb2N1
bWVudCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBvYmogPSBnZXQoZG9jdW1lbnQt
PnJlbmRlcmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggNmYxNjZhYzlkN2I1N2U4NmYzZjU0OTJi
OWRhM2U4ZGI0ZjhhNGI0Zi4uNjlkMzMwOWYxZDM0Nzg2ZTkxZDcxMDRjZmM0NzdjZDkxM2Y0NGI5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50
RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBKU09iamVjdCogcGx1
Z2luU2NyaXB0T2JqZWN0RnJvbVBsdWdpblZpZXdCYXNlKEhUTUxQbHVnSW5FbGVtZW50KiBwbHVn
aW5FCiAgICAgaWYgKCFwbHVnaW5XaWRnZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSBzdGF0aWNf
Y2FzdDxQbHVnaW5WaWV3QmFzZSo+KHBsdWdpbldpZGdldCk7CisgICAgUGx1Z2luVmlld0Jhc2Uq
IHBsdWdpblZpZXdCYXNlID0gdG9QbHVnaW5WaWV3QmFzZShwbHVnaW5XaWRnZXQpOwogICAgIHJl
dHVybiBwbHVnaW5WaWV3QmFzZS0+c2NyaXB0T2JqZWN0KGdsb2JhbE9iamVjdCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIu
Y3BwCmluZGV4IDZmMGJjMmNkMmQxODhkYTBkNTE3NGUyZGM1ZTNmMDM4MDlkMWVhMzQuLjU2OGFl
NDNlMDhmMDc3NDFjMTBiMGVjZmRhZThjYTkwMmQzNmQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMjI2LDcg
KzIyNiw3IEBAIHZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpzZXRKYXZhU2NyaXB0UGF1c2Vk
KEZyYW1lVmlldyogdmlldywgYm9vbCBwYXVzZWQpCiAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0g
KCppdCkuZ2V0KCk7CiAgICAgICAgIGlmICghd2lkZ2V0LT5pc1BsdWdpblZpZXcoKSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lkZ2V0
KS0+c2V0SmF2YVNjcmlwdFBhdXNlZChwYXVzZWQpOworICAgICAgICB0b1BsdWdpblZpZXcod2lk
Z2V0KS0+c2V0SmF2YVNjcmlwdFBhdXNlZChwYXVzZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAxMGVjOTRh
MTI4NjViZDhkZjc5OWM4OTZkNmY4ZTkxZWRhZTE4YTBhLi5hZmE5NTY4OWZiZjMzN2FiNmNlOTU4
YzYwZTU2OGY3ZWQyZmM4ZWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIFBhc3NSZWZQdHI8SlNDOjpC
aW5kaW5nczo6SW5zdGFuY2U+IFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlwdEluc3RhbmNl
Rm9yV2lkCiAgICAgaWYgKCF3aWRnZXQtPmlzUGx1Z2luVmlldygpKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lkZ2V0KS0+YmluZGlu
Z0luc3RhbmNlKCk7CisgICAgcmV0dXJuIHRvUGx1Z2luVmlldyh3aWRnZXQpLT5iaW5kaW5nSW5z
dGFuY2UoKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlclF0LmNwcAppbmRleCAxNGU4OTQyNTYwNmJhNjE5NzhlMjViOWFlNWY3
NjdmOGQ5NjJmMWUyLi5kZjk4MzJmYjEwZTk0ODE0NzlkYTg1YjYzNDk3MTRjYzgwMmY0NDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyUXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJRdC5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUGFzc1JlZlB0cjxKU0M6
OkJpbmRpbmdzOjpJbnN0YW5jZT4gU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2NyaXB0SW5zdGFu
Y2VGb3JXaWRnZXQoV2ViQ29yZTo6V2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgaWYgKHdpZGdldC0+
aXNQbHVnaW5WaWV3KCkpIHsKLSAgICAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IHN0YXRp
Y19jYXN0PFBsdWdpblZpZXcqPih3aWRnZXQpOworICAgICAgICBQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3ID0gdG9QbHVnaW5WaWV3KHdpZGdldCk7CiAgICAgICAgIHJldHVybiBwbHVnaW5WaWV3LT5i
aW5kaW5nSW5zdGFuY2UoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMzMwN2QxMzMwYjM3ZjljYzIyMThjNmJmOTYy
N2M5N2NjZDA1NzQxZS4uYmZiODM0MWY2MzdlNjA0NTU3YmVkMjg1NjgyZjk3N2Y0MTNmMzhjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTUyNiw3ICs1MjYsNyBAQCBQYXNzU2NyaXB0SW5zdGFuY2UgU2NyaXB0Q29udHJvbGxlcjo6
Y3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQoV2lkZ2V0KiB3aWRnZQogICAgIGlmICghd2lk
Z2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgTlBPYmpl
Y3QqIG5wT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPih3aWRnZXQpLT5zY3Jp
cHRhYmxlT2JqZWN0KCk7CisgICAgTlBPYmplY3QqIG5wT2JqZWN0ID0gdG9QbHVnaW5WaWV3QmFz
ZSh3aWRnZXQpLT5zY3JpcHRhYmxlT2JqZWN0KCk7CiAKICAgICBpZiAoIW5wT2JqZWN0KQogICAg
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
aW5kZXggY2Q3MmEwMzc5MGRkNGQ2MTIxOGRiZDEwN2M3NTI0Nzc0ODZlYmQ2ZC4uMWNhYTIxYzc2
MjgxNzhlMDg5NzFiMmFmN2Q4YWMxMTBlMmNlYmE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTUwMiw3ICs1MDIsNyBAQCBib29sIEhUTUxPYmplY3RF
bGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sKQogICAg
IGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIFN0cmluZyB2YWx1ZTsKLSAgICBpZiAoIXN0YXRpY19jYXN0PFBsdWdp
blZpZXdCYXNlKj4od2lkZ2V0KS0+Z2V0Rm9ybVZhbHVlKHZhbHVlKSkKKyAgICBpZiAoIXRvUGx1
Z2luVmlld0Jhc2Uod2lkZ2V0KS0+Z2V0Rm9ybVZhbHVlKHZhbHVlKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGVuY29kaW5nLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZSk7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggZmYxNDQ5NzRi
Y2IyNTZiYTA1OThlMDliZjYyYmY1MGFlOGQzM2FmMS4uZDQ2OTAxMTQ4OGYwYzRmMzAyYjg1ODU0
NzE5YWQyNGUyMjg2N2M1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAt
MTE3Niw3ICsxMTc2LDcgQEAgRnJhbWUqIEV2ZW50SGFuZGxlcjo6c3ViZnJhbWVGb3JUYXJnZXRO
b2RlKE5vZGUqIG5vZGUpCiAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXco
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4od2lkZ2V0KS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJh
bWUoKTsKIH0KIAogc3RhdGljIGJvb2wgaXNTdWJtaXRJbWFnZShOb2RlKiBub2RlKQpAQCAtMjY1
NSw3ICsyNjU1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdl
dChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUUKICAgICBpZiAoIXdpZGdldC0+
aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5k
bGVHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2ZW50KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lk
Z2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChnZXN0dXJl
RXZlbnQpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc0dlc3R1cmVFdmVudFRvV2lkZ2V0
SWZQb3NzaWJsZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50LCBSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA3ZTcwZmI1MGEzNmE1
OGQzOGNlMTA3NzY0NTlhODAzYWYxNmZmMGI4Li44ODU5ZGMwNTFhYzdjMjM3ZThjNGZhZTBmOGQz
NzU1NzcxYjk0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjM0LDcgKzYzNCw3IEBAIEZy
YW1lKiBGcmFtZTo6ZnJhbWVGb3JXaWRnZXQoY29uc3QgV2lkZ2V0KiB3aWRnZXQpCiAgICAgLy8g
QXNzdW1lIGFsbCB3aWRnZXRzIGFyZSBlaXRoZXIgYSBGcmFtZVZpZXcgb3Igb3duZWQgYnkgYSBS
ZW5kZXJXaWRnZXQuCiAgICAgLy8gRklYTUU6IFRoYXQgYXNzdW1wdGlvbiBpcyBub3QgcmlnaHQg
Zm9yIHNjcm9sbCBiYXJzIQogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHdp
ZGdldC0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEZyYW1l
Vmlldyo+KHdpZGdldCktPmZyYW1lKCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCkt
PmZyYW1lKCk7CiB9CiAKIHZvaWQgRnJhbWU6OmNsZWFyVGltZXJzKEZyYW1lVmlldyAqdmlldywg
RG9jdW1lbnQgKmRvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDI0Mzcx
YmM0ZTk1YTJkNmRmOGEyZmMwOWYzZmQ5ZTk0ZTRiY2JmZTQuLjYzNTZkYmI2Y2I1NjRlNmQyN2Ex
YThlY2QwMzI4MDQzMjQ0YjQ1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMw
NiwxMSArMzA2LDYgQEAgdm9pZCBGcmFtZVZpZXc6OnJlbW92ZUZyb21BWE9iamVjdENhY2hlKCkK
ICAgICAgICAgYXhPYmplY3RDYWNoZSgpLT5yZW1vdmUodGhpcyk7CiB9CiAKLWJvb2wgRnJhbWVW
aWV3Ojppc0ZyYW1lVmlldygpIGNvbnN0Ci17IAotICAgIHJldHVybiB0cnVlOyAKLX0KLQogdm9p
ZCBGcmFtZVZpZXc6OmNsZWFyRnJhbWUoKQogewogICAgIG1fZnJhbWUgPSAwOwpAQCAtMTA0Miw3
ICsxMDM3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGNvbGxlY3RGcmFtZVZpZXdDaGlsZHJlbihG
cmFtZVZpZXcqIGZyYW1lVmlldywgVmVjdG9yPFJlZlB0cjwKICAgICBmb3IgKEhhc2hTZXQ8UmVm
UHRyPFdpZGdldD4gPjo6aXRlcmF0b3IgY3VycmVudCA9IHZpZXdDaGlsZHJlbi0+YmVnaW4oKTsg
Y3VycmVudCAhPSBlbmQ7ICsrY3VycmVudCkgewogICAgICAgICBXaWRnZXQqIHdpZGdldCA9ICgq
Y3VycmVudCkuZ2V0KCk7CiAgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCi0gICAg
ICAgICAgICBmcmFtZVZpZXdzLmFwcGVuZChzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQp
KTsKKyAgICAgICAgICAgIGZyYW1lVmlld3MuYXBwZW5kKHRvRnJhbWVWaWV3KHdpZGdldCkpOwog
ICAgIH0KIH0KIApAQCAtMzIzOCw3ICszMjMzLDcgQEAgYm9vbCBGcmFtZVZpZXc6Omhhc0N1c3Rv
bVNjcm9sbGJhcnMoKSBjb25zdAogICAgIGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpj
b25zdF9pdGVyYXRvciBjdXJyZW50ID0gdmlld0NoaWxkcmVuLT5iZWdpbigpOyBjdXJyZW50ICE9
IGVuZDsgKytjdXJyZW50KSB7CiAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gY3VycmVudC0+Z2V0
KCk7CiAgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIGlm
IChzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5oYXNDdXN0b21TY3JvbGxiYXJzKCkp
CisgICAgICAgICAgICBpZiAodG9GcmFtZVZpZXcod2lkZ2V0KS0+aGFzQ3VzdG9tU2Nyb2xsYmFy
cygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9IGVsc2UgaWYgKHdp
ZGdldC0+aXNTY3JvbGxiYXIoKSkgewogICAgICAgICAgICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIg
PSBzdGF0aWNfY2FzdDxTY3JvbGxiYXIqPih3aWRnZXQpOwpAQCAtMzcyMCw3ICszNzE1LDcgQEAg
SW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IEludFJlY3Qm
IGxvY2FsUmVjdCkgY29uc3QKIHsKICAgICBpZiAoY29uc3QgU2Nyb2xsVmlldyogcGFyZW50U2Ny
b2xsVmlldyA9IHBhcmVudCgpKSB7CiAgICAgICAgIGlmIChwYXJlbnRTY3JvbGxWaWV3LT5pc0Zy
YW1lVmlldygpKSB7Ci0gICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSBz
dGF0aWNfY2FzdDxjb25zdCBGcmFtZVZpZXcqPihwYXJlbnRTY3JvbGxWaWV3KTsKKyAgICAgICAg
ICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9s
bFZpZXcpOwogICAgICAgICAgICAgLy8gR2V0IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZp
ZXcKICAgICAgICAgICAgIFJlbmRlclBhcnQqIHJlbmRlcmVyID0gbV9mcmFtZS0+b3duZXJSZW5k
ZXJlcigpOwogICAgICAgICAgICAgaWYgKCFyZW5kZXJlcikKQEAgLTM3NDMsNyArMzczOCw3IEBA
IEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFJl
Y3QmIHBhcmVudFJlY3QpIGNvbnN0CiB7CiAgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVu
dFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkgewogICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+
aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7CisgICAg
ICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRT
Y3JvbGxWaWV3KTsKIAogICAgICAgICAgICAgLy8gR2V0IG91ciByZW5kZXJlciBpbiB0aGUgcGFy
ZW50IHZpZXcKICAgICAgICAgICAgIFJlbmRlclBhcnQqIHJlbmRlcmVyID0gbV9mcmFtZS0+b3du
ZXJSZW5kZXJlcigpOwpAQCAtMzc2Nyw3ICszNzYyLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpj
b252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QK
IHsKICAgICBpZiAoY29uc3QgU2Nyb2xsVmlldyogcGFyZW50U2Nyb2xsVmlldyA9IHBhcmVudCgp
KSB7CiAgICAgICAgIGlmIChwYXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAg
ICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBG
cmFtZVZpZXcqPihwYXJlbnRTY3JvbGxWaWV3KTsKKyAgICAgICAgICAgIGNvbnN0IEZyYW1lVmll
dyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAg
ICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRoZSBwYXJlbnQgdmlldwogICAgICAgICAgICAg
UmVuZGVyUGFydCogcmVuZGVyZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CkBAIC0zNzky
LDcgKzM3ODcsNyBAQCBJbnRQb2ludCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXcoY29uc3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAogewogICAgIGlmIChjb25zdCBT
Y3JvbGxWaWV3KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpIHsKICAgICAgICAgaWYgKHBh
cmVudFNjcm9sbFZpZXctPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEZyYW1l
VmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHBhcmVudFNj
cm9sbFZpZXcpOworICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gdG9G
cmFtZVZpZXcocGFyZW50U2Nyb2xsVmlldyk7CiAKICAgICAgICAgICAgIC8vIEdldCBvdXIgcmVu
ZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3CiAgICAgICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJl
ciA9IG1fZnJhbWUtPm93bmVyUmVuZGVyZXIoKTsKQEAgLTM5MDMsNyArMzg5OCw3IEBAIGJvb2wg
RnJhbWVWaWV3Ojpjb250YWluc1Njcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxh
YmxlQXJlYSkgY29uc3QKIHZvaWQgRnJhbWVWaWV3OjpyZW1vdmVDaGlsZChXaWRnZXQqIHdpZGdl
dCkKIHsKICAgICBpZiAod2lkZ2V0LT5pc0ZyYW1lVmlldygpKQotICAgICAgICByZW1vdmVTY3Jv
bGxhYmxlQXJlYShzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpKTsKKyAgICAgICAgcmVt
b3ZlU2Nyb2xsYWJsZUFyZWEodG9GcmFtZVZpZXcod2lkZ2V0KSk7CiAKICAgICBTY3JvbGxWaWV3
OjpyZW1vdmVDaGlsZCh3aWRnZXQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMTQ4
ZGM2MWIyZmI3MmRkZjdiNzdkOGU1MzY2MjlkYTNhMTJmMzc5ZC4uOTA2NTNhNDRmMGMxMGYxMmM5
ZmFhMjA0MjQzMmQ2Njg2ZGVlM2ZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC00MTcs
NyArNDE3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0KCk7CiAgICAgdm9pZCBpbml0KCk7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZVZpZXcoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNGcmFtZVZpZXcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBm
cmllbmQgY2xhc3MgUmVuZGVyV2lkZ2V0OwogICAgIGJvb2wgdXNlU2xvd1JlcGFpbnRzKGJvb2wg
Y29uc2lkZXJPdmVybGFwID0gdHJ1ZSkgY29uc3Q7CkBAIC02NDMsNiArNjQzLDIxIEBAIGlubGlu
ZSBMYXlvdXRVbml0IEZyYW1lVmlldzo6bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoaW50IHZhbHVl
KQogICAgIHJldHVybiB2YWx1ZSAqIG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBtX2ZyYW1l
LT5mcmFtZVNjYWxlRmFjdG9yKCk7CiB9CiAKK2lubGluZSBGcmFtZVZpZXcqIHRvRnJhbWVWaWV3
KFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8IHdpZGdldC0+aXNGcmFt
ZVZpZXcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCk7Cit9
CisKK2lubGluZSBjb25zdCBGcmFtZVZpZXcqIHRvRnJhbWVWaWV3KGNvbnN0IFdpZGdldCogd2lk
Z2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8IHdpZGdldC0+aXNGcmFtZVZpZXcoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHdpZGdldCk7Cit9CisKKy8v
IFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQg
dG9GcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3Kik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEZyYW1lVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkM2JkYjBlMmM2
NzZkZmVmNTdjMDdjOTY4YmRjNWY2MzBiOWEwOWZkLi5iYWM4YzVhMmIwOTU4OTlkZTU5OTZiOTYz
NDIzZjE3MzVkNmI1NTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTExNzQsNyArMTE3NCw3IEBA
IHZvaWQgUGFnZTo6Y29sbGVjdFBsdWdpblZpZXdzKFZlY3RvcjxSZWZQdHI8UGx1Z2luVmlld0Jh
c2U+LCAzMj4mIHBsdWdpblZpZXdCYXNlCiAgICAgICAgIGZvciAoSGFzaFNldDxSZWZQdHI8V2lk
Z2V0PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGNoaWxkcmVuLT5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gKCppdCkuZ2V0KCk7CiAgICAg
ICAgICAgICBpZiAod2lkZ2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpCi0gICAgICAgICAgICAgICAg
cGx1Z2luVmlld0Jhc2VzLmFwcGVuZChzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdl
dCkpOworICAgICAgICAgICAgICAgIHBsdWdpblZpZXdCYXNlcy5hcHBlbmQodG9QbHVnaW5WaWV3
QmFzZSh3aWRnZXQpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY2hyb21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAKaW5kZXggMTEyYjBl
NWJkZTY5YjEzOTZmOGNjOTFmNzk4ZjM1ZDRhMzhlOTQ2OS4uMDEzZDNhMzlhZGI5OTUxOTRhNDE5
OTlkMGUxZTQyNTZjZjFmY2RkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jaHJv
bWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
aHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LAogICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lk
Z2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVu
dCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCiBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Vm
bC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5k
bGVyRWZsLmNwcAppbmRleCA3Yzg0Mjc0YWZkMjU2NWVjZGM3ZDg1ZDM3MzZhOGFkNjA1NTI4Y2Q0
Li5lMzZlZGNiNGViZTU4OGQzZDRkZDEyMTE5ZWE3N2NkYjJkZWMxMThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiBldmVudCwgV2lkZ2UKICAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50
KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVy
KCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOwogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCmluZGV4IDM2
OGNmZTAxOWFmMWQyMjJmNGFiZDE4MWY0ODg3NTdlNzNlYzQ3YjguLmNmZDZjODg1MjFiYmUxNmI2
ZWQ2MWFlNmZhZDkwZjk2YmRhODNlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Z3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZl
bnRIYW5kbGVyR3RrLmNwcApAQCAtOTEsNyArOTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFz
c1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRn
ZQogICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOworICAgIHJldHVybiB0b0Zy
YW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVu
dChldmVudCk7CiB9CiAKIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nQ2xpcGJvYXJkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQppbmRleCA0NTE1MGU0ZjU2MDBiMWU4MmJhNWJmYWVjMzVjZDAxNzlmMDQ4
OTI0Li5lNTFkMGRmZmUyNTkxY2RkOWE0OGMwZDZiMTE2YWIwMzgxMGE0NTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC00MzEsNyArNDMxLDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LAogICAgICAgICBpZiAoIXdpZGdldC0+aXNGcmFtZVZpZXco
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQp
LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsK
ICAgICB9CiAKICAgICBpZiAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0gIT0gTlNTY3JvbGxXaGVl
bCB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3F0L0V2ZW50SGFuZGxlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRXZl
bnRIYW5kbGVyUXQuY3BwCmluZGV4IGFiNzU5NDk2ZjFiMzA1NjlhMTU0ZGRkN2QwOTU4MDczNWFm
Yzc0NDEuLjBmNzgwNmE1M2I3ZmMxNTQ0YzBjNTcyMWQ2MjI0MDMxOWVjNmMyODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQsIFdpZGdlCiAgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcq
Pih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVu
dCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKIH0KIAogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+
IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IDhhODEwNTU3NzZjNDMxMjgzMGIzNTRiMDJlMDZmYmY0MjQ2ZGVhMDMuLmRhMWRkOTQ2
NWMwMmVlNWZhOWM4ZTk2ODA0NmU2ZjY5NDA2YmM2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTE0NCw3
ICsxNDQsNyBAQCBSZWdpb24gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvbXB1dGVOb25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbihjb25zdCBGcmFtZSogZnJhbWUsCiAgICAgICAgICAgICBpZiAoISgqaXQp
LT5pc1BsdWdpblZpZXdCYXNlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgICAgIFBsdWdpblZpZXdCYXNlKiBwbHVnaW5WaWV3QmFzZSA9IHN0YXRpY19jYXN0PFBsdWdp
blZpZXdCYXNlKj4oKCppdCkuZ2V0KCkpOworICAgICAgICAgICAgUGx1Z2luVmlld0Jhc2UqIHBs
dWdpblZpZXdCYXNlID0gdG9QbHVnaW5WaWV3QmFzZSgoKml0KS5nZXQoKSk7CiAgICAgICAgICAg
ICBpZiAocGx1Z2luVmlld0Jhc2UtPndhbnRzV2hlZWxFdmVudHMoKSkKICAgICAgICAgICAgICAg
ICBub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi51bml0ZShwbHVnaW5WaWV3QmFzZS0+ZnJhbWVSZWN0
KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVu
dEhhbmRsZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcAppbmRleCBlMzkxYjc3NjVlN2RjNzBkN2M4NjMyM2E2YWYyYzcyZTQ0NmNlMGEzLi4wNGI5
ODhmOTQxMGY0MDVkYmYwNjYwZGI4ZTQyZjY0ZDBiYTczNzJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50LAogICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0
KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7
CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6
dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS93eC9FdmVudEhhbmRsZXJXeC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3d4L0V2ZW50SGFuZGxlcld4LmNwcAppbmRleCAxNjdjYzkzMGE3YWIzNzM2NmE4Mzc2
M2Q4YzgwOTg0NDFlZWExNTM3Li5mMGI3NDUwYjIxYTQ1Zjc5MTY0MGRlZmQ4MmFjZGU2YTY0ZjNl
MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3d4L0V2ZW50SGFuZGxlcld4LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3d4L0V2ZW50SGFuZGxlcld4LmNwcApAQCAtNzks
NyArNzksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZQogICAgIGlmICghd2lkZ2V0IHx8ICF3
aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIo
KS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdl
dCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKIH0K
IAogYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50
KiBldmVudCkgY29uc3QgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5kZXggZDA0
YzNlODdkNjcxZDg3ZWQ0NWFiZGM4NWYzNjJhODdlNzU1NWIwYS4uZDNhMjk3YTEwMzBhOTAxOTk0
Y2RlODdhZjFmM2VhNzc4M2I3ZmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aApAQCAtMjk1LDYgKzI5NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kUGFp
bnRPdmVyaGFuZ0FyZWFzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIGRpcnR5UmVj
dCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxWaWV3KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsVmlldygpOwogCkBAIC00MTUs
NiArNDE3LDIxIEBAIHByaXZhdGU6CiAKIH07IC8vIGNsYXNzIFNjcm9sbFZpZXcKIAoraW5saW5l
IFNjcm9sbFZpZXcqIHRvU2Nyb2xsVmlldyhXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQo
IXdpZGdldCB8fCB3aWRnZXQtPmlzU2Nyb2xsVmlldygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8U2Nyb2xsVmlldyo+KHdpZGdldCk7Cit9CisKK2lubGluZSBjb25zdCBTY3JvbGxWaWV3KiB0
b1Njcm9sbFZpZXcoY29uc3QgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRnZXQg
fHwgd2lkZ2V0LT5pc1Njcm9sbFZpZXcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFNjcm9sbFZpZXcqPih3aWRnZXQpOworfQorCisvLyBUaGlzIHdpbGwgY2F0Y2ggYW55b25lIGRv
aW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvU2Nyb2xsVmlldyhjb25zdCBTY3JvbGxW
aWV3Kik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFNjcm9sbFZpZXdf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggNDVhNDhkZGJjNGRlNzI1
ZDY4YjViYmEzNTlkNmNkZmNjZDYyYTZhMy4uZmYxZTgwNTlhY2EzYTA4YzNiY2I4YzlhMzQ0MGZm
Nzg0M2Y0NDcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0xMzYs
NyArMTM2LDcgQEAgYm9vbCBTY3JvbGxiYXI6OmlzU2Nyb2xsYWJsZUFyZWFBY3RpdmUoKSBjb25z
dAogCiBib29sIFNjcm9sbGJhcjo6aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzRnJhbWVWaWV3KCkgJiYgc3RhdGljX2Nh
c3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5pc1Njcm9sbFZpZXdTY3JvbGxiYXIodGhpcyk7Cisg
ICAgcmV0dXJuIHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpICYmIHRvRnJhbWVW
aWV3KHBhcmVudCgpKS0+aXNTY3JvbGxWaWV3U2Nyb2xsYmFyKHRoaXMpOwogfQogCiB2b2lkIFNj
cm9sbGJhcjo6b2Zmc2V0RGlkQ2hhbmdlKCkKQEAgLTQ2NSw3ICs0NjUsNyBAQCBib29sIFNjcm9s
bGJhcjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiAgICAg
fQogCiAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAg
ICBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLT5zZXRNb3VzZVByZXNzZWQoZmFsc2UpOworICAgICAgICB0b0ZyYW1lVmlldyhwYXJlbnQo
KSktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zZXRNb3VzZVByZXNzZWQoZmFsc2UpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC01NzQsNyArNTc0LDcgQEAgQVhPYmplY3RDYWNoZSogU2Ny
b2xsYmFyOjpheE9iamVjdENhY2hlKCkgY29uc3QKICAgICAKICAgICAvLyBGSVhNRTogQWNjZXNz
aW5nIHRoZSBGcmFtZVZpZXcgYW5kIERvY3VtZW50IGhlcmUgaXMgYSBsYXllcmluZyB2aW9sYXRp
b24KICAgICAvLyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQuCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50
ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5mcmFtZSgpLT5kb2N1bWVudCgp
OworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+ZnJhbWUo
KS0+ZG9jdW1lbnQoKTsKICAgICByZXR1cm4gZG9jdW1lbnQtPmF4T2JqZWN0Q2FjaGUoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRleCAzNTYzYjU2YzE3ZjFmYTFiNmEyNzAwYzI2
OGU3OWQ2NTAxN2YxNjIwLi43N2NjZjkxZDcwYTA0NmVhYWZhNWZmMTgxZDkyMmYyMDUwMjIwMGZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaApAQCAtMTc3LDYgKzE3Nyw3IEBAIHB1YmxpYzoK
ICAgICAvLyBGSVhNRTogVGhlIE1hYyBwbHVnLWluIGNvZGUgc2hvdWxkIGluaGVyaXQgZnJvbSBQ
bHVnaW5WaWV3LiBXaGVuIHRoaXMgaGFwcGVucyBQbHVnaW5WaWV3QmFzZSBhbmQgUGx1Z2luVmll
dyBjYW4gYmVjb21lIG9uZSBjbGFzcy4KICAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5WaWV3QmFz
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxWaWV3
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgcmVtb3ZlRnJvbVBhcmVudCgp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsVmlldyogdmlldyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtU2NyZWVuQmxh
Y2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3Jt
U2NyZWVuQmxhY2tCZXJyeS5jcHAKaW5kZXggODQ0NDM4ZjkyZmNhYmJiOGZlYTg0NGVhZDMwZmRi
ZThhMTE5OGJkZS4uZGY3ZTI1MDY2YmQ2Njg5ZTIwMDM1ODBiYTk4NjQzMmUxMjY3ZDU3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVNjcmVl
bkJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
UGxhdGZvcm1TY3JlZW5CbGFja0JlcnJ5LmNwcApAQCAtNTEsNyArNTEsNyBAQCBpbnQgc2NyZWVu
RGVwdGgoV2lkZ2V0KikKIHN0YXRpYyBGbG9hdFJlY3QgdG9Vc2VyU3BhY2UoRmxvYXRSZWN0IHJl
Y3QsIFdpZGdldCogd2lkZ2V0KQogewogICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsK
LSAgICAgICAgUGFnZSogcGFnZSA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZy
YW1lKCktPnBhZ2UoKTsKKyAgICAgICAgUGFnZSogcGFnZSA9IHRvRnJhbWVWaWV3KHdpZGdldCkt
PmZyYW1lKCktPnBhZ2UoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPnNldHRpbmdzKCkt
PmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKICAgICAgICAgICAgIHJlY3Qu
c2NhbGUoMSAvIHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5jcHAKaW5kZXggYjQ0NWNiMWJmNjI1NjEz
ZjJhMjg3OGFhMTNkYjM0NTMwZGU3MTk0MS4uNjI1ZTUxMmIzZmYzMDA2YmZkMjhkNmY3OWJkN2Y4
MDQ3Y2E4NjBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9s
bGJhckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVm
bC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFNjcm9sbGJhckVmbDo6c2V0UGFyZW50KFNj
cm9sbFZpZXcqIHZpZXcpCiAgICAgaWYgKCF2aWV3IHx8ICF2aWV3LT5ldmFzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PEZyYW1lVmll
dyo+KHZpZXcpLT5mcmFtZSgpOworICAgIEZyYW1lKiBmcmFtZSA9IHRvRnJhbWVWaWV3KHZpZXcp
LT5mcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJl
dHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1T
dXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0
UXQuY3BwCmluZGV4IDU1YTVjZmFiODQ0MWFiZDNiZGIyOWEyZTI4YWVkOTEyMmM1MGIwOWEuLjBj
MjgyNjRhNDI1MGU4OWUwNWM1NWQ3MjNiMzZjZWQ5ZmNmZWI3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9QbGF0Zm9ybVN1cHBvcnRRdC5jcHAKQEAgLTMzLDcgKzMzLDcg
QEAgYm9vbCBQbGF0Zm9ybVN1cHBvcnQ6OnBvcHVwc0FsbG93ZWQoTlBQIG5wcCkKIHsKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBpZiAobnBwICYmIG5wcC0+bmRhdGEpCi0g
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4obnBwLT5uZGF0YSktPmFyZVBv
cHVwc0FsbG93ZWQoKTsKKyAgICAgICAgcmV0dXJuIHRvUGx1Z2luVmlldyhucHAtPm5kYXRhKS0+
YXJlUG9wdXBzQWxsb3dlZCgpOwogI2VuZGlmCiAKICAgICByZXR1cm4gZmFsc2U7CkBAIC00OCw3
ICs0OCw3IEBAIE5QT2JqZWN0KiBQbGF0Zm9ybVN1cHBvcnQ6OnBsdWdpblNjcmlwdGFibGVPYmpl
Y3QoV2lkZ2V0KiB3aWRnZXQpCiAgICAgICAgIHJldHVybiAwOwogCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCi0gICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0
PFBsdWdpblZpZXcqPih3aWRnZXQpOworICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSB0b1Bs
dWdpblZpZXcod2lkZ2V0KTsKICAgICByZXR1cm4gcGx1Z2luVmlldy0+bnBPYmplY3QoKTsKICNl
bHNlCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0lG
cmFtZVNoaW1TdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1
cHBvcnQuY3BwCmluZGV4IDgyNjU3NjUxMTBhZTU0NjhkMDMwNWYzZWZiMDQ2ZDI1YWRkN2ZlZmYu
Ljk5MTY3N2YzZGEwMTIzODFlMWExZTM0ZTAzN2M5OGJlMDczYjI2YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAg
dm9pZCBnZXRQbHVnaW5PY2NsdXNpb25zKEVsZW1lbnQqIGVsZW1lbnQsIFdpZGdldCogcGFyZW50
V2lkZ2V0LCBjb25zdCBJbnRSZWN0JgogICAgIGlmICghcGFyZW50V2lkZ2V0LT5pc0ZyYW1lVmll
dygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVZpZXcqIHBhcmVudEZyYW1lVmlldyA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudFdpZGdldCk7CisgICAgRnJhbWVWaWV3KiBw
YXJlbnRGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRXaWRnZXQpOwogCiAgICAgY29uc3Qg
SGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+KiBjaGlsZHJlbiA9IHBhcmVudEZyYW1lVmlldy0+Y2hp
bGRyZW4oKTsKICAgICBmb3IgKEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBjaGlsZHJlbi0+YmVnaW4oKTsgaXQgIT0gY2hpbGRyZW4tPmVuZCgpOyArK2l0KSB7
CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBnZXRQbHVnaW5PY2NsdXNpb25zKEVsZW1lbnQqIGVs
ZW1lbnQsIFdpZGdldCogcGFyZW50V2lkZ2V0LCBjb25zdCBJbnRSZWN0JgogICAgICAgICBpZiAo
ISgqaXQpLT5pc0ZyYW1lVmlldygpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
Y29uc3QgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBGcmFtZVZpZXcq
PigoKml0KS5nZXQoKSk7CisgICAgICAgIGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9G
cmFtZVZpZXcoKCppdCkuZ2V0KCkpOwogICAgICAgICAvLyBDaGVjayB0byBtYWtlIHN1cmUgd2Ug
Y2FuIGdldCBib3RoIHRoZSBlbGVtZW50IGFuZCB0aGUgUmVuZGVyT2JqZWN0CiAgICAgICAgIC8v
IGZvciB0aGlzIEZyYW1lVmlldywgaWYgd2UgY2FuJ3QganVzdCBtb3ZlIG9uIHRvIHRoZSBuZXh0
IG9iamVjdC4KICAgICAgICAgaWYgKCFmcmFtZVZpZXctPmZyYW1lKCkgfHwgIWZyYW1lVmlldy0+
ZnJhbWUoKS0+b3duZXJFbGVtZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5k
ZXggYjMzMzQ4MDdkNTA5MTdkMjFjMzU1NzM3NDIyZGVlMWI0ODc3ZmRiMS4uN2U3NjA0MGMzMDhl
ZWNkM2I0YmYxYzgzNDUwMTU5MDlkZGYyYTY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmgKQEAgLTIyMSw3ICsyMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsVmlldyopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFyZW50VmlzaWJsZShib29sKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5W
aWV3KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQbHVn
aW5WaWV3KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIEZyYW1l
KiBwYXJlbnRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50RnJhbWUuZ2V0KCk7IH0KIApA
QCAtNDcyLDYgKzQ3MiwyMSBAQCBwcml2YXRlOgogICAgICAgICBzdGF0aWMgUGx1Z2luVmlldyog
c19jdXJyZW50UGx1Z2luVmlldzsKICAgICB9OwogCitpbmxpbmUgUGx1Z2luVmlldyogdG9QbHVn
aW5WaWV3KFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8IHdpZGdldC0+
aXNQbHVnaW5WaWV3KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4od2lk
Z2V0KTsKK30KKworaW5saW5lIGNvbnN0IFBsdWdpblZpZXcqIHRvUGx1Z2luVmlldyhjb25zdCBX
aWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NFUlQoIXdpZGdldCB8fCB3aWRnZXQtPmlzUGx1Z2lu
VmlldygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUGx1Z2luVmlldyo+KHdpZGdl
dCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3Nhcnkg
Y2FzdC4KK3ZvaWQgdG9QbHVnaW5WaWV3KGNvbnN0IFBsdWdpblZpZXcqKTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlld0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jh
c2UuaAppbmRleCA5NmQ2NWYwOWI1NGE0MjliM2I5MGZlM2Y0MTdkZjlkMGE2OTg5ZjBhLi4zMTFj
OWNjNTg5ZmJiYmE1MDEyNDNlNzVlZWVkNTU5OGZhNjUwN2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3QmFzZS5oCkBAIC03NywxMyArNzcsMjcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21EcmFncygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5WaWV3QmFzZSgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFBsdWdpblZpZXdC
YXNlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCA9IDApIDogV2lkZ2V0KHdpZGdldCkgeyB9Ci0gICAg
Ci1wcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdpblZpZXdCYXNlKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAoraW5saW5lIFBsdWdpblZpZXdCYXNlKiB0b1BsdWdpblZpZXdC
YXNlKFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8IHdpZGdldC0+aXNQ
bHVnaW5WaWV3QmFzZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2Uq
Pih3aWRnZXQpOworfQorCitpbmxpbmUgY29uc3QgUGx1Z2luVmlld0Jhc2UqIHRvUGx1Z2luVmll
d0Jhc2UoY29uc3QgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRnZXQgfHwgd2lk
Z2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBQ
bHVnaW5WaWV3QmFzZSo+KHdpZGdldCk7Cit9CisKKy8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUg
ZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9QbHVnaW5WaWV3QmFzZShjb25zdCBQ
bHVnaW5WaWV3QmFzZSopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBQ
bHVnaW5XaWRnZXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ibGFja2Jl
cnJ5L05QQ2FsbGJhY2tzQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2Js
YWNrYmVycnkvTlBDYWxsYmFja3NCbGFja0JlcnJ5LmNwcAppbmRleCBkMTIyZWY2YTk1YTM4YTA3
NzA5ZjZkZjhiNmY0ZTc5MGUyMTlmZjRkLi4wOTliMmMxODNiYjUwYzFmMGY1YWU3ZDQ0NGIwY2U3
NDhmYTBiZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2JsYWNrYmVycnkv
TlBDYWxsYmFja3NCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2Js
YWNrYmVycnkvTlBDYWxsYmFja3NCbGFja0JlcnJ5LmNwcApAQCAtNzMsMTI2ICs3MywxMjYgQEAg
dm9pZCBucFNldEhvbGVQdW5jaEhhbmRsZXIodm9pZCogaG9sZVB1bmNoRGF0YSkKIAogdm9pZCBz
ZXRWaXNpYmxlUmVjdHMoTlBQIGluc3RhbmNlLCBjb25zdCBOUFJlY3QgcmVjdHNbXSwgaW50MzJf
dCBjb3VudCkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmll
dyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmll
dyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9
IHZpZXctPmdldFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+c2V0VmlzaWJsZVJlY3RzKHJl
Y3RzLCBjb3VudCk7CiB9CiAKIHZvaWQgY2xlYXJWaXNpYmxlUmVjdHMoTlBQIGluc3RhbmNlKQog
ewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFu
Y2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNl
LT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0
UHJpdmF0ZSgpOwogICAgIHZpZXdQcml2YXRlLT5jbGVhclZpc2libGVSZWN0cygpOwogfQogCiB2
b2lkIHNob3dLZXlib2FyZChOUFAgaW5zdGFuY2UsIGJvb2wgdmFsdWUpCiB7Ci0gICAgUGx1Z2lu
VmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOwor
ICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAg
ICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAg
ICAgdmlld1ByaXZhdGUtPnNob3dLZXlib2FyZCh2YWx1ZSk7CiB9CiAKIHZvaWQgcmVxdWVzdEZ1
bGxTY3JlZW4oTlBQIGluc3RhbmNlKQogewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0aWNf
Y2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3
ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZhdGUq
IHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAgIHZpZXdQcml2YXRlLT5yZXF1
ZXN0RnVsbFNjcmVlbigpOwogfQogCiB2b2lkIGV4aXRGdWxsU2NyZWVuKE5QUCBpbnN0YW5jZSkK
IHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3Rh
bmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5j
ZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdl
dFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+ZXhpdEZ1bGxTY3JlZW4oKTsKIH0KIAogdm9p
ZCByZXF1ZXN0Q2VudGVyRml0Wm9vbShOUFAgaW5zdGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyog
dmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBs
dWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVn
aW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmll
d1ByaXZhdGUtPnJlcXVlc3RDZW50ZXJGaXRab29tKCk7CiB9CiAKIHZvaWQgbG9ja09yaWVudGF0
aW9uKE5QUCBpbnN0YW5jZSwgYm9vbCBsYW5kc2NhcGUpCiB7Ci0gICAgUGx1Z2luVmlldyogdmll
dyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdp
blZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5W
aWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1By
aXZhdGUtPmxvY2tPcmllbnRhdGlvbihsYW5kc2NhcGUpOwogfQogCiB2b2lkIHVubG9ja09yaWVu
dGF0aW9uKE5QUCBpbnN0YW5jZSkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9
IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2
aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+dW5sb2Nr
T3JpZW50YXRpb24oKTsKIH0KIAogdm9pZCBwcmV2ZW50SWRsZShOUFAgaW5zdGFuY2UsIGJvb2wg
cHJldmVudElkbGUpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdp
blZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdp
blZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZh
dGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUtPnByZXZlbnRJZGxlKHBy
ZXZlbnRJZGxlKTsKIH0KIAogTlBTdXJmYWNlIGxvY2tCYWNrQnVmZmVyKE5QUCBpbnN0YW5jZSkK
IHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3Rh
bmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5j
ZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdl
dFByaXZhdGUoKTsKICAgICByZXR1cm4gdmlld1ByaXZhdGUtPmxvY2tCYWNrQnVmZmVyKCk7CiB9
CiAKIHZvaWQgdW5sb2NrQmFja0J1ZmZlcihOUFAgaW5zdGFuY2UpCiB7Ci0gICAgUGx1Z2luVmll
dyogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAg
IFBsdWdpblZpZXcqIHZpZXcgPSB0b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQ
bHVnaW5WaWV3UHJpdmF0ZSogdmlld1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAg
dmlld1ByaXZhdGUtPnVubG9ja0JhY2tCdWZmZXIoKTsKIH0KIAogTlBTdXJmYWNlIGxvY2tSZWFk
RnJvbnRCdWZmZXIoTlBQIGluc3RhbmNlKQogewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxQbHVnaW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2
aWV3ID0gdG9QbHVnaW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZh
dGUqIHZpZXdQcml2YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAgIHJldHVybiB2aWV3UHJp
dmF0ZS0+bG9ja1JlYWRGcm9udEJ1ZmZlcigpOwogfQogCiB2b2lkIHVubG9ja1JlYWRGcm9udEJ1
ZmZlcihOUFAgaW5zdGFuY2UpCiB7Ci0gICAgUGx1Z2luVmlldyogdmlldyA9IHN0YXRpY19jYXN0
PFBsdWdpblZpZXcqPihpbnN0YW5jZS0+bmRhdGEpOworICAgIFBsdWdpblZpZXcqIHZpZXcgPSB0
b1BsdWdpblZpZXcoaW5zdGFuY2UtPm5kYXRhKTsKICAgICBQbHVnaW5WaWV3UHJpdmF0ZSogdmll
d1ByaXZhdGUgPSB2aWV3LT5nZXRQcml2YXRlKCk7CiAgICAgdmlld1ByaXZhdGUtPnVubG9ja1Jl
YWRGcm9udEJ1ZmZlcigpOwogfQogCiB2b2lkIHN3YXBCdWZmZXJzKE5QUCBpbnN0YW5jZSkKIHsK
LSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3RhbmNl
LT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+
bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdldFBy
aXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+c3dhcEJ1ZmZlcnMoKTsKIH0KIAogYm9vbCBjcmVh
dGVCdWZmZXJzKE5QUCBpbnN0YW5jZSwgTlBTdXJmYWNlRm9ybWF0IGZvcm1hdCwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQogewotICAgIFBsdWdpblZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQbHVn
aW5WaWV3Kj4oaW5zdGFuY2UtPm5kYXRhKTsKKyAgICBQbHVnaW5WaWV3KiB2aWV3ID0gdG9QbHVn
aW5WaWV3KGluc3RhbmNlLT5uZGF0YSk7CiAgICAgUGx1Z2luVmlld1ByaXZhdGUqIHZpZXdQcml2
YXRlID0gdmlldy0+Z2V0UHJpdmF0ZSgpOwogICAgIHJldHVybiB2aWV3UHJpdmF0ZS0+Y3JlYXRl
QnVmZmVycyhmb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwogfQogCiBib29sIGRlc3Ryb3lCdWZmZXJz
KE5QUCBpbnN0YW5jZSkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1
Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1
Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJp
dmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICByZXR1cm4gdmlld1ByaXZhdGUtPmRlc3Ry
b3lCdWZmZXJzKCk7CiB9CiAKIGJvb2wgcmVzaXplQnVmZmVycyhOUFAgaW5zdGFuY2UsIE5QU3Vy
ZmFjZUZvcm1hdCBmb3JtYXQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBQbHVnaW5W
aWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7Cisg
ICAgUGx1Z2luVmlldyogdmlldyA9IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAg
IFBsdWdpblZpZXdQcml2YXRlKiB2aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAg
ICByZXR1cm4gdmlld1ByaXZhdGUtPnJlc2l6ZUJ1ZmZlcnMoZm9ybWF0LCB3aWR0aCwgaGVpZ2h0
KTsKIH0KIAogdm9pZCBzZXRIb2xlUHVuY2goTlBQIGluc3RhbmNlLCBpbnQgeCwgaW50IHksIGlu
dCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBQbHVnaW5WaWV3KiB2aWV3ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luVmlldyo+KGluc3RhbmNlLT5uZGF0YSk7CisgICAgUGx1Z2luVmlldyogdmlldyA9
IHRvUGx1Z2luVmlldyhpbnN0YW5jZS0+bmRhdGEpOwogICAgIFBsdWdpblZpZXdQcml2YXRlKiB2
aWV3UHJpdmF0ZSA9IHZpZXctPmdldFByaXZhdGUoKTsKICAgICB2aWV3UHJpdmF0ZS0+c2V0SG9s
ZVB1bmNoKHgsIHksIHdpZHRoLCBoZWlnaHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3QmxhY2tCZXJyeS5jcHAKaW5kZXgg
ZmE5ZDY2MjhlMDViNjhhYzRlMWZmMTdjZTNmNWQwMTAwOTFhN2QwMy4uOTM3ZDk2NjhlNWIwNzg5
NThjNDk0YTljNGQwMjZiNTFjYjYwZTYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3BwCkBAIC0xMDEs
NyArMTAxLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3KCkpOwotICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpOwor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpOwogCiAgICAg
SW50UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIEludFJlY3Qgb2xkQ2xp
cFJlY3QgPSBtX2NsaXBSZWN0OwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6
dXBkYXRlQnVmZmVyKGNvbnN0IEludFJlY3QmIGJ1ZmZlclJlY3QpCiAgICAgLy8gVXBkYXRlIHRo
ZSB6b29tIGZhY3RvciBoZXJlLCBpdCBoYXBwZW5zIHJpZ2h0IGJlZm9yZSBzZXROUFdpbmRvd0lm
TmVlZGVkCiAgICAgLy8gZW5zdXJpbmcgdGhhdCB0aGUgcGx1Z2luIGhhcyBldmVyeSBvcHBvcnR1
bml0eSB0byBnZXQgdGhlIHpvb20gZmFjdG9yIGJlZm9yZQogICAgIC8vIGl0IHBhaW50cyBhbnl0
aGluZy4KLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPihwYXJlbnQoKSkpCisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZp
ZXcocGFyZW50KCkpKQogICAgICAgICBtX3ByaXZhdGUtPnNldFpvb21GYWN0b3IoZnJhbWVWaWV3
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5jdXJyZW50Wm9vbUZhY3Rvcigp
KTsKIAogICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVj
dCYgcmVjdCkKICAgICAvLyBVcGRhdGUgdGhlIHpvb20gZmFjdG9yIGhlcmUsIGl0IGhhcHBlbnMg
cmlnaHQgYmVmb3JlIHNldE5QV2luZG93SWZOZWVkZWQKICAgICAvLyBlbnN1cmluZyB0aGF0IHRo
ZSBwbHVnaW4gaGFzIGV2ZXJ5IG9wcG9ydHVuaXR5IHRvIGdldCB0aGUgem9vbSBmYWN0b3IgYmVm
b3JlCiAgICAgLy8gaXQgcGFpbnRzIGFueXRoaW5nLgotICAgIGlmIChGcmFtZVZpZXcqIGZyYW1l
VmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKSkKKyAgICBpZiAoRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSkpCiAgICAgICAgIG1fcHJpdmF0
ZS0+c2V0Wm9vbUZhY3RvcihmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCktPmN1cnJlbnRab29tRmFjdG9yKCkpOwogCiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5n
RGlzYWJsZWQoKSkKQEAgLTYyMSw3ICs2MjEsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZVJl
c3VtZUV2ZW50KCkKIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVTY3JvbGxFdmVudCgpCiB7Ci0g
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQo
KSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAK
ICAgICAvLyBBcyBhIHNwZWNpYWwgY2FzZSwgaWYgdGhlIGZyYW1lVmlldyBleHRlbnQgaW4gZWl0
aGVyIGRpbWVuc2lvbiBpcwogICAgIC8vIGVtcHR5LCB0aGVuIHNlbmQgYW4gb24gc2NyZWVuIGV2
ZW50LiBUaGlzIGlzIGltcG9ydGFudCBmb3Igc2l0ZXMgbGlrZQpAQCAtNjM5LDcgKzYzOSw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlU2Nyb2xsRXZlbnQoKQogCiBJbnRSZWN0IFBsdWdpblZp
ZXc6OmNhbGN1bGF0ZUNsaXBSZWN0KCkgY29uc3QKIHsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKICAgICBib29sIHZpc2libGUgPSBmcmFt
ZVZpZXcgJiYgaXNWaXNpYmxlKCk7CiAKICAgICBpZiAodmlzaWJsZSAmJiBmcmFtZVZpZXctPndp
ZHRoKCkgJiYgZnJhbWVWaWV3LT5oZWlnaHQoKSkgewpAQCAtNzQ3LDcgKzc0Nyw3IEBAIHZvaWQg
UGx1Z2luVmlldzo6aGFuZGxlRnVsbFNjcmVlbkFsbG93ZWRFdmVudCgpCiAgICAgbnBFdmVudC50
eXBlID0gTlBfRnVsbFNjcmVlblJlYWR5RXZlbnQ7CiAgICAgbnBFdmVudC5kYXRhID0gMDsKIAot
ICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBh
cmVudCgpKSkgeworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudCgpKSkgewogICAgICAgICBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdl
Q2xpZW50KCktPmRpZFBsdWdpbkVudGVyRnVsbFNjcmVlbih0aGlzLCBtX3ByaXZhdGUtPm1fcGx1
Z2luVW5pcXVlUHJlZml4LmNfc3RyKCkpOwogCiAgICAgICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50
KG5wRXZlbnQpKQpAQCAtNzY4LDcgKzc2OCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRnVs
bFNjcmVlbkV4aXRFdmVudCgpCiAKICAgICBkaXNwYXRjaE5QRXZlbnQobnBFdmVudCk7CiAKLSAg
ICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJl
bnQoKSkpCisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50
KCkpKQogICAgICAgICBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50
KCktPmRpZFBsdWdpbkV4aXRGdWxsU2NyZWVuKHRoaXMsIG1fcHJpdmF0ZS0+bV9wbHVnaW5Vbmlx
dWVQcmVmaXguY19zdHIoKSk7CiAKICAgICBtX3ByaXZhdGUtPm1faXNGdWxsU2NyZWVuID0gZmFs
c2U7CkBAIC04NjAsNyArODYwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xs
VmlldyogcGFyZW50V2lkZ2V0KQogewogICAgIC8vIElmIHBhcmVudFdpZGdldCBpcyAwLCBsZXRz
IHVucmVnaXN0ZXIgdGhlIHBsdWdpbiB3aXRoIHRoZSBjdXJyZW50IHBhcmVudC4KICAgICBpZiAo
bV9wcml2YXRlICYmICghcGFyZW50V2lkZ2V0IHx8IHBhcmVudFdpZGdldCAhPSBwYXJlbnQoKSkp
IHsKLSAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4ocGFyZW50KCkpKSB7CisgICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRv
RnJhbWVWaWV3KHBhcmVudCgpKSkgewogICAgICAgICAgICAgaWYgKG1fcHJpdmF0ZS0+bV9pc0Jh
Y2tncm91bmRQbGF5aW5nKQogICAgICAgICAgICAgICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+b25QbHVnaW5TdG9wQmFja2dyb3VuZFBsYXkodGhpcywg
bV9wcml2YXRlLT5tX3BsdWdpblVuaXF1ZVByZWZpeC5jX3N0cigpKTsKIApAQCAtODg3LDcgKzg4
Nyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVudFdpZGdl
dCkKICAgICBpZiAocGFyZW50V2lkZ2V0KSB7CiAgICAgICAgIGluaXQoKTsKIAotICAgICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudFdpZGdl
dCk7CisgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50V2lk
Z2V0KTsKIAogICAgICAgICBpZiAoZnJhbWVWaWV3ICYmIG1fcHJpdmF0ZSkgewogICAgICAgICAg
ICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5yZWdpc3Rl
clBsdWdpbih0aGlzLCB0cnVlIC8qc2hvdWxkUmVnaXN0ZXIqLyk7CkBAIC05MTIsNyArOTEyLDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICBpZiAoIW1fcHJp
dmF0ZSB8fCAhbV9pc1N0YXJ0ZWQgfHwgIXBhcmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVu
Y3MoKS0+c2V0d2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1l
VmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKICAgICBpZiAoIWZyYW1lVmlldy0+
aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+aXNBY3RpdmUoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMDY4LDcgKzEwNjgsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgTlBOVlJvb3RXaW5kb3dHcm91cDogewot
ICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBh
cmVudCgpKTsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJl
bnQoKSk7CiAgICAgICAgIGlmIChmcmFtZVZpZXcpIHsKICAgICAgICAgICAgIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpHcmFwaGljczo6V2luZG93ICp3aW5kb3cgPSBmcmFtZVZpZXctPmhvc3RXaW5k
b3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPnBsYXRmb3JtV2luZG93KCk7CiAgICAgICAgICAg
ICBpZiAod2luZG93KSB7CkBAIC0xMDg2LDcgKzEwODYsNyBAQCBib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtR2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9y
KiByZQogICAgIH0KIAogICAgIGNhc2UgTlBOVkJyb3dzZXJXaW5kb3dHcm91cDogewotICAgICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgp
KTsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7
CiAgICAgICAgIGlmIChmcmFtZVZpZXcpIHsKICAgICAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpHcmFwaGljczo6V2luZG93KiB3aW5kb3cgPSBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+
cGxhdGZvcm1QYWdlQ2xpZW50KCktPnBsYXRmb3JtV2luZG93KCk7CiAgICAgICAgICAgICBpZiAo
d2luZG93KSB7CkBAIC0xMTA0LDcgKzExMDQsNyBAQCBib29sIFBsdWdpblZpZXc6OnBsYXRmb3Jt
R2V0VmFsdWUoTlBOVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlLCBOUEVycm9yKiByZQog
ICAgIH0KIAogICAgIGNhc2UgTlBOVkJyb3dzZXJEaXNwbGF5Q29udGV4dDogewotICAgICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsK
KyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAg
ICAgICAgIGlmIChmcmFtZVZpZXcpIHsKICAgICAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpHcmFwaGljczo6UGxhdGZvcm1EaXNwbGF5Q29udGV4dEhhbmRsZSBjb250ZXh0ID0gQmxhY2tC
ZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpwbGF0Zm9ybURpc3BsYXlDb250ZXh0KCk7CiAgICAg
ICAgICAgICBpZiAoY29udGV4dCkgewpAQCAtMTIzNSw3ICsxMjM1LDcgQEAgYm9vbCBQbHVnaW5W
aWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIAogICAgIHNob3coKTsKIAotICAgIGlmIChGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKSkKKyAgICBpZiAo
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSkpCiAgICAgICAgIGhh
bmRsZU9yaWVudGF0aW9uRXZlbnQoZnJhbWVWaWV3LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpLT5vcmllbnRhdGlvbigpKTsKIAogICAgIGlmICghKG1fcGx1Z2luLT5xdWlya3Mo
KS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpIHsKQEAgLTEy
NTgsNyArMTI1OCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1EZXN0cm95KCkKICAgICBt
X3ByaXZhdGUtPmNsZWFyVmlzaWJsZVJlY3RzKCk7CiAKICAgICAvLyBUaGlzIHdpbGwgZW5zdXJl
IHRoYXQgd2UgdW5yZWdpc3RlcmVkIHRoZSBwbHVnaW4uCi0gICAgaWYgKEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpKSB7CisgICAgaWYgKEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpKSB7CiAgICAgICAgIGlm
IChtX3ByaXZhdGUtPm1faXNCYWNrZ3JvdW5kUGxheWluZykKICAgICAgICAgICAgIGZyYW1lVmll
dy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+b25QbHVnaW5TdG9wQmFja2dy
b3VuZFBsYXkodGhpcywgbV9wcml2YXRlLT5tX3BsdWdpblVuaXF1ZVByZWZpeC5jX3N0cigpKTsK
IApAQCAtMTM1MCw3ICsxMzUwLDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRCYWNrZ3JvdW5kUGxh
eShib29sIHZhbHVlKQogICAgIGlmICghbV9wcml2YXRlIHx8IG1fcHJpdmF0ZS0+bV9pc0JhY2tn
cm91bmRQbGF5aW5nID09IHZhbHVlKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fcHJpdmF0ZS0+bV92aWV3LT5w
YXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ByaXZh
dGUtPm1fdmlldy0+cGFyZW50KCkpOwogICAgIG1fcHJpdmF0ZS0+bV9pc0JhY2tncm91bmRQbGF5
aW5nID0gdmFsdWU7CiAgICAgaWYgKG1fcHJpdmF0ZS0+bV9pc0JhY2tncm91bmRQbGF5aW5nKQog
ICAgICAgICBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPm9u
UGx1Z2luU3RhcnRCYWNrZ3JvdW5kUGxheSh0aGlzLCBtX3ByaXZhdGUtPm1fcGx1Z2luVW5pcXVl
UHJlZml4LmNfc3RyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ibGFj
a2JlcnJ5L1BsdWdpblZpZXdQcml2YXRlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld1ByaXZhdGVCbGFja0JlcnJ5LmNwcAppbmRleCA2
MzQ2MjIyMGM4OGM0Nzk0MDY0ZjA1ODllOGJmYjBjOTk2MDA2NzRkLi5lNDY1YmViNmU0OGIwZjVm
ZTY3NzM4NWZjN2U5ZDhjODM1NzU5ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld1ByaXZhdGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld1ByaXZhdGVCbGFja0JlcnJ5
LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OnNldFZpc2li
bGVSZWN0cyhjb25zdCBOUFJlY3QgcmVjdHNbXSwgaW50MzJfdCBjb3VudCkKIAogICAgIC8vIEFk
anVzdCB0aGUgcmVjdCB0byB0aGUgcGFyZW50IHdpbmRvdyBhbmQgdGhlbiBhZGp1c3QgZm9yIHNj
cm9sbGluZy4KICAgICBtX2tlZXBWaXNpYmxlUmVjdCA9IG1fdmlldy0+Y29udmVydFRvQ29udGFp
bmluZ1dpbmRvdyhtX2tlZXBWaXNpYmxlUmVjdCk7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcg
PSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXctPnBhcmVudCgpKTsKKyAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmlldy0+cGFyZW50KCkpOwogICAgIG1fa2Vl
cFZpc2libGVSZWN0Lm1vdmUoZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpLngoKSwgZnJhbWVW
aWV3LT5zY3JvbGxQb3NpdGlvbigpLnkoKSk7CiAKICAgICBmcmFtZVZpZXctPmhvc3RXaW5kb3co
KS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPmVuc3VyZUNvbnRlbnRWaXNpYmxlKCk7CkBAIC0xMjYs
MTMgKzEyNiwxMyBAQCB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpjbGVhclZpc2libGVSZWN0cygp
CiAKIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OnNob3dLZXlib2FyZChib29sIHZhbHVlKQogewot
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3
LT5wYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3Zp
ZXctPnBhcmVudCgpKTsKICAgICBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdl
Q2xpZW50KCktPnNob3dWaXJ0dWFsS2V5Ym9hcmQodmFsdWUpOwogfQogCiB2b2lkIFBsdWdpblZp
ZXdQcml2YXRlOjpyZXF1ZXN0RnVsbFNjcmVlbigpCiB7Ci0gICAgaWYgKEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSkpCisgICAg
aWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcobV92aWV3LT5wYXJlbnQoKSkp
CiAgICAgICAgIGlmIChmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50
KCktPnNob3VsZFBsdWdpbkVudGVyRnVsbFNjcmVlbihtX3ZpZXcsIG1fcGx1Z2luVW5pcXVlUHJl
Zml4LmNfc3RyKCkpKQogICAgICAgICAgICAgbV92aWV3LT5oYW5kbGVGdWxsU2NyZWVuQWxsb3dl
ZEV2ZW50KCk7CiB9CkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6
ZXhpdEZ1bGxTY3JlZW4oKQogCiB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpyZXF1ZXN0Q2VudGVy
Rml0Wm9vbSgpCiB7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPihtX3ZpZXctPnBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRv
RnJhbWVWaWV3KG1fdmlldy0+cGFyZW50KCkpOwogCiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE1NCw3ICsxNTQsNyBAQCB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpy
ZXF1ZXN0Q2VudGVyRml0Wm9vbSgpCiAKIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OmxvY2tPcmll
bnRhdGlvbihib29sIGxhbmRzY2FwZSkKIHsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0
YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fdmlldy0+cGFyZW50KCkpOworICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcobV92aWV3LT5wYXJlbnQoKSk7CiAKICAgICBpZiAoIWZy
YW1lVmlldykKICAgICAgICAgcmV0dXJuOwpAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgUGx1Z2lu
Vmlld1ByaXZhdGU6OnVubG9ja09yaWVudGF0aW9uKCkKICAgICBpZiAoIW1fb3JpZW50YXRpb25M
b2NrZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3Rh
dGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgpKTsKIAogICAgIGlmICghZnJh
bWVWaWV3KQogICAgICAgICByZXR1cm47CkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBQbHVnaW5W
aWV3UHJpdmF0ZTo6cHJldmVudElkbGUoYm9vbCBwcmV2ZW50SWRsZSkKICAgICBpZiAocHJldmVu
dElkbGUgPT0gbV9pZGxlUHJldmVudGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fdmlldy0+cGFyZW50KCkp
OworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcobV92aWV3LT5wYXJlbnQo
KSk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCBiZTQ1ZDA1YTZiODA3YjM4
YTVkZmFlZjBlYjExOWI1ZWY0ZDIzOTQ4Li42NDZkMGQ4OWJiOWIwYzVlMzczYmExMzBjNzcxOWI3
ODFhZDhlNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5W
aWV3R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lk
Z2V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmll
dygpKTsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+
KHBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVu
dCgpKTsKIAogICAgIEludFJlY3Qgb2xkV2luZG93UmVjdCA9IG1fd2luZG93UmVjdDsKICAgICBJ
bnRSZWN0IG9sZENsaXBSZWN0ID0gbV9jbGlwUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L21hYy9QbHVnaW5WaWV3TWFjLm1tCmluZGV4IDlkM2VhYjMzMTc2YzNmYzc3ZjdiMGNkNDA2YzUw
N2NkMjE1MWJhMzMuLmQ5ODY4YWI5ZTY2ZWFmYzc1MDlkMWY1MzczY2EwZjIxYmVmMzk0MzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQpAQCAtNTA4LDcg
KzUwOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICBy
ZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3KCkpOwotICAgIEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpOworICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpOwogCiAgICAgSW50
UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIEludFJlY3Qgb2xkQ2xpcFJl
Y3QgPSBtX2NsaXBSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9Q
bHVnaW5WaWV3UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCmluZGV4IGRlNWMyYjg4ZWZlZWE2N2YwMTcyMTZiMmE2YmEwMTg0N2NmNDM5MTkuLjFiY2Y1
ZTM3MTA4MjYxMmNjNWM1ZGUzNGJlZWFhZTA1ZGQyZjc2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFBsdWdp
blZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChwYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAKICAgICBJbnRSZWN0IG9sZFdpbmRvd1JlY3Qg
PSBtX3dpbmRvd1JlY3Q7CiAgICAgSW50UmVjdCBvbGRDbGlwUmVjdCA9IG1fY2xpcFJlY3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IGUwOTM0
Y2I2YjMxNWFiMGE0MzdlZGQyNWI5OGU0NGUyZTBlMzA0NTMuLjEyZDVhZTBhOGRkMTk2OWQ1MDZl
MjY2YmI1MWI5M2Q5MTAzMjExMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpblZpZXdXaW4uY3BwCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRh
dGVQbHVnaW5XaWRnZXQoKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCkt
PmlzRnJhbWVWaWV3KCkpOwotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8
RnJhbWVWaWV3Kj4ocGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFt
ZVZpZXcocGFyZW50KCkpOwogCiAgICAgSW50UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dS
ZWN0OwogICAgIEludFJlY3Qgb2xkQ2xpcFJlY3QgPSBtX2NsaXBSZWN0OwpAQCAtNTUzLDcgKzU1
Myw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRJbnRvVHJhbnNmb3JtZWRDb250ZXh0KEhEQyBo
ZGMpCiAKICAgICBXSU5ET1dQT1Mgd2luZG93cG9zID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwIH07
CiAKLSAgICBJbnRSZWN0IHIgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmNv
bnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOworICAgIEludFJlY3QgciA9IHRvRnJhbWVWaWV3
KHBhcmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CiAKICAgICB3aW5kb3dw
b3MueCA9IHIueCgpOwogICAgIHdpbmRvd3Bvcy55ID0gci55KCk7CkBAIC01ODYsNyArNTg2LDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludFdpbmRvd2VkUGx1Z2luSW50b0NvbnRleHQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIEFTU0VSVChjb250ZXh0LT5zaG91bGRJbmNs
dWRlQ2hpbGRXaW5kb3dzKCkpOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygp
KTsKLSAgICBJbnRQb2ludCBsb2NhdGlvbkluV2luZG93ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3
Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpLmxvY2F0aW9uKCkpOwor
ICAgIEludFBvaW50IGxvY2F0aW9uSW5XaW5kb3cgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSktPmNv
bnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkubG9jYXRpb24oKSk7CiAKICAgICBMb2NhbFdpbmRv
d3NDb250ZXh0IHdpbmRvd3NDb250ZXh0KGNvbnRleHQsIGZyYW1lUmVjdCgpLCBmYWxzZSk7CiAK
QEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBJbnRSZWN0IHJlY3RJbldpbmRv
dyhyZWN0KTsKICAgICByZWN0SW5XaW5kb3cuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICNlbHNl
Ci0gICAgSW50UmVjdCByZWN0SW5XaW5kb3cgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJl
bnQoKSktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpOworICAgIEludFJlY3QgcmVjdElu
V2luZG93ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVj
dCgpKTsKICNlbmRpZgogICAgIExvY2FsV2luZG93c0NvbnRleHQgd2luZG93c0NvbnRleHQoY29u
dGV4dCwgcmVjdEluV2luZG93LCBtX2lzVHJhbnNwYXJlbnQpOwogCkBAIC03MDIsNyArNzAyLDcg
QEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQog
CiAgICAgTlBFdmVudCBucEV2ZW50OwogCi0gICAgSW50UG9pbnQgcCA9IHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KHBhcmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhJbnRQb2ludChldmVudC0+cGFn
ZVgoKSwgZXZlbnQtPnBhZ2VZKCkpKTsKKyAgICBJbnRQb2ludCBwID0gdG9GcmFtZVZpZXcocGFy
ZW50KCkpLT5jb250ZW50c1RvV2luZG93KEludFBvaW50KGV2ZW50LT5wYWdlWCgpLCBldmVudC0+
cGFnZVkoKSkpOwogCiAgICAgbnBFdmVudC5sUGFyYW0gPSBNQUtFTFBBUkFNKHAueCgpLCBwLnko
KSk7CiAgICAgbnBFdmVudC53UGFyYW0gPSAwOwpAQCAtODIxLDcgKzgyMSw3IEBAIHZvaWQgUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHJl
dHVybjsKIAogI2lmIE9TKFdJTkNFKQotICAgIEludFJlY3QgciA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHBhcmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0KTsKKyAgICBJbnRSZWN0IHIg
PSB0b0ZyYW1lVmlldyhwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5kb3cocmVjdCk7CiAgICAgbV9u
cFdpbmRvdy54ID0gci54KCk7CiAgICAgbV9ucFdpbmRvdy55ID0gci55KCk7CiAKQEAgLTgzNiw3
ICs4MzYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93UmVjdChjb25zdCBJbnRSZWN0
JiByZWN0KQogIyBpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQogICAgIEludFBvaW50
IHAgPSByZWN0LmxvY2F0aW9uKCk7CiAjIGVsc2UKLSAgICBJbnRQb2ludCBwID0gc3RhdGljX2Nh
c3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24o
KSk7CisgICAgSW50UG9pbnQgcCA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+Y29udGVudHNUb1dp
bmRvdyhyZWN0LmxvY2F0aW9uKCkpOwogIyBlbmRpZgogICAgIG1fbnBXaW5kb3cueCA9IHAueCgp
OwogICAgIG1fbnBXaW5kb3cueSA9IHAueSgpOwpAQCAtMTA2OSw3ICsxMDY5LDcgQEAgUGFzc1Jl
ZlB0cjxJbWFnZT4gUGx1Z2luVmlldzo6c25hcHNob3QoKQogICAgICAgICAvLyBXaW5kb3dsZXNz
IHBsdWctaW5zIGFzc3VtZSB0aGF0IHRoZXkncmUgZHJhd2luZyBvbnRvIHRoZSB2aWV3J3MgREMu
CiAgICAgICAgIC8vIFRyYW5zbGF0ZSB0aGUgY29udGV4dCBzbyB0aGF0IHRoZSBwbHVnLWluIGRy
YXdzIGF0ICgwLCAwKS4KICAgICAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsK
LSAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJl
bnQoKSktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkpLmxvY2F0aW9uKCk7CisgICAgICAg
IEludFBvaW50IHBvc2l0aW9uID0gdG9GcmFtZVZpZXcocGFyZW50KCkpLT5jb250ZW50c1RvV2lu
ZG93KGZyYW1lUmVjdCgpKS5sb2NhdGlvbigpOwogICAgICAgICB0cmFuc2Zvcm0uZUR4ID0gLXBv
c2l0aW9uLngoKTsKICAgICAgICAgdHJhbnNmb3JtLmVEeSA9IC1wb3NpdGlvbi55KCk7CiAgICAg
ICAgIFNldFdvcmxkVHJhbnNmb3JtKGhkYy5nZXQoKSwgJnRyYW5zZm9ybSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDRiNjE4ZDJiOWVhNTY2ZDkxMjAxZTFkMzM0
YmE2NDkzMDQ5ZjA3ZWUuLmM5YTg1MTQ3M2I0ODNlYmQxZGZjNmY0NDg1Y2ViYTIwNjQ0MWY0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00MTUxLDcgKzQxNTEs
NyBAQCB2b2lkIFJlbmRlckJveDo6YWRkTGF5b3V0T3ZlcmZsb3coY29uc3QgTGF5b3V0UmVjdCYg
cmVjdCkKICAgICAgICAgYm9vbCBoYXNUb3BPdmVyZmxvdyA9ICFzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgJiYgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgICAgIGJv
b2wgaGFzTGVmdE92ZXJmbG93ID0gIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAm
JiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwogICAgICAgICBpZiAoaXNGbGV4aWJsZUJveCgp
ICYmIHN0eWxlKCktPmlzUmV2ZXJzZUZsZXhEaXJlY3Rpb24oKSkgewotICAgICAgICAgICAgUmVu
ZGVyRmxleGlibGVCb3gqIGZsZXhpYmxlQm94ID0gc3RhdGljX2Nhc3Q8UmVuZGVyRmxleGlibGVC
b3gqPih0aGlzKTsKKyAgICAgICAgICAgIFJlbmRlckZsZXhpYmxlQm94KiBmbGV4aWJsZUJveCA9
IHRvUmVuZGVyRmxleGlibGVCb3godGhpcyk7CiAgICAgICAgICAgICBpZiAoZmxleGlibGVCb3gt
PmlzSG9yaXpvbnRhbEZsb3coKSkKICAgICAgICAgICAgICAgICBoYXNMZWZ0T3ZlcmZsb3cgPSB0
cnVlOwogICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggZTQ3MGY5YjBhYzI0NTc4NmE4ODA3YjMzMGNl
MzVjY2ZkNjZkNjFiYi4uNDUxYmQwOGYwZDM5OTQzODA1MmRiN2ZmMDcyMzFmZTUxMDUzYWE4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCkBAIC0yNzcyLDcgKzI3NzIsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjptYXBB
YnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYQogICAgIExh
eW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCBMYXlvdXRQ
b2ludCgpKTsKIAogICAgIGlmICghc3R5bGUoKS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSAmJiBv
LT5oYXNDb2x1bW5zKCkpIHsKLSAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gc3RhdGljX2Nh
c3Q8UmVuZGVyQmxvY2sqPihvKTsKKyAgICAgICAgUmVuZGVyQmxvY2sqIGJsb2NrID0gdG9SZW5k
ZXJCbG9jayhvKTsKICAgICAgICAgTGF5b3V0UG9pbnQgcG9pbnQocm91bmRlZExheW91dFBvaW50
KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKICAgICAgICAgcG9pbnQgLT0gY29udGFp
bmVyT2Zmc2V0OwogICAgICAgICBibG9jay0+YWRqdXN0Rm9yQ29sdW1uUmVjdChjb250YWluZXJP
ZmZzZXQsIHBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuY3BwCmluZGV4IGE5MGQ1MjRiNjEzMjRjODQ3ZjQ0Zjk0ZDA4MmMxNDNhN2Zi
ZTc4ODkuLmZkNjkwODc0MWZmZTZiYzFmOTg4M2FkODk4Mzk5YTRkMjRiNTc0OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAt
MTAyLDcgKzEwMiw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnJlcXVpcmVzTGF5ZXIo
KSBjb25zdAogCiBib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0OjphbGxvd3NBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gd2lkZ2V0KCkgJiYgd2lkZ2V0KCktPmlz
UGx1Z2luVmlld0Jhc2UoKSAmJiBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdldCgp
KS0+cGxhdGZvcm1MYXllcigpOworICAgIHJldHVybiB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQ
bHVnaW5WaWV3QmFzZSgpICYmIHRvUGx1Z2luVmlld0Jhc2Uod2lkZ2V0KCkpLT5wbGF0Zm9ybUxh
eWVyKCk7CiB9CiAjZW5kaWYKIApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OnZpZXdDbGVhcmVkKCkKIHsKICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciA8
b2JqZWN0PiBlbGVtZW50cyB3aG9zZSBjb250ZW50cyBhcmUgcmVuZGVyZWQgYnkgV2ViQ29yZSAo
ZS5nLiBzcmM9ImZvby5odG1sIikuCiAgICAgaWYgKG5vZGUoKSAmJiB3aWRnZXQoKSAmJiB3aWRn
ZXQoKS0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7CisgICAgICAgIEZyYW1lVmlldyogdmlldyA9IHRv
RnJhbWVWaWV3KHdpZGdldCgpKTsKICAgICAgICAgaW50IG1hcmdpbldpZHRoID0gLTE7CiAgICAg
ICAgIGludCBtYXJnaW5IZWlnaHQgPSAtMTsKICAgICAgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFt
ZShpZnJhbWVUYWcpKSB7CkBAIC0zNTAsNyArMzUwLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RS
ZXMKICAgICBpZiAoIXdpZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFBsdWdpblZpZXdCYXNlKiB2aWV3ID0gc3RhdGlj
X2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPih3aWRnZXQoKSk7CisgICAgUGx1Z2luVmlld0Jhc2UqIHZp
ZXcgPSB0b1BsdWdpblZpZXdCYXNlKHdpZGdldCgpKTsKICAgICBJbnRQb2ludCByb3VuZGVkUG9p
bnQgPSBsb2NhdGlvbkluQ29udGFpbmVyLnJvdW5kZWRQb2ludCgpOwogCiAgICAgaWYgKFNjcm9s
bGJhciogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKSkg
ewpAQCAtMzc1LDcgKzM3NSw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnNjcm9sbChT
Y3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBnCiAgICAgaWYgKCF3
aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0
KCkpLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CisgICAgcmV0dXJuIHRvUGx1Z2lu
Vmlld0Jhc2Uod2lkZ2V0KCkpLT5zY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7CiB9CiAK
IGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERp
cmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBmbG9hdCBt
dWx0aXBsaWVyLCBOb2RlKiogc3RvcE5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IDQyODQ5M2IzNmIzMDVkMWZkZjFmMDUwYWQ0NjM2MWE3
M2NiM2IxNzIuLmNjMTRiMTg2ODdhY2M3NGM5OTM0NWViN2IxOTY0YzZhYmQyYTA5MzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzgsNiAr
MTc4LDIxIEBAIHByaXZhdGU6CiAgICAgaW50IG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmly
c3RMaW5lOwogfTsKIAoraW5saW5lIFJlbmRlckZsZXhpYmxlQm94KiB0b1JlbmRlckZsZXhpYmxl
Qm94KFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKCFvYmplY3QgfHwgb2JqZWN0LT5pc0ZsZXhpYmxlQm94KCkpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxSZW5kZXJGbGV4aWJsZUJveCo+KG9iamVjdCk7Cit9CisKK2lubGluZSBj
b25zdCBSZW5kZXJGbGV4aWJsZUJveCogdG9SZW5kZXJGbGV4aWJsZUJveChjb25zdCBSZW5kZXJP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
b2JqZWN0IHx8IG9iamVjdC0+aXNGbGV4aWJsZUJveCgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgUmVuZGVyRmxleGlibGVCb3gqPihvYmplY3QpOworfQorCisvLyBUaGlzIHdpbGwg
Y2F0Y2ggYW55b25lIGRvaW5nIGFuIHVubmVjZXNzYXJ5IGNhc3QuCit2b2lkIHRvUmVuZGVyRmxl
eGlibGVCb3goY29uc3QgUmVuZGVyRmxleGlibGVCb3gqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gUmVuZGVyRmxleGlibGVCb3hfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZS5jcHAKaW5kZXggZjRjM2NiNmI2ZjdmMjVjZmU0NGY3ZDgyNDgxMTgx
NGY2MjcxMmRkZS4uOWJkN2MxNjU0MDExNDI2MzEwZmIwZDZmNTEyYWNiNmY1OGY4YjNiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwCkBAIC01NCw3ICs1NCw3IEBA
IHZvaWQgUmVuZGVyRnJhbWU6OnZpZXdDbGVhcmVkKCkKICAgICBpZiAoIWVsZW1lbnQgfHwgIXdp
ZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgRnJhbWVWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOwor
ICAgIEZyYW1lVmlldyogdmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCgpKTsKIAogICAgIGludCBt
YXJnaW5XaWR0aCA9IGVsZW1lbnQtPm1hcmdpbldpZHRoKCk7CiAgICAgaW50IG1hcmdpbkhlaWdo
dCA9IGVsZW1lbnQtPm1hcmdpbkhlaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWVCYXNlLmNwcAppbmRleCBmNzlhMjFhOTk1OGZiMGRmZWVlMDNjNmU5M2YzNTJh
NzQyYzIxM2UxLi5mMmJlOWY2NDdhMjMzZmM3MDcyZGFmMzM1NTc3ODBlM2ZkMTE5MjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcApAQCAtNTQsOCAr
NTQsOCBAQCBpbmxpbmUgYm9vbCBzaG91bGRFeHBhbmRGcmFtZShMYXlvdXRVbml0IHdpZHRoLCBM
YXlvdXRVbml0IGhlaWdodCwgYm9vbCBoYXNGaXhlZAogCiB2b2lkIFJlbmRlckZyYW1lQmFzZTo6
bGF5b3V0V2l0aEZsYXR0ZW5pbmcoYm9vbCBoYXNGaXhlZFdpZHRoLCBib29sIGhhc0ZpeGVkSGVp
Z2h0KQogewotICAgIEZyYW1lVmlldyogY2hpbGRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPih3aWRnZXQoKSk7Ci0gICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRGcmFt
ZVZpZXcgPyBzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4oY2hpbGRGcmFtZVZpZXctPmZyYW1lKCkt
PmNvbnRlbnRSZW5kZXJlcigpKSA6IDA7CisgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9
IHRvRnJhbWVWaWV3KHdpZGdldCgpKTsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGls
ZEZyYW1lVmlldyA/IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSA6
IDA7CiAKICAgICBpZiAoIWNoaWxkUm9vdCB8fCAhc2hvdWxkRXhwYW5kRnJhbWUod2lkdGgoKSwg
aGVpZ2h0KCksIGhhc0ZpeGVkV2lkdGgsIGhhc0ZpeGVkSGVpZ2h0KSkgewogICAgICAgICB1cGRh
dGVXaWRnZXRQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlcklGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1l
LmNwcAppbmRleCA2YTYzMzY4ODhmYmYwMDZmNDBlMjQ2NzhmZDBiZTgxN2IzMzUwMGYxLi5hZTEx
NmFjNTI1NGFiMGQzYzUwODE3OTI2NDI1NjFkMDZjZDc4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcApAQCAtOTIsOCArOTIsOCBAQCBSZW5kZXJWaWV3KiBS
ZW5kZXJJRnJhbWU6OmNvbnRlbnRSb290UmVuZGVyZXIoKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBJcyB0aGlzIGFsd2F5cyBhIHZhbGlkIGNhc3Q/IFdoYXQgYWJvdXQgcGx1Z2lucz8KICAgICBB
U1NFUlQoIXdpZGdldCgpIHx8IHdpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICBGcmFtZVZp
ZXcqIGNoaWxkRnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOwot
ICAgIHJldHVybiBjaGlsZEZyYW1lVmlldyA/IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihjaGls
ZEZyYW1lVmlldy0+ZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkpIDogMDsKKyAgICBGcmFtZVZp
ZXcqIGNoaWxkRnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcod2lkZ2V0KCkpOworICAgIHJldHVybiBj
aGlsZEZyYW1lVmlldyA/IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIo
KSA6IDA7CiB9CiAKIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdApAQCAt
MTM3LDcgKzEzNyw3IEBAIHZvaWQgUmVuZGVySUZyYW1lOjpsYXlvdXRTZWFtbGVzc2x5KCkKICAg
ICAvLyBMYXlpbmcgb3V0IG91ciBraWRzIGlzIG5vcm1hbGx5IHJlc3BvbnNpYmxlIGZvciBhZGp1
c3Rpbmcgb3VyIGhlaWdodCwgc28gd2Ugc2V0IGl0IGhlcmUuCiAgICAgLy8gUmVwbGFjZWQgZWxl
bWVudHMgbm9ybWFsbHkgZG8gbm90IHJlc3BlY3QgcGFkZGluZywgYnV0IHNlYW1sZXNzIGVsZW1l
bnRzIHNob3VsZDogd2UnbGwgYWRkCiAgICAgLy8gYm90aCBwYWRkaW5nIGFuZCBib3JkZXIgdG8g
dGhlIGNoaWxkJ3MgbG9naWNhbCBoZWlnaHQgaGVyZS4KLSAgICBGcmFtZVZpZXcqIGNoaWxkRnJh
bWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOworICAgIEZyYW1lVmll
dyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7CiAgICAgaWYgKGNoaWxk
RnJhbWVWaWV3KSAvLyBXaWRnZXQgc2hvdWxkIG5ldmVyIGJlIG51bGwgZHVyaW5nIGxheW91dCgp
LCBidXQganVzdCBpbiBjYXNlLgogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGNoaWxkRnJhbWVW
aWV3LT5jb250ZW50c0hlaWdodCgpICsgYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0b20oKSArIHBh
ZGRpbmdUb3AoKSArIHBhZGRpbmdCb3R0b20oKSk7CiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgp
OwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgUmVuZGVySUZyYW1lOjpsYXlvdXRTZWFtbGVzc2x5
KCkKICAgICB1cGRhdGVXaWRnZXRQb3NpdGlvbigpOyAvLyBOb3RpZnkgdGhlIFdpZGdldCBvZiBv
dXIgZmluYWwgaGVpZ2h0LgogCiAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIGNoaWxkIGRvY3VtZW50
IGRpZCBhIGNvbXBsZXRlIGxheW91dC4KLSAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGls
ZEZyYW1lVmlldyA/IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihjaGlsZEZyYW1lVmlldy0+ZnJh
bWUoKS0+Y29udGVudFJlbmRlcmVyKCkpIDogMDsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3Qg
PSBjaGlsZEZyYW1lVmlldyA/IGNoaWxkRnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVy
ZXIoKSA6IDA7CiAgICAgQVNTRVJUKCFjaGlsZEZyYW1lVmlldyB8fCAhY2hpbGRGcmFtZVZpZXct
PmxheW91dFBlbmRpbmcoKSk7CiAgICAgQVNTRVJUX1VOVVNFRChjaGlsZFJvb3QsICFjaGlsZFJv
b3QgfHwgIWNoaWxkUm9vdC0+bmVlZHNMYXlvdXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGIyZjBhYTEyNjQwNTY3MGZm
ODc3Y2Y4ZmU5MjA4OGEwNGI0ZTQyZWQuLmNlZTVhMGZhY2QxMDlhNmRiOWRlMjZlMTkwMDVjYzM4
YjVmMjg3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC01NDksNyArNTQ5LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVw
ZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKCkKICAgICAgICAgdXBkYXRlSW1hZ2VDb250
ZW50cygpOwogCiAgICAgaWYgKHJlbmRlcmVyLT5pc0VtYmVkZGVkT2JqZWN0KCkgJiYgdG9SZW5k
ZXJFbWJlZGRlZE9iamVjdChyZW5kZXJlciktPmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmco
KSkgewotICAgICAgICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSBzdGF0aWNfY2Fz
dDxQbHVnaW5WaWV3QmFzZSo+KHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKS0+d2lkZ2V0KCkpOwor
ICAgICAgICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSB0b1BsdWdpblZpZXdCYXNl
KHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKS0+d2lkZ2V0KCkpOwogICAgICAgICBtX2dyYXBoaWNz
TGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShwbHVnaW5WaWV3QmFzZS0+cGxhdGZvcm1MYXllcigp
KTsKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzZDc0MWFlMmE0OWEyZmNiOGI5
MDhiZWI3YzM2NWQ5MDc3YTEwNDM5Li40MmNlNjc2MzIwMDk0ZTc2YjYzMDFkMDJmOWFiZTNkNDcw
OGNkNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcApAQCAtMTY0Myw3ICsxNjQzLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNvbnN0
CiAgICAgUmVuZGVyUGFydCogZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVyUGFydChyZW5kZXJlcik7
CiAgICAgaWYgKGZyYW1lUmVuZGVyZXItPndpZGdldCgpKSB7CiAgICAgICAgIEFTU0VSVChmcmFt
ZVJlbmRlcmVyLT53aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgICAgIEZyYW1lVmlldyog
dmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KGZyYW1lUmVuZGVyZXItPndpZGdldCgpKTsK
KyAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcoZnJhbWVSZW5kZXJlci0+d2lk
Z2V0KCkpOwogICAgICAgICBpZiAodmlldy0+aXNPdmVybGFwcGVkSW5jbHVkaW5nQW5jZXN0b3Jz
KCkgfHwgdmlldy0+aGFzQ29tcG9zaXRpbmdBbmNlc3RvcigpKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwCmluZGV4
IDRmYTdhZDFjYjM5NTFmM2NjNjM4OTgyN2RkYjZjYTE1NGJhODY1YmQuLjYwZjM5NDQ4MTYyYmJj
M2I3OWY0MDk2YzE3OGQ2ODQwOWI1NjJjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJQYXJ0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBSZW5kZXJQYXJ0OjpyZXF1aXJlc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdAogICAgIC8vIHJlbmRlcmVyIGFuZCB0aGUgcGx1
Z2luIGhhcyBhIGxheWVyLCB0aGVuIHdlIG5lZWQgYSBsYXllci4gU2Vjb25kLCBpZiB0aGlzIGlz
IAogICAgIC8vIGEgcmVuZGVyZXIgd2l0aCBhIGNvbnRlbnREb2N1bWVudCBhbmQgdGhhdCBkb2N1
bWVudCBuZWVkcyBhIGxheWVyLCB0aGVuIHdlIG5lZWQKICAgICAvLyBhIGxheWVyLgotICAgIGlm
ICh3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpICYmIHN0YXRpY19jYXN0
PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgaWYgKHdp
ZGdldCgpICYmIHdpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3QmFz
ZSh3aWRnZXQoKSktPnBsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBpZiAoIW5vZGUoKSB8fCAhbm9kZSgpLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpCkBAIC0xMDcs
NyArMTA3LDcgQEAgUmVuZGVyQm94KiBSZW5kZXJQYXJ0OjplbWJlZGRlZENvbnRlbnRCb3goKSBj
b25zdAogewogICAgIGlmICghbm9kZSgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJh
bWVWaWV3KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPih3aWRnZXQoKSktPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgIHJldHVybiB0b0Zy
YW1lVmlldyh3aWRnZXQoKSktPmVtYmVkZGVkQ29udGVudEJveCgpOwogfQogCiBib29sIFJlbmRl
clBhcnQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGFj
dGlvbikKQEAgLTExNSw3ICsxMTUsNyBAQCBib29sIFJlbmRlclBhcnQ6Om5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bAogICAgIGlm
ICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc0ZyYW1lVmlldygpIHx8ICFyZXF1ZXN0LmFsbG93
c0NoaWxkRnJhbWVDb250ZW50KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6Om5vZGVB
dFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRP
ZmZzZXQsIGFjdGlvbik7CiAKLSAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KCkpOworICAgIEZyYW1lVmlldyogY2hpbGRGcmFtZVZp
ZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7CiAgICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0g
Y2hpbGRGcmFtZVZpZXctPnJlbmRlclZpZXcoKTsKIAogICAgIGlmIChjaGlsZFJvb3QpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAppbmRleCAxNGFmMjU1NGNjZmZiYzc0
ZTY3NjY0ZmQwYjkzYmY5ZDQxNGRjYjMyLi4wNzY3NDRlMTYwN2QyNGQ3NTUzMzc1ZjhjNjU5Zjhm
ZjYzNWEyYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVi
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCkBAIC03
NCwxMyArNzQsMTMgQEAgc3RhdGljIGlubGluZSBib29sIGlzUnVieUFmdGVyQmxvY2soY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QpCiBzdGF0aWMgaW5saW5lIFJlbmRlckJsb2NrKiBydWJ5QmVm
b3JlQmxvY2soY29uc3QgUmVuZGVyT2JqZWN0KiBydWJ5KQogewogICAgIFJlbmRlck9iamVjdCog
Y2hpbGQgPSBydWJ5LT5maXJzdENoaWxkKCk7Ci0gICAgcmV0dXJuIGlzUnVieUJlZm9yZUJsb2Nr
KGNoaWxkKSA/IHN0YXRpY19jYXN0PFJlbmRlckJsb2NrKj4oY2hpbGQpIDogMDsKKyAgICByZXR1
cm4gaXNSdWJ5QmVmb3JlQmxvY2soY2hpbGQpID8gdG9SZW5kZXJCbG9jayhjaGlsZCkgOiAwOwog
fQogCiBzdGF0aWMgaW5saW5lIFJlbmRlckJsb2NrKiBydWJ5QWZ0ZXJCbG9jayhjb25zdCBSZW5k
ZXJPYmplY3QqIHJ1YnkpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHJ1YnktPmxhc3RD
aGlsZCgpOwotICAgIHJldHVybiBpc1J1YnlBZnRlckJsb2NrKGNoaWxkKSA/IHN0YXRpY19jYXN0
PFJlbmRlckJsb2NrKj4oY2hpbGQpIDogMDsKKyAgICByZXR1cm4gaXNSdWJ5QWZ0ZXJCbG9jayhj
aGlsZCkgPyB0b1JlbmRlckJsb2NrKGNoaWxkKSA6IDA7CiB9CiAKIHN0YXRpYyBSZW5kZXJCbG9j
ayogY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKFJlbmRlck9iamVjdCogcnVieSkKQEAg
LTk3LDE0ICs5NywxNCBAQCBzdGF0aWMgUmVuZGVyUnVieVJ1biogbGFzdFJ1YnlSdW4oY29uc3Qg
UmVuZGVyT2JqZWN0KiBydWJ5KQogICAgIGlmIChjaGlsZCAmJiAhY2hpbGQtPmlzUnVieVJ1bigp
KQogICAgICAgICBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKTsKICAgICBBU1NFUlQo
IWNoaWxkIHx8IGNoaWxkLT5pc1J1YnlSdW4oKSB8fCBjaGlsZC0+aXNCZWZvcmVDb250ZW50KCkg
fHwgY2hpbGQgPT0gcnVieUJlZm9yZUJsb2NrKHJ1YnkpKTsKLSAgICByZXR1cm4gY2hpbGQgJiYg
Y2hpbGQtPmlzUnVieVJ1bigpID8gc3RhdGljX2Nhc3Q8UmVuZGVyUnVieVJ1bio+KGNoaWxkKSA6
IDA7CisgICAgcmV0dXJuIGNoaWxkICYmIGNoaWxkLT5pc1J1YnlSdW4oKSA/IHRvUmVuZGVyUnVi
eVJ1bihjaGlsZCkgOiAwOwogfQogCiBzdGF0aWMgaW5saW5lIFJlbmRlclJ1YnlSdW4qIGZpbmRS
dWJ5UnVuUGFyZW50KFJlbmRlck9iamVjdCogY2hpbGQpCiB7CiAgICAgd2hpbGUgKGNoaWxkICYm
ICFjaGlsZC0+aXNSdWJ5UnVuKCkpCiAgICAgICAgIGNoaWxkID0gY2hpbGQtPnBhcmVudCgpOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJSdWJ5UnVuKj4oY2hpbGQpOworICAgIHJldHVy
biB0b1JlbmRlclJ1YnlSdW4oY2hpbGQpOwogfQogCiAvLz09PSBydWJ5IGFzIGlubGluZSBvYmpl
Y3QgPT09CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAK
aW5kZXggZDNmOGQ3NDYwYTczYmEyOGEwNWMyZTBiZTA0MDU4NGNkYWM5ZWExOC4uYjM2OWUxMjMz
MzQ3NWNiMzkyZWQyZDhjZTAwODZmMzc5MjU3MTAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQgd3Jp
dGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgaW50IGluZGVudCwgUmVu
ZGVyQXNUZXh0QmVoYXZpCiAgICAgaWYgKG8uaXNXaWRnZXQoKSkgewogICAgICAgICBXaWRnZXQq
IHdpZGdldCA9IHRvUmVuZGVyV2lkZ2V0KCZvKS0+d2lkZ2V0KCk7CiAgICAgICAgIGlmICh3aWRn
ZXQgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgICAgICBGcmFtZVZpZXcqIHZp
ZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOworICAgICAgICAgICAgRnJhbWVW
aWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcod2lkZ2V0KTsKICAgICAgICAgICAgIFJlbmRlclZpZXcq
IHJvb3QgPSB2aWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlm
IChyb290KSB7CiAgICAgICAgICAgICAgICAgdmlldy0+bGF5b3V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGMyMGZiYmIwN2FiYzkyM2NjYjQwNjNk
ODZiZjhhZjUwZTk3MjI1NzEuLjlhZjUzMTc1YTI0Y2NiNjQ5N2YyNzlkN2ZmNzk3MGFjNjFiMzBi
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yNjIs
NyArMjYyLDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE8KICAgICAgICAgcGFpbnRJbmZvLmNv
bnRleHQtPnRyYW5zbGF0ZSgtd2lkZ2V0UGFpbnRPZmZzZXQpOwogCiAgICAgaWYgKG1fd2lkZ2V0
LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4obV93aWRnZXQuZ2V0KCkpOworICAgICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fd2lkZ2V0LmdldCgpKTsKICAgICAgICAgYm9vbCBydW5P
dmVybGFwVGVzdHMgPSAhZnJhbWVWaWV3LT51c2VTbG93UmVwYWludHNJZk5vdE92ZXJsYXBwZWQo
KSB8fCBmcmFtZVZpZXctPmhhc0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMo
KTsKICAgICAgICAgaWYgKHBhaW50SW5mby5vdmVybGFwVGVzdFJlcXVlc3RzICYmIHJ1bk92ZXJs
YXBUZXN0cykgewogICAgICAgICAgICAgQVNTRVJUKCFwYWludEluZm8ub3ZlcmxhcFRlc3RSZXF1
ZXN0cy0+Y29udGFpbnModGhpcykpOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgUmVuZGVyV2lk
Z2V0OjpzZXRPdmVybGFwVGVzdFJlc3VsdChib29sIGlzT3ZlcmxhcHBlZCkKIHsKICAgICBBU1NF
UlQobV93aWRnZXQpOwogICAgIEFTU0VSVChtX3dpZGdldC0+aXNGcmFtZVZpZXcoKSk7Ci0gICAg
c3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV93aWRnZXQuZ2V0KCkpLT5zZXRJc092ZXJsYXBwZWQo
aXNPdmVybGFwcGVkKTsKKyAgICB0b0ZyYW1lVmlldyhtX3dpZGdldC5nZXQoKSktPnNldElzT3Zl
cmxhcHBlZChpc092ZXJsYXBwZWQpOwogfQogCiB2b2lkIFJlbmRlcldpZGdldDo6ZGVyZWYoUmVu
ZGVyQXJlbmEgKmFyZW5hKQpAQCAtMzQ5LDcgKzM0OSw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0Ojp1
cGRhdGVXaWRnZXRQb3NpdGlvbigpCiAgICAgLy8gaWYgdGhlIGZyYW1lIGJvdW5kcyBnb3QgY2hh
bmdlZCwgb3IgaWYgdmlldyBuZWVkcyBsYXlvdXQgKHBvc3NpYmx5IGluZGljYXRpbmcKICAgICAv
LyBjb250ZW50IHNpemUgaXMgd3JvbmcpIHdlIGhhdmUgdG8gZG8gYSBsYXlvdXQgdG8gc2V0IHRo
ZSByaWdodCB3aWRnZXQgc2l6ZQogICAgIGlmIChtX3dpZGdldCAmJiBtX3dpZGdldC0+aXNGcmFt
ZVZpZXcoKSkgewotICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KG1fd2lkZ2V0LmdldCgpKTsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcg
PSB0b0ZyYW1lVmlldyhtX3dpZGdldC5nZXQoKSk7CiAgICAgICAgIC8vIENoZWNrIHRoZSBmcmFt
ZSdzIHBhZ2UgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGlzbid0IGluIHRoZSBwcm9jZXNz
IG9mIGJlaW5nIGRlc3Ryb3llZC4KICAgICAgICAgaWYgKChib3VuZHNDaGFuZ2VkIHx8IGZyYW1l
Vmlldy0+bmVlZHNMYXlvdXQoKSkgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLT5wYWdlKCkpCiAgICAg
ICAgICAgICBmcmFtZVZpZXctPmxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAKaW5kZXggOWI4OTM3NWNhOTIxYzNhNjdhYTkxMTZkZTJkYTRmMTk3NmFlN2Y3
YS4uMDFjYWYwMzA5MmQxOWI1OTgwMTUxNmQ2ODhlYTdkZWZhYWQ4OWYwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0yNTUyLDcgKzI1NTIsNyBAQCBzdGF0
aWMgaW5saW5lIEZyYW1lKiBmcmFtZUZvck5vZGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGlm
IChyZW5kZXJlci0+aXNXaWRnZXQoKSkgewogICAgICAgICAgICAgICAgIFdpZGdldCogd2lkZ2V0
ID0gdG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpLT53aWRnZXQoKTsKICAgICAgICAgICAgICAgICBp
ZiAod2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJh
bWUoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHRvRnJhbWVWaWV3
KHdpZGdldCktPmZyYW1lKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWU7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtNTQxMiw3ICs1NDEyLDcgQEAg
c3RhdGljIGJvb2wgbmVlZHNMYXlvdXRSZWN1cnNpdmUoRnJhbWVWaWV3KiB2aWV3KQogICAgIGZv
ciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBjdXJyZW50ID0gdmll
d0NoaWxkcmVuLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZCAmJiAhc3ViZnJhbWVzTmVlZHNMYXlv
dXQ7ICsrY3VycmVudCkgewogICAgICAgICBXaWRnZXQqIHdpZGdldCA9ICgqY3VycmVudCkuZ2V0
KCk7CiAgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgICAgICBzdWJm
cmFtZXNOZWVkc0xheW91dCB8PSBuZWVkc0xheW91dFJlY3Vyc2l2ZShzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPih3aWRnZXQpKTsKKyAgICAgICAgICAgIHN1YmZyYW1lc05lZWRzTGF5b3V0IHw9IG5l
ZWRzTGF5b3V0UmVjdXJzaXZlKHRvRnJhbWVWaWV3KHdpZGdldCkpOwogICAgIH0KIAogICAgIHJl
dHVybiBzdWJmcmFtZXNOZWVkc0xheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggMWIzNWUxMGI5ZDUwMjlmYzk0YmQzZDIzY2RjMWVmMDYxMjYy
ZjNmNS4uZTJmODdjMGE5NTc0Mjc5OTVhMGI5YmRmNTFjYjc1MzAyNGViMTAxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTM1OCw3ICszNTgsNyBA
QCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQ
bHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1ZwogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeTo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAg
bV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7Cisg
ICAgbV9wbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdldCk7CiAgICAgaWYgKHBs
dWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lu
cHV0SGFuZGxlci5jcHAKaW5kZXggZWFkZmI0YmI1NDk1ZDJlZjhiYzRlMTc4ZWUzYTJmMTU2NzM3
ZmFlYi4uYmJkNmJkNGVmMDk0MTc3ZTFhMTEzOTY2ODFjNzQ5NTU0M2FjZGNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRs
ZXIuY3BwCkBAIC0xNDEyLDcgKzE0MTIsNyBAQCB2b2lkIElucHV0SGFuZGxlcjo6ZW5zdXJlRm9j
dXNQbHVnaW5FbGVtZW50VmlzaWJsZSgpCiAKICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdl
dCA9IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KG1fY3VycmVudEZvY3VzRWxlbWVudC0+cmVu
ZGVyZXIoKSk7CiAgICAgaWYgKHJlbmRlcldpZGdldCkgewotICAgICAgICBQbHVnaW5WaWV3KiBw
bHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHJlbmRlcldpZGdldC0+d2lkZ2V0
KCkpOworICAgICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHJlbmRl
cldpZGdldC0+d2lkZ2V0KCkpOwogCiAgICAgICAgIGlmIChwbHVnaW5WaWV3KQogICAgICAgICAg
ICAgc2VsZWN0aW9uRm9jdXNSZWN0ID0gcGx1Z2luVmlldy0+ZW5zdXJlVmlzaWJsZVJlY3QoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5l
ckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5jcHAKaW5kZXggOTEwMzQ5NjQ3MjBhNzI3NTk4ZDk2Nzk5NjNjMjJlMDlmZDUwOGFmYy4u
ZWNiMWMxODk5NTkwNmEwZGU5NTRlMzZhZjI4ZTEwOGFjMGRkMmEwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKQEAg
LTM2Myw3ICszNjMsNyBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNjcm9sbFJlY3Qo
aW50IGR4LCBpbnQgZHksIGNvbnN0IFdlYlJlY3QmIHJlY3QpCiB7CiAgICAgV2lkZ2V0KiBwYXJl
bnRXaWRnZXQgPSBwYXJlbnQoKTsKICAgICBpZiAocGFyZW50V2lkZ2V0LT5pc0ZyYW1lVmlldygp
KSB7Ci0gICAgICAgIEZyYW1lVmlldyogcGFyZW50RnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJh
bWVWaWV3Kj4ocGFyZW50V2lkZ2V0KTsKKyAgICAgICAgRnJhbWVWaWV3KiBwYXJlbnRGcmFtZVZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRXaWRnZXQpOwogICAgICAgICBpZiAoIXBhcmVudEZyYW1l
Vmlldy0+aXNPdmVybGFwcGVkKCkpIHsKICAgICAgICAgICAgIEludFJlY3QgZGFtYWdlUmVjdCA9
IGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3coc3RhdGljX2Nhc3Q8SW50UmVjdD4ocmVjdCkpOwog
ICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxEZWx0YShkeCwgZHkpOwpAQCAtNDk0LDcgKzQ5NCw3
IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0V2FudHNXaGVlbEV2ZW50cyhib29s
IHdhbnRzV2hlZWxFdmVudHMpCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPnBhZ2UoKSkgewogICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkgewogICAgICAg
ICAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICAg
ICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdMYXlvdXRVcGRhdGVkKHN0YXRp
Y19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKSk7CisgICAgICAgICAgICAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPmZyYW1lVmlld0xheW91dFVwZGF0ZWQodG9GcmFtZVZpZXcocGFyZW50KCkp
KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTY0NSw3ICs2NDUsNyBAQCB2b2lkIFdlYlBsdWdp
bkNvbnRhaW5lckltcGw6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAKICAg
ICAvLyBXZSBjYWNoZSB0aGUgcGFyZW50IEZyYW1lVmlldyBoZXJlIGFzIHRoZSBwbHVnaW4gd2lk
Z2V0IGNvdWxkIGJlIGRlbGV0ZWQKICAgICAvLyBpbiB0aGUgY2FsbCB0byBIYW5kbGVFdmVudC4g
U2VlIGh0dHA6Ly9iL2lzc3VlP2lkPTEzNjI5NDgKLSAgICBGcmFtZVZpZXcqIHBhcmVudFZpZXcg
PSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBwYXJl
bnRWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpOwogCiAgICAgV2ViTW91c2VFdmVudEJ1aWxk
ZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlm
ICh3ZWJFdmVudC50eXBlID09IFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1
bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGlu
YXRvckNocm9taXVtVGVzdC5jcHAKaW5kZXggYjU5Y2JhMTMxMzQyNjVmYjA2Njg1NmE1MTNjMzNk
MGJhNmIyYmI2Yy4uNGFlODU3NGMwMTk4MWQ3NmNkYTVhNTIyZWQ3ZWU5OTBkNmQ1MWY5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRv
ckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3Jv
bGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdC5jcHAKQEAgLTI1OCw3ICsyNTgsNyBAQCBURVNU
X0YoU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bVRlc3QsIGlmcmFtZVNjcm9sbGluZykKICAg
ICBBU1NFUlRfVFJVRShyZW5kZXJXaWRnZXQtPndpZGdldCgpKTsKICAgICBBU1NFUlRfVFJVRShy
ZW5kZXJXaWRnZXQtPndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKIAotICAgIEZyYW1lVmlldyog
aW5uZXJGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihyZW5kZXJXaWRnZXQtPndp
ZGdldCgpKTsKKyAgICBGcmFtZVZpZXcqIGlubmVyRnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocmVu
ZGVyV2lkZ2V0LT53aWRnZXQoKSk7CiAgICAgUmVuZGVyVmlldyogaW5uZXJSZW5kZXJWaWV3ID0g
aW5uZXJGcmFtZVZpZXctPnJlbmRlclZpZXcoKTsKICAgICBBU1NFUlRfVFJVRShpbm5lclJlbmRl
clZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggZTk5MGRjYzljNGFhMDI5MTdkOTNhNzA2
ZThlNzYzNmU5MzdkNjYwNC4uMTI2NDIxZGYzNGE2ZTBiMjU5MDAzY2IxNWYzMTEwYTFiZmIyMzA5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzc2LDcgKzM3Niw3IEBAIFBhc3NSZWZQdHI8RnJh
bWU+IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpjcmVhdGVGcmFtZShjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnJlZGlyZWN0RGF0YVRvUGx1
Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewotICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19j
YXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOworICAgIG1fcGx1Z2luVmlldyA9IHRvUGx1
Z2luVmlldyhwbHVnaW5XaWRnZXQpOwogICAgIGlmIChwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1f
aGFzU2VudFJlc3BvbnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRl
eCBjZjlhYzRiZjc2NjFjODE3ZGY0NDFkNjYyMDc3N2Q1OGE2NDVjNDM4Li5hNDdkYzA3ZDIxOWU3
MDk0NzkyZmEyYjk0YjA3ODk3MTAzNTdjNzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC01NTIs
NyArNTUyLDcgQEAgUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZy
YW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJgogCiB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKIHsKLSAgICBt
X3BsdWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKKyAg
ICBtX3BsdWdpblZpZXcgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAgICBpZiAocGx1
Z2luV2lkZ2V0KQogICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5vZGUubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlJlbmRlck5vZGUubW0KaW5kZXggMjM5MmI5
OWY2ZGMyMDY0OGM4YjM4YjRlNzdkYmMzZjM1NDE2OTAxOS4uYTE4MGVlZWFkNmIzODU0NmQ5ZmI2
MDU4MTEyZTEwNzAwOGU2NTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJSZW5kZXJOb2RlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVu
ZGVyTm9kZS5tbQpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgV2ViUmVuZGVyTm9kZSAqY29weVJl
bmRlck5vZGUoUmVuZGVyT2JqZWN0KiBub2RlKQogICAgIAogICAgIFJlbmRlcldpZGdldCogcmVu
ZGVyV2lkZ2V0ID0gbm9kZS0+aXNXaWRnZXQoKSA/IHRvUmVuZGVyV2lkZ2V0KG5vZGUpIDogMDsK
ICAgICBXaWRnZXQqIHdpZGdldCA9IHJlbmRlcldpZGdldCA/IHJlbmRlcldpZGdldC0+d2lkZ2V0
KCkgOiAwOwotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gd2lkZ2V0ICYmIHdpZGdldC0+aXNG
cmFtZVZpZXcoKSA/IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCkgOiAwOworICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gd2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSA/IHRv
RnJhbWVWaWV3KHdpZGdldCkgOiAwOwogICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lVmlldyA/IGZy
YW1lVmlldy0+ZnJhbWUoKSA6IDA7CiAKICAgICAvLyBGSVhNRTogYnJva2VuIHdpdGggdHJhbnNm
b3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDc2Mjc1NmUwNGVkOTQw
MzNlYzE2NDMxNzQ3MTE1ZDMwMDRiOGNiYjEuLjNmMzgxY2QwZjYwMzEyMDA4ZjAzZTA2MTQwM2Fh
MjFjNTU2MTQzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIwOTIs
NyArMjA5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKICAg
ICBmb3IgKEhhc2hTZXQ8UmVmUHRyPFdpZGdldD4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjaGls
ZHJlbi0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFdpZGdldCogd2lkZ2V0
ID0gKCppdCkuZ2V0KCk7CiAgICAgICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKLSAg
ICAgICAgICAgIFtzZWxmIF9hZGRTY3JvbGxlckRhc2hib2FyZFJlZ2lvbnNGb3JGcmFtZVZpZXc6
c3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KSBkYXNoYm9hcmRSZWdpb25zOnJlZ2lvbnNd
OworICAgICAgICAgICAgW3NlbGYgX2FkZFNjcm9sbGVyRGFzaGJvYXJkUmVnaW9uc0ZvckZyYW1l
Vmlldzp0b0ZyYW1lVmlldyh3aWRnZXQpIGRhc2hib2FyZFJlZ2lvbnM6cmVnaW9uc107CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwZTYyMjhk
ZTdmYmJhMDI1Y2MwZWVkNmRiYjJlOGFkNjIwM2IyNmZlLi45OTkxZDg1M2ZjNDE2MWUyNGYzZTYx
NzhkNTAxY2RiZmNmYzJiNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE0MjMsNyArMTQyMyw3IEBA
IHB1YmxpYzoKICAgICAgICAgUVJlY3QgY2xpcFJlY3Q7CiAgICAgICAgIGlmIChwYXJlbnRTY3Jv
bGxWaWV3KSB7CiAgICAgICAgICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihw
YXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKTsKLSAgICAgICAgICAgIGNsaXBSZWN0ID0g
c3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyktPndpbmRvd0NsaXBSZWN0
KCk7CisgICAgICAgICAgICBjbGlwUmVjdCA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcp
LT53aW5kb3dDbGlwUmVjdCgpOwogICAgICAgICAgICAgY2xpcFJlY3QudHJhbnNsYXRlKC13aW5k
b3dSZWN0LngoKSwgLXdpbmRvd1JlY3QueSgpKTsKICAgICAgICAgfQogICAgICAgICB3aWRnZXQt
PnNldEdlb21ldHJ5QW5kQ2xpcCh3aW5kb3dSZWN0LCBjbGlwUmVjdCwgaXNWaXNpYmxlKCkpOwpA
QCAtMTU1MSw3ICsxNTUxLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnaW5TaXplLAogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50UXQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0
KQogewotICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5X
aWRnZXQpOworICAgIG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVnaW5XaWRnZXQpOwog
ICAgIGlmIChwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4g
PSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L0VtYmVkZGVkV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L0Vt
YmVkZGVkV2lkZ2V0LmNwcAppbmRleCAwMDQ0MjI5MWM2MjM1MzA0NjVjZDA4Y2JiOTAwMzk1NmI3
MDJhNjQ0Li42MmQwYjllODI5YmIxYjQwMzQ1ZWMyMzNhZjEzNGNmNjM2ZDNjODlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9FbWJlZGRlZFdpZGdldC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvRW1iZWRkZWRXaWRnZXQuY3Bw
CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgRW1iZWRkZWRXaWRnZXQ6OmZyYW1lUmVjdHNDaGFuZ2Vk
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHBhcmVudCgpLT5pc0ZyYW1lVmlldygp
KTsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBh
cmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgp
KTsKIAogICAgIEludFJlY3Qgb2xkV2luZG93UmVjdCA9IG1fd2luZG93UmVjdDsKICAgICBJbnRS
ZWN0IG9sZENsaXBSZWN0ID0gbV9jbGlwUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBkNGJl
YmI2MmNlNTA2N2FiYWE5ZGJhMmE4YzJkZTJiOThmMDQ0N2QwLi4xMzMyZTRlNWE3MDg5YmFhYzlm
Yzg3NTZjZTJmMTBmNmVhM2EwYWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04ODMsNyArODgz
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lk
Z2V0KiBwbHVnaW5XaWRnZXQpCiB7CiAgICAgLy8gSWRlYWxseSwgdGhpcyBmdW5jdGlvbiBzaG91
bGRuJ3QgYmUgbmVjZXNzYXJ5LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzQ4NTI4ODk+CiAgICAgaWYg
KCFwbHVnaW5XaWRnZXQgfHwgcGx1Z2luV2lkZ2V0LT5pc1BsdWdpblZpZXcoKSkKLSAgICAgICAg
bV9tYW51YWxMb2FkZXIgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsK
KyAgICAgICAgbV9tYW51YWxMb2FkZXIgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAg
ICBlbHNlIAogICAgICAgICBtX21hbnVhbExvYWRlciA9IHN0YXRpY19jYXN0PEVtYmVkZGVkV2lk
Z2V0Kj4ocGx1Z2luV2lkZ2V0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDU0
MDEyMzY5MTAyNTY4NDUyNTNjNmQ4ODU1MjA1NDAyZjE2ZTI4YjIuLjI3YzQ3MDQ1MGM2NTk0MTJl
NjUyNTZmYzJkZDU1ZDY0MWNmNDhhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAt
MTc0LDcgKzE3NCw3IEBAIFBhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6
OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyCiAKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRTo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQp
CiB7Ci0gICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldp
ZGdldCk7CisgICAgbV9wbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdldCk7CiAg
ICAgaWYgKHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50V3guY3BwCmluZGV4IDQ5MWYzNGVlOWFkZmFiNWUyMjAyMjVkN2I1MTM5
NGE1NDhlYWZlMjMuLjlhY2YwMjkwZWRlMDFlNGY1MjhjYjQ0NTAxYWUzNGIyMmQ4ZjBmMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5jcHAKQEAgLTg5OCw3ICs4OTgsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVM
b2FkZXJDbGllbnRXeDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxQbAog
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCog
cGx1Z2luV2lkZ2V0KQogewotICAgIG1fcGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZp
ZXcqPihwbHVnaW5XaWRnZXQpOworICAgIG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVn
aW5XaWRnZXQpOwogICAgIGlmIChwbHVnaW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3Bv
bnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9i
amVjdC5jcHAKaW5kZXggYjcyZmYwNDljMjJlN2QzZjg4Nzk3YTM2NDExNmE4MDQwYjVlZDIzZS4u
MGQ2NzY5NjVmMWExZDY0OWJmYTdmYjY2YjU2NGUyZjEyNmU1NjVkOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBXZWJSZW5k
ZXJPYmplY3Q6OldlYlJlbmRlck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBib29sIHNo
b3VsZEluY2x1ZGVEZXNjZQogICAgIGlmICghd2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVWaWV3
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRv
RnJhbWVWaWV3KHdpZGdldCk7CiAgICAgaWYgKFJlbmRlclZpZXcqIGNvcmVDb250ZW50UmVuZGVy
ZXIgPSBmcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpKSB7CiAgICAgICAgIFJl
ZlB0cjxXZWJSZW5kZXJPYmplY3Q+IGNvbnRlbnRSZW5kZXJlciA9IGFkb3B0UmVmKG5ldyBXZWJS
ZW5kZXJPYmplY3QoY29yZUNvbnRlbnRSZW5kZXJlciwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRz
KSk7CiAgICAgICAgIG1fY2hpbGRyZW4tPmFwcGVuZChjb250ZW50UmVuZGVyZXIuZ2V0KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193325</attachid>
            <date>2013-03-15 09:55:17 -0700</date>
            <delta_ts>2013-03-15 10:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112401-20130315095112.patch</filename>
            <type>text/plain</type>
            <size>93193</size>
            <attacher name="Abhishek Arya">inferno</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzdiYTI4YTE1OGRiNzhj
ZjI1OTM1OGQzNDAzOWI0NGI2NjI3Yzc3ZC4uOGQ4Zjk2NzFiNzhjMzM5Y2Q2NjA2ZjYxMTc5Yzky
NGQ0NzIwODE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2OSBAQAorMjAxMy0wMy0xNSAgQWJo
aXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3Rh
dGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJl
ZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRv
IGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwZW5kQWNjZXNzaWJpbGl0eU9iamVjdCk6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvbkZvclBvaW50KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojp3ZWJBcmVhT2JqZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpkb2N1bWVudEZyYW1lVmll
dyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50T2Jq
ZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3OjpwYXJlbnRP
YmplY3RJZkV4aXN0cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVj
dENhY2hlQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luU2NyaXB0T2JqZWN0
RnJvbVBsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNjcmlwdERlYnVnU2VydmVyOjpz
ZXRKYXZhU2NyaXB0UGF1c2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVNjcmlw
dEluc3RhbmNlRm9yV2lkZ2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2Ny
aXB0SW5zdGFuY2VGb3JXaWRnZXQpOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRh
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnN1YmZyYW1lRm9yVGFyZ2V0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OnBhc3NHZXN0dXJlRXZlbnRUb1dpZGdldCk6CisgICAgICAgICogcGFnZS9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZnJhbWVGb3JXaWRnZXQpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RGcmFt
ZVZpZXdDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Omhhc0N1c3RvbVNj
cm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWlu
aW5nVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZW1vdmVDaGlsZCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRnJhbWVWaWV3
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpjb2xsZWN0UGx1Z2luVmlld3MpOgorICAgICAgICAqIHBhZ2UvY2hy
b21pdW0vRXZlbnRIYW5kbGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2VmbC9FdmVu
dEhhbmRsZXJFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hl
ZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBh
Z2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGlu
YXRvcjo6Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKToKKyAgICAgICAgKiBwYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
YXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL3d4L0V2ZW50SGFuZGxlcld4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dp
ZGdldCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAoV2ViQ29y
ZTo6dG9TY3JvbGxWaWV3KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OmlzU2Nyb2xsVmll
d1Njcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om1vdXNlVXApOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpheE9iamVjdENhY2hlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6aXNTY3JvbGxWaWV3KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ibGFja2JlcnJ5L1BsYXRmb3JtU2NyZWVuQmxhY2tCZXJyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b1VzZXJTcGFjZSk6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhckVmbC5jcHA6CisgICAgICAgIChTY3JvbGxiYXJFZmw6OnNldFBhcmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0Ojpwb3B1cHNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtU3VwcG9ydDo6cGx1Z2luU2NyaXB0YWJsZU9iamVjdCk6CisgICAgICAgICog
cGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRQbHVn
aW5PY2NsdXNpb25zKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvUGx1Z2luVmlldyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpblZpZXdCYXNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3QmFz
ZTo6aXNQbHVnaW5WaWV3QmFzZSk6CisgICAgICAgIChQbHVnaW5WaWV3QmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjp0b1BsdWdpblZpZXdCYXNlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3QmxhY2tCZXJyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6dXBkYXRlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZVNjcm9s
bEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmNhbGN1bGF0ZUNsaXBSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUZ1bGxTY3JlZW5BbGxvd2Vk
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlRnVsbFNjcmVlbkV4
aXRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzZXRQYXJlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNl
dEJhY2tncm91bmRQbGF5KToKKyAgICAgICAgKiBwbHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmll
d1ByaXZhdGVCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2
YXRlOjpzZXRWaXNpYmxlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1ByaXZh
dGU6OnNob3dLZXlib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3UHJpdmF0ZTo6
cmVxdWVzdEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1ByaXZhdGU6
OnJlcXVlc3RDZW50ZXJGaXRab29tKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2
YXRlOjpsb2NrT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlld1ByaXZh
dGU6OnVubG9ja09yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXdQcml2
YXRlOjpwcmV2ZW50SWRsZSk6CisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgor
ICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdp
blZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5X
aWRnZXQpOgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpblZpZXc6OnBhaW50SW50b1RyYW5zZm9ybWVkQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwYWludFdpbmRvd2VkUGx1Z2luSW50b0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpzZXROUFdpbmRvd1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c25h
cHNob3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjphZGRMYXlvdXRPdmVyZmxvdyk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1v
ZGVsT2JqZWN0OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVk
ZGVkT2JqZWN0OjphbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnNjcm9sbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjp0b1JlbmRlckZsZXhpYmxlQm94KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZTo6dmlld0NsZWFyZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RnJhbWVCYXNlOjpsYXlvdXRXaXRoRmxhdHRlbmluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmNvbnRlbnRS
b290UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpsYXlvdXRTZWFt
bGVzc2x5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNv
bmZpZ3VyYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9w
YWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJQYXJ0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBhcnQ6OnJlcXVpcmVzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0OjplbWJl
ZGRlZENvbnRlbnRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUGFydDo6bm9kZUF0UG9p
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnJ1YnlCZWZvcmVCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpydWJ5QWZ0ZXJCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpsYXN0UnVieVJ1bik6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
UnVieVJ1blBhcmVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6d3JpdGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0OjpwYWludENvbnRlbnRz
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6c2V0T3ZlcmxhcFRlc3RSZXN1bHQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyV2lkZ2V0Ojp1cGRhdGVXaWRnZXRQb3NpdGlvbik6
CisKIDIwMTMtMDMtMTQgIEFsYmVydG8gR2FyY2lhICA8YWdhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBHcmFkaWVudDogZG9uJ3QgdXNlIHRoZSBkZWZhdWx0IHNldFBs
YXRmb3JtR3JhZGllbnRTcGFjZVRyYW5zZm9ybSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwppbmRleCA1ZjZiMzdjZjcyNDVjMDYyNmVhYTQzYmVjMTUyMGJkZThmNWE3ODRlLi41NTQ1MmVi
M2UzNTBkOTI2ZDkyNDMzZTQyMzE0NjI2MzRkOWExMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGlu
ZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGgg
dG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3Rh
dGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0
cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBBcGkv
V2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OmZyYW1lRm9yTm9kZSk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Om5lZWRzTGF5b3V0UmVjdXJzaXZlKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpyZWRpcmVjdERh
dGFUb1BsdWdpbik6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnB1dEhhbmRsZXI6OmVuc3VyZUZvY3VzUGx1
Z2luRWxlbWVudFZpc2libGUpOgorCiAyMDEzLTAzLTE0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJu
b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byog
aGVscGVyIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWJiNjQ1YmNh
ZjZhYTk5ZjRjNjc5MWMwMGExZTJmMzZmMjQzYjM1ZC4uYjEwYmM3ZDEyZDhjY2RhNTAzMGY5NjJi
ZGZhNGIwOTMwZTUzNzRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVs
cGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2Ug
dGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3Rp
bmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNjcm9sbFJl
Y3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRXYW50c1do
ZWVsRXZlbnRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFu
ZGxlTW91c2VFdmVudCk6CisgICAgICAgICogdGVzdHMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJv
bWl1bVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorCiAyMDEzLTAzLTE0ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLiAgUm9sbGVkIENocm9taXVtIERFUFMgdG8gcjE4ODAwNC4gIFJlcXVlc3RlZCBieQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDViYzE0YWM3MzlkOGE2ZGU2ZDVkYmI0ODEyY2MxOTBkOGU1YTk4
MDEuLmVhMTI3Y2Q1YjE4NGNkNGI1NDI2Zjk4ODU3NjZjZTk5ZTAzZDg5M2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVy
bm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8q
IGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGlj
X2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBl
YXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorCiAyMDEzLTAzLTE0ICBK
b25hdGhhbiBMaXUgIDxuZXQxNDdAZ21haWwuY29tPgogCiAgICAgICAgIEZpeCBkZXRlY3Rpb24g
b2YgSW50ZWwgTWFjIE9TIFggcGxhdGZvcm0gb24gSW50ZWwgTWFjIDY0LWJpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCmluZGV4IDkwOWFiMTg3ODY4MTNkZmNlMWZiOTI4NzgwOGZmMjg2NDhlMThiMGMuLjc4ZDc3
Y2ViZTUzNjU3MjAxY2JhMjc4M2ZkM2ZjMWJlNzFkZjQ2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2Fs
bHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24g
dGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisKIDIwMTMtMDMtMTQgIEFiaGlzaGVrIEFyeWEg
IDxpbmZlcm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3
aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDMwN2M4ZTMyMjUz
ZWQ5OTgzZDdiM2MzNTRiOWRhN2UxMGZlZWJmYjYuLjM4ZjY1YjY1OTEzOGUzNzNhNzBhODE4N2Y1
NjI4NmQ4Yjk4NDcyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0w
My0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
cGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9u
cyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAg
ICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1
Y3R1cmUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJlbmRlck5vZGUubW06CisgICAgICAgIChj
b3B5UmVuZGVyTm9kZSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9hZGRTY3JvbGxlckRhc2hib2FyZFJlZ2lvbnNGb3JGcmFtZVZpZXc6ZGFzaGJv
YXJkUmVnaW9uczpdKToKKwogMjAxMy0wMy0xNCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBl
ciBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGFlNWNlMGY3NzY1YTVhZjk5ZDdhNGNkNDY0
Nzc5YjE1MTkwOWExZTEuLjM1NzM4NzIwZmNmYWU1MmNkNjY3ZWYwZjJjYjZiMzBlZGQwN2VjYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFy
eWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0
cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBv
dmVyIHN0YXRpY19jYXN0IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBi
YWQgY2FzdHMgZWFzaWx5IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpyZWRpcmVjdERhdGFUb1BsdWdpbik6CisKIDIwMTMt
MDMtMTQgIFJpayBDYWJhbmllciAgPGNhYmFuaWVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbUXRd
W1dLMV0gUkVHUkVTU0lPTihyMTQ1Nzg0KTogQmxlbmQgdGVzdHMgYXJlIGZhaWxpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCA1YWVmOTZhNGY4YTM0N2ZmN2ViOTRmYWJmOTYyYmZlYTk3ZDljMTA2Li5j
ZGQzODIyZTQ0ZmIzNzlmMjk2MGJjYzgxZDNmNjIwMGRlNDE4ZmQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxw
ZXIgZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEyNDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgdG8qIGhlbHBlciBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZCBvdmVyIHN0YXRpY19jYXN0
IGNhbGxzIHNpbmNlIHRoZXkKKyAgICAgICAgaGVscCB0byBjYXRjaCBiYWQgY2FzdHMgZWFzaWx5
IG9uIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRW1iZWRkZWRXaWRnZXQuY3BwOgorICAgICAgICAoRW1iZWRkZWRXaWRnZXQ6OmZyYW1lUmVj
dHNDaGFuZ2VkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVn
aW4pOgorCiAyMDEzLTAzLTE0ICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5j
aWFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIHR5cGVk
ZWZzIHRvIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uYjdjMTY5ZDc0MjM2YWEy
ZWMyMWI5ZDQwNjdlMDllNjdmN2JhMWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlv
bnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0
MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byog
aGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2lu
Y2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRl
c3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRX
aW5DRTo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250
cm9sbGVyIG9uIG5vbi1NYWMgcG9ydHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNo
b3dEZWxldGVJbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMWYwYTBkMDI4YzdiNmFiNWMxNTUw
OWJlNzZkM2Q4M2E1OWQzZjM0ZS4uODcyNjcyMTFjZDFhNjFmMjdhMDgyYmM4MjQ3MDc5M2NkOTg3
MjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNo
ZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGlj
X2Nhc3RzIHdpdGggdG8qIGhlbHBlciBmdW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVy
cmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNh
dGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorCiAy
MDEzLTAzLTE0ICBKb25hdGhhbiBMaXUgIDxuZXQxNDdAZ21haWwuY29tPgogCiAgICAgICAgIEZp
eCBkZXRlY3Rpb24gb2YgSW50ZWwgTWFjIE9TIFggcGxhdGZvcm0gb24gSW50ZWwgTWFjIDY0LWJp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDIyMTQwZTllZWUwYmY5NWJhZmJmNTIzM2Y5MzczNzcyNDhhZjI2NDMu
LmNlZDk1NjJkMGE3M2Y0MjBjYTNkZGRiY2I4NWQ2NzYxODU4NWJiNmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJlcGxhY2Ugc3RhdGljX2Nhc3RzIHdpdGggdG8qIGhlbHBlciBm
dW5jdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTI0MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICB0byogaGVscGVyIGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2Fs
bHMgc2luY2UgdGhleQorICAgICAgICBoZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24g
dGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJP
YmplY3QpOgorCiAyMDEzLTAzLTE0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmVwbGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0
aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCmluZGV4IDc5YjliYjkxZTQ4N2JiN2YxYTVjNWFjYmRmYzMxNjU3MDVhNzZl
NjcuLjAzY2QzZDM3NTFiZDI3ZTFhYzI4OTJkZDQ0ZTExMzQ5ZTQxZTE2NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApA
QCAtMzk5LDcgKzM5OSw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZEFjY2Vzc2liaWxpdHlPYmplY3Qo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBBY2Nlc3NpYmlsaXR5CiAgICAgICAgIGlmICgh
d2lkZ2V0IHx8ICF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIAotICAgICAgICBEb2N1bWVudCogZG9jID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
d2lkZ2V0KS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgRG9jdW1lbnQqIGRvYyA9IHRv
RnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgICAgIGlmICghZG9j
IHx8ICFkb2MtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggNTZhZTVkZmY0NjJiMGFiOTY0YmY0MGVjYmVhZGYxZjM5YjYx
NjdmMS4uYTYzNzNkNjljNDJhZDJkYTRkMjdmOGNlNzJiYmU2N2Y3M2U1ZmE4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuY3BwCkBAIC0yMDEzLDExICsyMDEzLDExIEBAIFZpc2libGVQb3NpdGlvbiBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp2aXNpYmxlUG9zaXRpb25Gb3JQb2ludChjb25zdCBJbnRQ
b2luCiAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gdG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpLT53
aWRnZXQoKTsKICAgICAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpOworICAgICAgICBGcmFtZSogZnJhbWUgPSB0b0Zy
YW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpOwogICAgICAgICBpZiAoIWZyYW1lKQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIHJlbmRlclZpZXcgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVy
VmlldygpOwotICAgICAgICBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRn
ZXQpOworICAgICAgICBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gaW5uZXJOb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KHBv
aW50UmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVNjcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAKaW5kZXggMTliNDQ4MmVjODNjNmIwOWY2ZGYyNWNj
ZDdkOTE4ZWNmM2MwZjEwZS4uMjZmZjYyZmMwZTE1ZGQyNDIwNDc0ZWUyYTU3MTRiOWYxOThkNWQz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
U2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2Nyb2xsVmlldy5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6d2ViQXJlYU9iamVjdCgpIGNvbnN0CiAgICAg
aWYgKCFtX3Njcm9sbFZpZXcgfHwgIW1fc2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgCi0gICAgRG9jdW1lbnQqIGRvYyA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQq
IGRvYyA9IHRvRnJhbWVWaWV3KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2MgfHwgIWRvYy0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAg
LTIwNCw3ICsyMDQsNyBAQCBGcmFtZVZpZXcqIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3Ojpkb2N1
bWVudEZyYW1lVmlldygpIGNvbnN0CiAgICAgaWYgKCFtX3Njcm9sbFZpZXcgfHwgIW1fc2Nyb2xs
Vmlldy0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fc2Nyb2xsVmlldyk7CisgICAgcmV0dXJuIHRvRnJh
bWVWaWV3KG1fc2Nyb2xsVmlldyk7CiB9ICAgIAogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nl
c3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50T2JqZWN0KCkgY29uc3QKQEAgLTIxMiw3ICsyMTIs
NyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldzo6cGFyZW50
T2JqZWN0KCkgY29uc3QKICAgICBpZiAoIW1fc2Nyb2xsVmlldyB8fCAhbV9zY3JvbGxWaWV3LT5p
c0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV9zY3JvbGxWaWV3KS0+
ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7CisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25l
ciA9IHRvRnJhbWVWaWV3KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPm93bmVyRWxlbWVudCgpOwog
ICAgIGlmIChvd25lciAmJiBvd25lci0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGF4T2Jq
ZWN0Q2FjaGUoKS0+Z2V0T3JDcmVhdGUob3duZXIpOwogCkBAIC0yMjQsNyArMjI0LDcgQEAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc6OnBhcmVudE9iamVjdElm
RXhpc3RzKCkgY29uc3QKICAgICBpZiAoIW1fc2Nyb2xsVmlldyB8fCAhbV9zY3JvbGxWaWV3LT5p
c0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gMDsKICAgICAKLSAgICBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV9zY3JvbGxWaWV3KS0+
ZnJhbWUoKS0+b3duZXJFbGVtZW50KCk7CisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25l
ciA9IHRvRnJhbWVWaWV3KG1fc2Nyb2xsVmlldyktPmZyYW1lKCktPm93bmVyRWxlbWVudCgpOwog
ICAgIGlmIChvd25lciAmJiBvd25lci0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGF4T2Jq
ZWN0Q2FjaGUoKS0+Z2V0KG93bmVyKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNw
cAppbmRleCBmNjhhNTkxODIzMjJiZTYwOGEyYmQ1NDhlZjhmNTI0OTg3Y2U0OTIyLi5mMmJkN2Yw
MzA0NWU4ZmU0MjRjZTg5ODcxYWQzYzRmNzMxNzkwM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hy
b21pdW0uY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAg
ICAgIFNjcm9sbGJhciogc2Nyb2xsQmFyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eVNjcm9s
bGJhcio+KG9iaiktPnNjcm9sbGJhcigpOwogICAgICAgICBpZiAoIXNjcm9sbEJhciB8fCAhc2Ny
b2xsQmFyLT5wYXJlbnQoKSB8fCAhc2Nyb2xsQmFyLT5wYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSkK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4oc2Nyb2xsQmFyLT5wYXJlbnQoKSktPmZyYW1lKCktPmRvY3VtZW50
KCk7CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRvRnJhbWVWaWV3KHNjcm9sbEJhci0+
cGFyZW50KCkpLT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoZG9jdW1lbnQgIT0g
ZG9jdW1lbnQtPnRvcERvY3VtZW50KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG9i
aiA9IGdldChkb2N1bWVudC0+cmVuZGVyZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCA2ZjE2NmFj
OWQ3YjU3ZTg2ZjNmNTQ5MmI5ZGEzZThkYjRmOGE0YjRmLi42OWQzMzA5ZjFkMzQ3ODZlOTFkNzEw
NGNmYzQ3N2NkOTEzZjQ0YjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3Rh
dGljIEpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3RGcm9tUGx1Z2luVmlld0Jhc2UoSFRNTFBs
dWdJbkVsZW1lbnQqIHBsdWdpbkUKICAgICBpZiAoIXBsdWdpbldpZGdldC0+aXNQbHVnaW5WaWV3
QmFzZSgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFBsdWdpblZpZXdCYXNlKiBwbHVnaW5W
aWV3QmFzZSA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4ocGx1Z2luV2lkZ2V0KTsKKyAg
ICBQbHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSB0b1BsdWdpblZpZXdCYXNlKHBsdWdp
bldpZGdldCk7CiAgICAgcmV0dXJuIHBsdWdpblZpZXdCYXNlLT5zY3JpcHRPYmplY3QoZ2xvYmFs
T2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFn
ZVNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VT
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggNmYwYmMyY2QyZDE4OGRhMGQ1MTc0ZTJkYzVlM2Yw
MzgwOWQxZWEzNC4uNTY4YWU0M2UwOGYwNzc0MWMxMGIwZWNmZGFlOGNhOTAyZDM2ZDhmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNl
dEphdmFTY3JpcHRQYXVzZWQoRnJhbWVWaWV3KiB2aWV3LCBib29sIHBhdXNlZCkKICAgICAgICAg
V2lkZ2V0KiB3aWRnZXQgPSAoKml0KS5nZXQoKTsKICAgICAgICAgaWYgKCF3aWRnZXQtPmlzUGx1
Z2luVmlldygpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHN0YXRpY19jYXN0PFBs
dWdpblZpZXcqPih3aWRnZXQpLT5zZXRKYXZhU2NyaXB0UGF1c2VkKHBhdXNlZCk7CisgICAgICAg
IHRvUGx1Z2luVmlldyh3aWRnZXQpLT5zZXRKYXZhU2NyaXB0UGF1c2VkKHBhdXNlZCk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCmluZGV4IDEwZWM5NGExMjg2NWJkOGRmNzk5Yzg5NmQ2ZjhlOTFlZGFlMThhMGEuLmFmYTk1
Njg5ZmJmMzM3YWI2Y2U5NThjNjBlNTY4ZjdlZDJmYzhlZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zOTAsNyArMzkwLDcgQEAg
UGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4gU2NyaXB0Q29udHJvbGxlcjo6Y3Jl
YXRlU2NyaXB0SW5zdGFuY2VGb3JXaWQKICAgICBpZiAoIXdpZGdldC0+aXNQbHVnaW5WaWV3KCkp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZpZXcq
Pih3aWRnZXQpLT5iaW5kaW5nSW5zdGFuY2UoKTsKKyAgICByZXR1cm4gdG9QbHVnaW5WaWV3KHdp
ZGdldCktPmJpbmRpbmdJbnN0YW5jZSgpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXJRdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyUXQuY3BwCmluZGV4IDE0ZTg5NDI1NjA2
YmE2MTk3OGUyNWI5YWU1Zjc2N2Y4ZDk2MmYxZTIuLmRmOTgzMmZiMTBlOTQ4MTQ3OWRhODViNjM0
OTcxNGNjODAyZjQ0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlclF0LmNwcApAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBQYXNzUmVmUHRyPEpTQzo6QmluZGluZ3M6Okluc3RhbmNlPiBTY3JpcHRDb250cm9sbGVyOjpj
cmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldChXZWJDb3JlOjpXaWRnZXQqIHdpZGdldCkKIHsK
ICAgICBpZiAod2lkZ2V0LT5pc1BsdWdpblZpZXcoKSkgewotICAgICAgICBQbHVnaW5WaWV3KiBw
bHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHdpZGdldCk7CisgICAgICAgIFBs
dWdpblZpZXcqIHBsdWdpblZpZXcgPSB0b1BsdWdpblZpZXcod2lkZ2V0KTsKICAgICAgICAgcmV0
dXJuIHBsdWdpblZpZXctPmJpbmRpbmdJbnN0YW5jZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAzMzA3ZDEzMzBi
MzdmOWNjMjIxOGM2YmY5NjI3Yzk3Y2NkMDU3NDFlLi5iZmI4MzQxZjYzN2U2MDQ1NTdiZWQyODU2
ODJmOTc3ZjQxM2YzOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcApAQCAtNTI2LDcgKzUyNiw3IEBAIFBhc3NTY3JpcHRJbnN0YW5jZSBT
Y3JpcHRDb250cm9sbGVyOjpjcmVhdGVTY3JpcHRJbnN0YW5jZUZvcldpZGdldChXaWRnZXQqIHdp
ZGdlCiAgICAgaWYgKCF3aWRnZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBOUE9iamVjdCogbnBPYmplY3QgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3QmFz
ZSo+KHdpZGdldCktPnNjcmlwdGFibGVPYmplY3QoKTsKKyAgICBOUE9iamVjdCogbnBPYmplY3Qg
PSB0b1BsdWdpblZpZXdCYXNlKHdpZGdldCktPnNjcmlwdGFibGVPYmplY3QoKTsKIAogICAgIGlm
ICghbnBPYmplY3QpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
YmplY3RFbGVtZW50LmNwcAppbmRleCBjZDcyYTAzNzkwZGQ0ZDYxMjE4ZGJkMTA3Yzc1MjQ3NzQ4
NmViZDZkLi4xY2FhMjFjNzYyODE3OGUwODk3MWIyYWY3ZDhhYzExMGUyY2ViYTQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBA
IGJvb2wgSFRNTE9iamVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5j
b2RpbmcsIGJvb2wpCiAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNQbHVnaW5WaWV3QmFz
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgU3RyaW5nIHZhbHVlOwotICAgIGlmICgh
c3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPih3aWRnZXQpLT5nZXRGb3JtVmFsdWUodmFsdWUp
KQorICAgIGlmICghdG9QbHVnaW5WaWV3QmFzZSh3aWRnZXQpLT5nZXRGb3JtVmFsdWUodmFsdWUp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZW5jb2RpbmcuYXBwZW5kRGF0YShuYW1lKCks
IHZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCBmZjE0NDk3NGJjYjI1NmJhMDU5OGUwOWJmNjJiZjUwYWU4ZDMzYWYxLi5kNDY5MDEx
NDg4ZjBjNGYzMDJiODU4NTQ3MTlhZDI0ZTIyODY3YzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC0xMTc2LDcgKzExNzYsNyBAQCBGcmFtZSogRXZlbnRIYW5kbGVyOjpz
dWJmcmFtZUZvclRhcmdldE5vZGUoTm9kZSogbm9kZSkKICAgICBpZiAoIXdpZGdldCB8fCAhd2lk
Z2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpOworICAgIHJldHVybiB0b0ZyYW1l
Vmlldyh3aWRnZXQpLT5mcmFtZSgpOwogfQogCiBzdGF0aWMgYm9vbCBpc1N1Ym1pdEltYWdlKE5v
ZGUqIG5vZGUpCkBAIC0yNjU1LDcgKzI2NTUsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc0dl
c3R1cmVFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRQog
ICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCktPmhhbmRsZUdlc3R1cmVFdmVudChnZXN0dXJlRXZlbnQpOworICAgIHJldHVy
biB0b0ZyYW1lVmlldyh3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2Vz
dHVyZUV2ZW50KGdlc3R1cmVFdmVudCk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzR2Vz
dHVyZUV2ZW50VG9XaWRnZXRJZlBvc3NpYmxlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBn
ZXN0dXJlRXZlbnQsIFJlbmRlck9iamVjdCogcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmlu
ZGV4IDdlNzBmYjUwYTM2YTU4ZDM4Y2UxMDc3NjQ1OWE4MDNhZjE2ZmYwYjguLjg4NTlkYzA1MWFj
N2MyMzdlOGM0ZmFlMGY4ZDM3NTU3NzFiOTRkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02
MzQsNyArNjM0LDcgQEAgRnJhbWUqIEZyYW1lOjpmcmFtZUZvcldpZGdldChjb25zdCBXaWRnZXQq
IHdpZGdldCkKICAgICAvLyBBc3N1bWUgYWxsIHdpZGdldHMgYXJlIGVpdGhlciBhIEZyYW1lVmll
dyBvciBvd25lZCBieSBhIFJlbmRlcldpZGdldC4KICAgICAvLyBGSVhNRTogVGhhdCBhc3N1bXB0
aW9uIGlzIG5vdCByaWdodCBmb3Igc2Nyb2xsIGJhcnMhCiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04od2lkZ2V0LT5pc0ZyYW1lVmlldygpKTsKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKTsKKyAgICByZXR1cm4gdG9G
cmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUoKTsKIH0KIAogdm9pZCBGcmFtZTo6Y2xlYXJUaW1lcnMo
RnJhbWVWaWV3ICp2aWV3LCBEb2N1bWVudCAqZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggMjQzNzFiYzRlOTVhMmQ2ZGY4YTJmYzA5ZjNmZDllOTRlNGJjYmZlNC4uNjM1
NmRiYjZjYjU2NGU2ZDI3YTFhOGVjZDAzMjgwNDMyNDRiNDU5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMzA2LDExICszMDYsNiBAQCB2b2lkIEZyYW1lVmlldzo6cmVtb3ZlRnJv
bUFYT2JqZWN0Q2FjaGUoKQogICAgICAgICBheE9iamVjdENhY2hlKCktPnJlbW92ZSh0aGlzKTsK
IH0KIAotYm9vbCBGcmFtZVZpZXc6OmlzRnJhbWVWaWV3KCkgY29uc3QKLXsgCi0gICAgcmV0dXJu
IHRydWU7IAotfQotCiB2b2lkIEZyYW1lVmlldzo6Y2xlYXJGcmFtZSgpCiB7CiAgICAgbV9mcmFt
ZSA9IDA7CkBAIC0xMDQyLDcgKzEwMzcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdEZy
YW1lVmlld0NoaWxkcmVuKEZyYW1lVmlldyogZnJhbWVWaWV3LCBWZWN0b3I8UmVmUHRyPAogICAg
IGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+OjppdGVyYXRvciBjdXJyZW50ID0gdmlld0No
aWxkcmVuLT5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50KSB7CiAgICAgICAgIFdp
ZGdldCogd2lkZ2V0ID0gKCpjdXJyZW50KS5nZXQoKTsKICAgICAgICAgaWYgKHdpZGdldC0+aXNG
cmFtZVZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1lVmlld3MuYXBwZW5kKHN0YXRpY19jYXN0PEZy
YW1lVmlldyo+KHdpZGdldCkpOworICAgICAgICAgICAgZnJhbWVWaWV3cy5hcHBlbmQodG9GcmFt
ZVZpZXcod2lkZ2V0KSk7CiAgICAgfQogfQogCkBAIC0zMjM4LDcgKzMyMzMsNyBAQCBib29sIEZy
YW1lVmlldzo6aGFzQ3VzdG9tU2Nyb2xsYmFycygpIGNvbnN0CiAgICAgZm9yIChIYXNoU2V0PFJl
ZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGN1cnJlbnQgPSB2aWV3Q2hpbGRyZW4tPmJl
Z2luKCk7IGN1cnJlbnQgIT0gZW5kOyArK2N1cnJlbnQpIHsKICAgICAgICAgV2lkZ2V0KiB3aWRn
ZXQgPSBjdXJyZW50LT5nZXQoKTsKICAgICAgICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkg
ewotICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmhhc0N1
c3RvbVNjcm9sbGJhcnMoKSkKKyAgICAgICAgICAgIGlmICh0b0ZyYW1lVmlldyh3aWRnZXQpLT5o
YXNDdXN0b21TY3JvbGxiYXJzKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0gZWxzZSBpZiAod2lkZ2V0LT5pc1Njcm9sbGJhcigpKSB7CiAgICAgICAgICAgICBTY3Jv
bGxiYXIqIHNjcm9sbGJhciA9IHN0YXRpY19jYXN0PFNjcm9sbGJhcio+KHdpZGdldCk7CkBAIC0z
NzIwLDcgKzM3MTUsNyBAQCBJbnRSZWN0IEZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1Zp
ZXcoY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdAogewogICAgIGlmIChjb25zdCBTY3Jv
bGxWaWV3KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpIHsKICAgICAgICAgaWYgKHBhcmVu
dFNjcm9sbFZpZXctPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEZyYW1lVmll
dyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHBhcmVudFNjcm9s
bFZpZXcpOworICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gdG9GcmFt
ZVZpZXcocGFyZW50U2Nyb2xsVmlldyk7CiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVy
IGluIHRoZSBwYXJlbnQgdmlldwogICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBt
X2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKQpAQCAt
Mzc0Myw3ICszNzM4LDcgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKIHsKICAgICBpZiAoY29uc3Qg
U2Nyb2xsVmlldyogcGFyZW50U2Nyb2xsVmlldyA9IHBhcmVudCgpKSB7CiAgICAgICAgIGlmIChw
YXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgICAgICBjb25zdCBGcmFt
ZVZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxjb25zdCBGcmFtZVZpZXcqPihwYXJlbnRT
Y3JvbGxWaWV3KTsKKyAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRv
RnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJl
bmRlcmVyIGluIHRoZSBwYXJlbnQgdmlldwogICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVy
ZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CkBAIC0zNzY3LDcgKzM3NjIsNyBAQCBJbnRQ
b2ludCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBs
b2NhbFBvaW50KSBjb25zdAogewogICAgIGlmIChjb25zdCBTY3JvbGxWaWV3KiBwYXJlbnRTY3Jv
bGxWaWV3ID0gcGFyZW50KCkpIHsKICAgICAgICAgaWYgKHBhcmVudFNjcm9sbFZpZXctPmlzRnJh
bWVWaWV3KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHN0
YXRpY19jYXN0PGNvbnN0IEZyYW1lVmlldyo+KHBhcmVudFNjcm9sbFZpZXcpOworICAgICAgICAg
ICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50U2Nyb2xs
Vmlldyk7CiAKICAgICAgICAgICAgIC8vIEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2
aWV3CiAgICAgICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZnJhbWUtPm93bmVyUmVu
ZGVyZXIoKTsKQEAgLTM3OTIsNyArMzc4Nyw3IEBAIEludFBvaW50IEZyYW1lVmlldzo6Y29udmVy
dEZyb21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7
CiAgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcgPSBwYXJlbnQoKSkg
ewogICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXcoKSkgewotICAgICAg
ICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8Y29uc3QgRnJh
bWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7CisgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcq
IHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKIAogICAgICAgICAg
ICAgLy8gR2V0IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZpZXcKICAgICAgICAgICAgIFJl
bmRlclBhcnQqIHJlbmRlcmVyID0gbV9mcmFtZS0+b3duZXJSZW5kZXJlcigpOwpAQCAtMzkwMyw3
ICszODk4LDcgQEAgYm9vbCBGcmFtZVZpZXc6OmNvbnRhaW5zU2Nyb2xsYWJsZUFyZWEoU2Nyb2xs
YWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKSBjb25zdAogdm9pZCBGcmFtZVZpZXc6OnJlbW92ZUNo
aWxkKFdpZGdldCogd2lkZ2V0KQogewogICAgIGlmICh3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCi0g
ICAgICAgIHJlbW92ZVNjcm9sbGFibGVBcmVhKHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdl
dCkpOworICAgICAgICByZW1vdmVTY3JvbGxhYmxlQXJlYSh0b0ZyYW1lVmlldyh3aWRnZXQpKTsK
IAogICAgIFNjcm9sbFZpZXc6OnJlbW92ZUNoaWxkKHdpZGdldCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaAppbmRleCAxNDhkYzYxYjJmYjcyZGRmN2I3N2Q4ZTUzNjYyOWRhM2ExMmYzNzlkLi45
MDY1M2E0NGYwYzEwZjEyYzlmYWEyMDQyNDMyZDY2ODZkZWUzZmJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKQEAgLTQxNyw3ICs0MTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzZXQoKTsK
ICAgICB2b2lkIGluaXQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lVmlldygpIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJXaWRnZXQ7CiAgICAgYm9vbCB1c2VT
bG93UmVwYWludHMoYm9vbCBjb25zaWRlck92ZXJsYXAgPSB0cnVlKSBjb25zdDsKQEAgLTY0Myw2
ICs2NDMsMjEgQEAgaW5saW5lIExheW91dFVuaXQgRnJhbWVWaWV3OjptYXBGcm9tQ1NTVG9MYXlv
dXRVbml0cyhpbnQgdmFsdWUpCiAgICAgcmV0dXJuIHZhbHVlICogbV9mcmFtZS0+cGFnZVpvb21G
YWN0b3IoKSAqIG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKTsKIH0KIAoraW5saW5lIEZyYW1l
VmlldyogdG9GcmFtZVZpZXcoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRnZXQg
fHwgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4od2lkZ2V0KTsKK30KKworaW5saW5lIGNvbnN0IEZyYW1lVmlldyogdG9GcmFtZVZpZXco
Y29uc3QgV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRnZXQgfHwgd2lkZ2V0LT5p
c0ZyYW1lVmlldygpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgRnJhbWVWaWV3Kj4o
d2lkZ2V0KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vz
c2FyeSBjYXN0Lgordm9pZCB0b0ZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKTsKKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRnJhbWVWaWV3X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IGQzYmRiMGUyYzY3NmRmZWY1N2MwN2M5NjhiZGM1ZjYzMGI5YTA5ZmQuLmJhYzhjNWEy
YjA5NTg5OWRlNTk5NmI5NjM0MjNmMTczNWQ2YjU1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
MTE3NCw3ICsxMTc0LDcgQEAgdm9pZCBQYWdlOjpjb2xsZWN0UGx1Z2luVmlld3MoVmVjdG9yPFJl
ZlB0cjxQbHVnaW5WaWV3QmFzZT4sIDMyPiYgcGx1Z2luVmlld0Jhc2UKICAgICAgICAgZm9yIChI
YXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2hpbGRyZW4tPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQgPSAo
Kml0KS5nZXQoKTsKICAgICAgICAgICAgIGlmICh3aWRnZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSkK
LSAgICAgICAgICAgICAgICBwbHVnaW5WaWV3QmFzZXMuYXBwZW5kKHN0YXRpY19jYXN0PFBsdWdp
blZpZXdCYXNlKj4od2lkZ2V0KSk7CisgICAgICAgICAgICAgICAgcGx1Z2luVmlld0Jhc2VzLmFw
cGVuZCh0b1BsdWdpblZpZXdCYXNlKHdpZGdldCkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVt
LmNwcAppbmRleCAxMTJiMGU1YmRlNjliMTM5NmY4Y2M5MWY3OThmMzVkNGEzOGU5NDY5Li4wMTNk
M2EzOWFkYjk5NTE5NGE0MTk5OWQwZTFlNDI1NmNmMWZjZGRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcApAQCAtOTcs
NyArOTcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsCiAgICAgaWYgKCF3aWRnZXQtPmlzRnJh
bWVWaWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hl
ZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAK
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDdjODQyNzRhZmQyNTY1ZWNkYzdkODVk
MzczNmE4YWQ2MDU1MjhjZDQuLmUzNmVkY2I0ZWJlNTg4ZDNkNGRkMTIxMTllYTc3Y2RiMmRlYzEx
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAt
OTMsNyArOTMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaWRnZQogICAgIGlmICghd2lkZ2V0LT5p
c0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRs
ZVdoZWVsRXZlbnQoZXZlbnQpOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQpLT5mcmFt
ZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7CiB9CiAKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RXZlbnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxl
ckd0ay5jcHAKaW5kZXggMzY4Y2ZlMDE5YWYxZDIyMmY0YWJkMTgxZjQ4ODc1N2U3M2VjNDdiOC4u
Y2ZkNmM4ODUyMWJiZTE2YjZlZDYxYWU2ZmFkOTBmOTZiZGE4M2VmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC05MSw3ICs5MSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgZXZlbnQsIFdpZGdlCiAgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3
aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudChldmVudCk7
CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKIH0KIAogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDQ1MTUwZTRmNTYwMGIxZTgyYmE1
YmZhZWMzNWNkMDE3OWYwNDg5MjQuLmU1MWQwZGZmZTI1OTFjZGQ5YTQ4YzBkNmIxMTZhYjAzODEw
YTQ1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAg
LTQzMSw3ICs0MzEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdl
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsCiAgICAgICAgIGlmICghd2lk
Z2V0LT5pc0ZyYW1lVmlldygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS0+aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgcmV0dXJuIHRv
RnJhbWVWaWV3KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2
ZW50KHdoZWVsRXZlbnQpOwogICAgIH0KIAogICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0eXBl
XSAhPSBOU1Njcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KSAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRXZlbnRIYW5kbGVyUXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKaW5kZXggYWI3NTk0OTZmMWIzMDU2OWEx
NTRkZGQ3ZDA5NTgwNzM1YWZjNzQ0MS4uMGY3ODA2YTUzYjdmYzE1NDRjMGM1NzIxZDYyMjQwMzE5
ZWM2YzI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJR
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAKQEAg
LTkxLDcgKzkxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2lkZ2UKICAgICBpZiAoIXdpZGdldC0+
aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5k
bGVXaGVlbEV2ZW50KGV2ZW50KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQoZXZlbnQpOwogfQogCiBQYXNz
UmVmUHRyPENsaXBib2FyZD4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0NsaXBib2FyZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKaW5kZXggOGE4MTA1NTc3NmM0MzEyODMwYjM1NGIwMmUwNmZiZjQy
NDZkZWEwMy4uZGExZGQ5NDY1YzAyZWU1ZmE5YzhlOTY4MDQ2ZTZmNjk0MDZiYzZiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIFJlZ2lvbiBTY3JvbGxpbmdDb29yZGluYXRvcjo6
Y29tcHV0ZU5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbnN0IEZyYW1lKiBmcmFtZSwKICAgICAg
ICAgICAgIGlmICghKCppdCktPmlzUGx1Z2luVmlld0Jhc2UoKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICAgICAgUGx1Z2luVmlld0Jhc2UqIHBsdWdpblZpZXdCYXNlID0g
c3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPigoKml0KS5nZXQoKSk7CisgICAgICAgICAgICBQ
bHVnaW5WaWV3QmFzZSogcGx1Z2luVmlld0Jhc2UgPSB0b1BsdWdpblZpZXdCYXNlKCgqaXQpLmdl
dCgpKTsKICAgICAgICAgICAgIGlmIChwbHVnaW5WaWV3QmFzZS0+d2FudHNXaGVlbEV2ZW50cygp
KQogICAgICAgICAgICAgICAgIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLnVuaXRlKHBsdWdpblZp
ZXdCYXNlLT5mcmFtZVJlY3QoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IGUzOTFiNzc2NWU3ZGM3MGQ3Yzg2MzIzYTZhZjJj
NzJlNDQ2Y2UwYTMuLjA0Yjk4OGY5NDEwZjQwNWRiZjA2NjBkYjhlNDJmNjRkMGJhNzM3MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcApAQCAtODIsNyAr
ODIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsCiAgICAgaWYgKCF3aWRnZXQtPmlzRnJhbWVW
aWV3KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPih3aWRnZXQpLT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUo
KS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKIGJv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3d4L0V2ZW50SGFuZGxlcld4LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRXZlbnRIYW5kbGVyV3guY3BwCmluZGV4IDE2N2Nj
OTMwYTdhYjM3MzY2YTgzNzYzZDhjODA5ODQ0MWVlYTE1MzcuLmYwYjc0NTBiMjFhNDVmNzkxNjQw
ZGVmZDgyYWNkZTZhNjRmM2UyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gv
RXZlbnRIYW5kbGVyV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRXZlbnRIYW5k
bGVyV3guY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxF
dmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdlCiAgICAg
aWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCktPmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKKyAgICByZXR1cm4g
dG9GcmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVs
RXZlbnQoZXZlbnQpOwogfQogCiBib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRy
b2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaAppbmRleCBkMDRjM2U4N2Q2NzFkODdlZDQ1YWJkYzg1ZjM2MmE4N2U3NTU1YjBhLi5k
M2EyOTdhMTAzMGE5MDE5OTRjZGU4N2FmMWYzZWE3NzgzYjdmZmJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yOTUsNiArMjk1LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjYWxjdWxhdGVBbmRQYWludE92ZXJoYW5nQXJlYXMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
SW50UmVjdCYgZGlydHlSZWN0KTsKIAorICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbFZpZXcoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxW
aWV3KCk7CiAKQEAgLTQxNSw2ICs0MTcsMjEgQEAgcHJpdmF0ZToKIAogfTsgLy8gY2xhc3MgU2Ny
b2xsVmlldwogCitpbmxpbmUgU2Nyb2xsVmlldyogdG9TY3JvbGxWaWV3KFdpZGdldCogd2lkZ2V0
KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8IHdpZGdldC0+aXNTY3JvbGxWaWV3KCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTY3JvbGxWaWV3Kj4od2lkZ2V0KTsKK30KKworaW5saW5lIGNv
bnN0IFNjcm9sbFZpZXcqIHRvU2Nyb2xsVmlldyhjb25zdCBXaWRnZXQqIHdpZGdldCkKK3sKKyAg
ICBBU1NFUlQoIXdpZGdldCB8fCB3aWRnZXQtPmlzU2Nyb2xsVmlldygpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8Y29uc3QgU2Nyb2xsVmlldyo+KHdpZGdldCk7Cit9CisKKy8vIFRoaXMgd2ls
bCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9TY3JvbGxW
aWV3KGNvbnN0IFNjcm9sbFZpZXcqKTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gU2Nyb2xsVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRl
eCA0NWE0OGRkYmM0ZGU3MjVkNjhiNWJiYTM1OWQ2Y2RmY2NkNjJhNmEzLi5mZjFlODA1OWFjYTNh
MDhjM2JjYjhjOWEzNDQwZmY3ODQzZjQ0NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhci5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCBib29sIFNjcm9sbGJhcjo6aXNTY3JvbGxhYmxl
QXJlYUFjdGl2ZSgpIGNvbnN0CiAKIGJvb2wgU2Nyb2xsYmFyOjppc1Njcm9sbFZpZXdTY3JvbGxi
YXIoKSBjb25zdAogewotICAgIHJldHVybiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+aXNGcmFtZVZp
ZXcoKSAmJiBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmlzU2Nyb2xsVmlld1Nj
cm9sbGJhcih0aGlzKTsKKyAgICByZXR1cm4gcGFyZW50KCkgJiYgcGFyZW50KCktPmlzRnJhbWVW
aWV3KCkgJiYgdG9GcmFtZVZpZXcocGFyZW50KCkpLT5pc1Njcm9sbFZpZXdTY3JvbGxiYXIodGhp
cyk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyOjpvZmZzZXREaWRDaGFuZ2UoKQpAQCAtNDY1LDcgKzQ2
NSw3IEBAIGJvb2wgU2Nyb2xsYmFyOjptb3VzZVVwKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
bW91c2VFdmVudCkKICAgICB9CiAKICAgICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRnJh
bWVWaWV3KCkpCi0gICAgICAgIHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKS0+ZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNldE1vdXNlUHJlc3NlZChmYWxzZSk7CisgICAgICAgIHRv
RnJhbWVWaWV3KHBhcmVudCgpKS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNldE1vdXNlUHJl
c3NlZChmYWxzZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTU3NCw3ICs1NzQsNyBAQCBB
WE9iamVjdENhY2hlKiBTY3JvbGxiYXI6OmF4T2JqZWN0Q2FjaGUoKSBjb25zdAogICAgIAogICAg
IC8vIEZJWE1FOiBBY2Nlc3NpbmcgdGhlIEZyYW1lVmlldyBhbmQgRG9jdW1lbnQgaGVyZSBpcyBh
IGxheWVyaW5nIHZpb2xhdGlvbgogICAgIC8vIGFuZCBzaG91bGQgYmUgcmVtb3ZlZC4KLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmZy
YW1lKCktPmRvY3VtZW50KCk7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdG9GcmFtZVZpZXco
cGFyZW50KCkpLT5mcmFtZSgpLT5kb2N1bWVudCgpOwogICAgIHJldHVybiBkb2N1bWVudC0+YXhP
YmplY3RDYWNoZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IDM1NjNiNTZj
MTdmMWZhMWI2YTI3MDBjMjY4ZTc5ZDY1MDE3ZjE2MjAuLjc3Y2NmOTFkNzBhMDQ2ZWFhZmE1ZmYx
ODFkOTIyZjIwNTAyMjAwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dp
ZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBAIC0xNzcsNiAr
MTc3LDcgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBUaGUgTWFjIHBsdWctaW4gY29kZSBzaG91
bGQgaW5oZXJpdCBmcm9tIFBsdWdpblZpZXcuIFdoZW4gdGhpcyBoYXBwZW5zIFBsdWdpblZpZXdC
YXNlIGFuZCBQbHVnaW5WaWV3IGNhbiBiZWNvbWUgb25lIGNsYXNzLgogICAgIHZpcnR1YWwgYm9v
bCBpc1BsdWdpblZpZXdCYXNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1Njcm9sbFZpZXcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBy
ZW1vdmVGcm9tUGFyZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChTY3JvbGxWaWV3
KiB2aWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2JsYWNrYmVycnkv
UGxhdGZvcm1TY3JlZW5CbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Js
YWNrYmVycnkvUGxhdGZvcm1TY3JlZW5CbGFja0JlcnJ5LmNwcAppbmRleCA4NDQ0MzhmOTJmY2Fi
YmI4ZmVhODQ0ZWFkMzBmZGJlOGExMTk4YmRlLi5kZjdlMjUwNjZiZDY2ODllMjAwMzU4MGJhOTg2
NDMyZTEyNjdkNTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L1BsYXRmb3JtU2NyZWVuQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYmxhY2tiZXJyeS9QbGF0Zm9ybVNjcmVlbkJsYWNrQmVycnkuY3BwCkBAIC01MSw3ICs1
MSw3IEBAIGludCBzY3JlZW5EZXB0aChXaWRnZXQqKQogc3RhdGljIEZsb2F0UmVjdCB0b1VzZXJT
cGFjZShGbG9hdFJlY3QgcmVjdCwgV2lkZ2V0KiB3aWRnZXQpCiB7CiAgICAgaWYgKHdpZGdldC0+
aXNGcmFtZVZpZXcoKSkgewotICAgICAgICBQYWdlKiBwYWdlID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4od2lkZ2V0KS0+ZnJhbWUoKS0+cGFnZSgpOworICAgICAgICBQYWdlKiBwYWdlID0gdG9G
cmFtZVZpZXcod2lkZ2V0KS0+ZnJhbWUoKS0+cGFnZSgpOwogICAgICAgICBpZiAocGFnZSAmJiAh
cGFnZS0+c2V0dGluZ3MoKS0+YXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQog
ICAgICAgICAgICAgcmVjdC5zY2FsZSgxIC8gcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVm
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAppbmRl
eCBiNDQ1Y2IxYmY2MjU2MTNmMmEyODc4YWExM2RiMzQ1MzBkZTcxOTQxLi42MjVlNTEyYjNmZjMw
MDZiZmQyOGQ2Zjc5YmQ3ZjgwNDdjYTg2MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvU2Nyb2xsYmFyRWZsLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgU2Nyb2xsYmFy
RWZsOjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogdmlldykKICAgICBpZiAoIXZpZXcgfHwgIXZpZXct
PmV2YXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWUqIGZyYW1lID0gc3Rh
dGljX2Nhc3Q8RnJhbWVWaWV3Kj4odmlldyktPmZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0g
dG9GcmFtZVZpZXcodmlldyktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnBh
Z2UoKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9QbGF0Zm9ybVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QbGF0Zm9ybVN1cHBvcnRRdC5jcHAKaW5kZXggNTVhNWNmYWI4NDQxYWJkM2JkYjI5YTJlMjhh
ZWQ5MTIyYzUwYjA5YS4uMGMyODI2NGE0MjUwZTg5ZTA1YzU1ZDcyM2IzNmNlZDlmY2ZlYjc3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1TdXBwb3J0UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtU3VwcG9ydFF0LmNw
cApAQCAtMzMsNyArMzMsNyBAQCBib29sIFBsYXRmb3JtU3VwcG9ydDo6cG9wdXBzQWxsb3dlZChO
UFAgbnBwKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIGlmIChucHAg
JiYgbnBwLT5uZGF0YSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihu
cHAtPm5kYXRhKS0+YXJlUG9wdXBzQWxsb3dlZCgpOworICAgICAgICByZXR1cm4gdG9QbHVnaW5W
aWV3KG5wcC0+bmRhdGEpLT5hcmVQb3B1cHNBbGxvd2VkKCk7CiAjZW5kaWYKIAogICAgIHJldHVy
biBmYWxzZTsKQEAgLTQ4LDcgKzQ4LDcgQEAgTlBPYmplY3QqIFBsYXRmb3JtU3VwcG9ydDo6cGx1
Z2luU2NyaXB0YWJsZU9iamVjdChXaWRnZXQqIHdpZGdldCkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBQbHVnaW5WaWV3KiBwbHVnaW5W
aWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHdpZGdldCk7CisgICAgUGx1Z2luVmlldyog
cGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyh3aWRnZXQpOwogICAgIHJldHVybiBwbHVnaW5WaWV3
LT5ucE9iamVjdCgpOwogI2Vsc2UKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvSUZyYW1lU2hpbVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAKaW5kZXggODI2NTc2NTExMGFlNTQ2OGQwMzA1ZjNl
ZmIwNDZkMjVhZGQ3ZmVmZi4uOTkxNjc3ZjNkYTAxMjM4MWUxYTFlMzRlMDM3Yzk4YmUwNzNiMjZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9JRnJhbWVTaGltU3VwcG9ydC5jcHAKQEAg
LTEzMyw3ICsxMzMsNyBAQCB2b2lkIGdldFBsdWdpbk9jY2x1c2lvbnMoRWxlbWVudCogZWxlbWVu
dCwgV2lkZ2V0KiBwYXJlbnRXaWRnZXQsIGNvbnN0IEludFJlY3QmCiAgICAgaWYgKCFwYXJlbnRX
aWRnZXQtPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmlldyog
cGFyZW50RnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50V2lkZ2V0KTsK
KyAgICBGcmFtZVZpZXcqIHBhcmVudEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudFdpZGdl
dCk7CiAKICAgICBjb25zdCBIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID4qIGNoaWxkcmVuID0gcGFy
ZW50RnJhbWVWaWV3LT5jaGlsZHJlbigpOwogICAgIGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0
PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGNoaWxkcmVuLT5iZWdpbigpOyBpdCAhPSBjaGlsZHJl
bi0+ZW5kKCk7ICsraXQpIHsKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIGdldFBsdWdpbk9jY2x1
c2lvbnMoRWxlbWVudCogZWxlbWVudCwgV2lkZ2V0KiBwYXJlbnRXaWRnZXQsIGNvbnN0IEludFJl
Y3QmCiAgICAgICAgIGlmICghKCppdCktPmlzRnJhbWVWaWV3KCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBjb25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0
PGNvbnN0IEZyYW1lVmlldyo+KCgqaXQpLmdldCgpKTsKKyAgICAgICAgY29uc3QgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldygoKml0KS5nZXQoKSk7CiAgICAgICAgIC8vIENoZWNr
IHRvIG1ha2Ugc3VyZSB3ZSBjYW4gZ2V0IGJvdGggdGhlIGVsZW1lbnQgYW5kIHRoZSBSZW5kZXJP
YmplY3QKICAgICAgICAgLy8gZm9yIHRoaXMgRnJhbWVWaWV3LCBpZiB3ZSBjYW4ndCBqdXN0IG1v
dmUgb24gdG8gdGhlIG5leHQgb2JqZWN0LgogICAgICAgICBpZiAoIWZyYW1lVmlldy0+ZnJhbWUo
KSB8fCAhZnJhbWVWaWV3LT5mcmFtZSgpLT5vd25lckVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuaAppbmRleCBiMzMzNDgwN2Q1MDkxN2QyMWMzNTU3Mzc0MjJkZWUxYjQ4Nzdm
ZGIxLi43ZTc2MDQwYzMwOGVlY2QzYjRiZjFjODM0NTAxNTkwOWRkZjJhNjgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMjIxLDcgKzIyMSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChTY3JvbGxWaWV3Kik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzZXRQYXJlbnRWaXNpYmxlKGJvb2wpOwogCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc1BsdWdpblZpZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZp
cnR1YWwgYm9vbCBpc1BsdWdpblZpZXcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAgICAgRnJhbWUqIHBhcmVudEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRG
cmFtZS5nZXQoKTsgfQogCkBAIC00NzIsNiArNDcyLDIxIEBAIHByaXZhdGU6CiAgICAgICAgIHN0
YXRpYyBQbHVnaW5WaWV3KiBzX2N1cnJlbnRQbHVnaW5WaWV3OwogICAgIH07CiAKK2lubGluZSBQ
bHVnaW5WaWV3KiB0b1BsdWdpblZpZXcoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3
aWRnZXQgfHwgd2lkZ2V0LT5pc1BsdWdpblZpZXcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFBsdWdpblZpZXcqPih3aWRnZXQpOworfQorCitpbmxpbmUgY29uc3QgUGx1Z2luVmlldyogdG9Q
bHVnaW5WaWV3KGNvbnN0IFdpZGdldCogd2lkZ2V0KQoreworICAgIEFTU0VSVCghd2lkZ2V0IHx8
IHdpZGdldC0+aXNQbHVnaW5WaWV3KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBQ
bHVnaW5WaWV3Kj4od2lkZ2V0KTsKK30KKworLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2lu
ZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1BsdWdpblZpZXcoY29uc3QgUGx1Z2luVmll
dyopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3QmFzZS5oCmluZGV4IDk2ZDY1ZjA5YjU0YTQyOWIzYjkwZmUzZjQxN2Rm
OWQwYTY5ODlmMGEuLjMxMWM5Y2M1ODlmYmJiYTUwMTI0M2U3NWVlZWQ1NTk4ZmE2NTA3YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld0Jhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdCYXNlLmgKQEAgLTc3LDEzICs3NywyNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWxsb3dOYXZpZ2F0aW9uRnJvbURy
YWdzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdp
blZpZXdCYXNlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgUGx1Z2luVmlld0Jhc2UoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0ID0gMCkgOiBXaWRnZXQo
d2lkZ2V0KSB7IH0KLSAgICAKLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmll
d0Jhc2UoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCitpbmxpbmUgUGx1Z2luVmlld0Jh
c2UqIHRvUGx1Z2luVmlld0Jhc2UoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgQVNTRVJUKCF3aWRn
ZXQgfHwgd2lkZ2V0LT5pc1BsdWdpblZpZXdCYXNlKCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdldCk7Cit9CisKK2lubGluZSBjb25zdCBQbHVnaW5WaWV3
QmFzZSogdG9QbHVnaW5WaWV3QmFzZShjb25zdCBXaWRnZXQqIHdpZGdldCkKK3sKKyAgICBBU1NF
UlQoIXdpZGdldCB8fCB3aWRnZXQtPmlzUGx1Z2luVmlld0Jhc2UoKSk7CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0KTsKK30KKworLy8gVGhpcyB3
aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBjYXN0Lgordm9pZCB0b1BsdWdp
blZpZXdCYXNlKGNvbnN0IFBsdWdpblZpZXdCYXNlKik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIFBsdWdpbldpZGdldF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9ibGFja2JlcnJ5L1BsdWdpblZpZXdCbGFja0JlcnJ5LmNwcAppbmRleCBm
YTlkNjYyOGUwNWI2OGFjNGUxZmYxN2NlM2Y1ZDAxMDA5MWE3ZDAzLi45MzdkOTY2OGU1YjA3ODk1
OGM0OTRhOWM0ZDAyNmI1MWNiNjBlNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL2JsYWNrYmVycnkvUGx1Z2luVmlld0JsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3QmxhY2tCZXJyeS5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEFTU0VSVChwYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7Cisg
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAKICAgICBJ
bnRSZWN0IG9sZFdpbmRvd1JlY3QgPSBtX3dpbmRvd1JlY3Q7CiAgICAgSW50UmVjdCBvbGRDbGlw
UmVjdCA9IG1fY2xpcFJlY3Q7CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1
cGRhdGVCdWZmZXIoY29uc3QgSW50UmVjdCYgYnVmZmVyUmVjdCkKICAgICAvLyBVcGRhdGUgdGhl
IHpvb20gZmFjdG9yIGhlcmUsIGl0IGhhcHBlbnMgcmlnaHQgYmVmb3JlIHNldE5QV2luZG93SWZO
ZWVkZWQKICAgICAvLyBlbnN1cmluZyB0aGF0IHRoZSBwbHVnaW4gaGFzIGV2ZXJ5IG9wcG9ydHVu
aXR5IHRvIGdldCB0aGUgem9vbSBmYWN0b3IgYmVmb3JlCiAgICAgLy8gaXQgcGFpbnRzIGFueXRo
aW5nLgotICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmll
dyo+KHBhcmVudCgpKSkKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmll
dyhwYXJlbnQoKSkpCiAgICAgICAgIG1fcHJpdmF0ZS0+c2V0Wm9vbUZhY3RvcihmcmFtZVZpZXct
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPmN1cnJlbnRab29tRmFjdG9yKCkp
OwogCiAgICAgc2V0TlBXaW5kb3dJZk5lZWRlZCgpOwpAQCAtMjI0LDcgKzIyNCw3IEBAIHZvaWQg
UGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0
JiByZWN0KQogICAgIC8vIFVwZGF0ZSB0aGUgem9vbSBmYWN0b3IgaGVyZSwgaXQgaGFwcGVucyBy
aWdodCBiZWZvcmUgc2V0TlBXaW5kb3dJZk5lZWRlZAogICAgIC8vIGVuc3VyaW5nIHRoYXQgdGhl
IHBsdWdpbiBoYXMgZXZlcnkgb3Bwb3J0dW5pdHkgdG8gZ2V0IHRoZSB6b29tIGZhY3RvciBiZWZv
cmUKICAgICAvLyBpdCBwYWludHMgYW55dGhpbmcuCi0gICAgaWYgKEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpKQorICAgIGlmIChGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKSkKICAgICAgICAgbV9wcml2YXRl
LT5zZXRab29tRmFjdG9yKGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGll
bnQoKS0+Y3VycmVudFpvb21GYWN0b3IoKSk7CiAKICAgICBpZiAoY29udGV4dC0+cGFpbnRpbmdE
aXNhYmxlZCgpKQpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlUmVz
dW1lRXZlbnQoKQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZVNjcm9sbEV2ZW50KCkKIHsKLSAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgp
KTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKIAog
ICAgIC8vIEFzIGEgc3BlY2lhbCBjYXNlLCBpZiB0aGUgZnJhbWVWaWV3IGV4dGVudCBpbiBlaXRo
ZXIgZGltZW5zaW9uIGlzCiAgICAgLy8gZW1wdHksIHRoZW4gc2VuZCBhbiBvbiBzY3JlZW4gZXZl
bnQuIFRoaXMgaXMgaW1wb3J0YW50IGZvciBzaXRlcyBsaWtlCkBAIC02MzksNyArNjM5LDcgQEAg
dm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVTY3JvbGxFdmVudCgpCiAKIEludFJlY3QgUGx1Z2luVmll
dzo6Y2FsY3VsYXRlQ2xpcFJlY3QoKSBjb25zdAogewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpOwogICAgIGJvb2wgdmlzaWJsZSA9IGZyYW1l
VmlldyAmJiBpc1Zpc2libGUoKTsKIAogICAgIGlmICh2aXNpYmxlICYmIGZyYW1lVmlldy0+d2lk
dGgoKSAmJiBmcmFtZVZpZXctPmhlaWdodCgpKSB7CkBAIC03NDcsNyArNzQ3LDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpoYW5kbGVGdWxsU2NyZWVuQWxsb3dlZEV2ZW50KCkKICAgICBucEV2ZW50LnR5
cGUgPSBOUF9GdWxsU2NyZWVuUmVhZHlFdmVudDsKICAgICBucEV2ZW50LmRhdGEgPSAwOwogCi0g
ICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFy
ZW50KCkpKSB7CisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFy
ZW50KCkpKSB7CiAgICAgICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKS0+ZGlkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKHRoaXMsIG1fcHJpdmF0ZS0+bV9wbHVn
aW5VbmlxdWVQcmVmaXguY19zdHIoKSk7CiAKICAgICAgICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQo
bnBFdmVudCkpCkBAIC03NjgsNyArNzY4LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVGdWxs
U2NyZWVuRXhpdEV2ZW50KCkKIAogICAgIGRpc3BhdGNoTlBFdmVudChucEV2ZW50KTsKIAotICAg
IGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVu
dCgpKSkKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQo
KSkpCiAgICAgICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+ZGlkUGx1Z2luRXhpdEZ1bGxTY3JlZW4odGhpcywgbV9wcml2YXRlLT5tX3BsdWdpblVuaXF1
ZVByZWZpeC5jX3N0cigpKTsKIAogICAgIG1fcHJpdmF0ZS0+bV9pc0Z1bGxTY3JlZW4gPSBmYWxz
ZTsKQEAgLTg2MCw3ICs4NjAsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChTY3JvbGxW
aWV3KiBwYXJlbnRXaWRnZXQpCiB7CiAgICAgLy8gSWYgcGFyZW50V2lkZ2V0IGlzIDAsIGxldHMg
dW5yZWdpc3RlciB0aGUgcGx1Z2luIHdpdGggdGhlIGN1cnJlbnQgcGFyZW50LgogICAgIGlmICht
X3ByaXZhdGUgJiYgKCFwYXJlbnRXaWRnZXQgfHwgcGFyZW50V2lkZ2V0ICE9IHBhcmVudCgpKSkg
ewotICAgICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZp
ZXcqPihwYXJlbnQoKSkpIHsKKyAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9G
cmFtZVZpZXcocGFyZW50KCkpKSB7CiAgICAgICAgICAgICBpZiAobV9wcml2YXRlLT5tX2lzQmFj
a2dyb3VuZFBsYXlpbmcpCiAgICAgICAgICAgICAgICAgZnJhbWVWaWV3LT5ob3N0V2luZG93KCkt
PnBsYXRmb3JtUGFnZUNsaWVudCgpLT5vblBsdWdpblN0b3BCYWNrZ3JvdW5kUGxheSh0aGlzLCBt
X3ByaXZhdGUtPm1fcGx1Z2luVW5pcXVlUHJlZml4LmNfc3RyKCkpOwogCkBAIC04ODcsNyArODg3
LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50V2lkZ2V0
KQogICAgIGlmIChwYXJlbnRXaWRnZXQpIHsKICAgICAgICAgaW5pdCgpOwogCi0gICAgICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50V2lkZ2V0
KTsKKyAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRXaWRn
ZXQpOwogCiAgICAgICAgIGlmIChmcmFtZVZpZXcgJiYgbV9wcml2YXRlKSB7CiAgICAgICAgICAg
ICBmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdlQ2xpZW50KCktPnJlZ2lzdGVy
UGx1Z2luKHRoaXMsIHRydWUgLypzaG91bGRSZWdpc3RlciovKTsKQEAgLTkxMiw3ICs5MTIsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAgIGlmICghbV9wcml2
YXRlIHx8ICFtX2lzU3RhcnRlZCB8fCAhcGFyZW50KCkgfHwgIW1fcGx1Z2luLT5wbHVnaW5GdW5j
cygpLT5zZXR3aW5kb3cpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmlldyogZnJhbWVW
aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpOworICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkpOwogICAgIGlmICghZnJhbWVWaWV3LT5o
b3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5pc0FjdGl2ZSgpKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTEwNjgsNyArMTA2OCw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1H
ZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY2FzZSBOUE5WUm9vdFdpbmRvd0dyb3VwOiB7Ci0g
ICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFy
ZW50KCkpOworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVu
dCgpKTsKICAgICAgICAgaWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgQmxhY2tCZXJyeTo6
UGxhdGZvcm06OkdyYXBoaWNzOjpXaW5kb3cgKndpbmRvdyA9IGZyYW1lVmlldy0+aG9zdFdpbmRv
dygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+cGxhdGZvcm1XaW5kb3coKTsKICAgICAgICAgICAg
IGlmICh3aW5kb3cpIHsKQEAgLTEwODYsNyArMTA4Niw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxh
dGZvcm1HZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3Iq
IHJlCiAgICAgfQogCiAgICAgY2FzZSBOUE5WQnJvd3NlcldpbmRvd0dyb3VwOiB7Ci0gICAgICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkp
OworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsK
ICAgICAgICAgaWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkdyYXBoaWNzOjpXaW5kb3cqIHdpbmRvdyA9IGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5w
bGF0Zm9ybVBhZ2VDbGllbnQoKS0+cGxhdGZvcm1XaW5kb3coKTsKICAgICAgICAgICAgIGlmICh3
aW5kb3cpIHsKQEAgLTExMDQsNyArMTEwNCw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1H
ZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUsIE5QRXJyb3IqIHJlCiAg
ICAgfQogCiAgICAgY2FzZSBOUE5WQnJvd3NlckRpc3BsYXlDb250ZXh0OiB7Ci0gICAgICAgIEZy
YW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpOwor
ICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKICAg
ICAgICAgaWYgKGZyYW1lVmlldykgewogICAgICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06
OkdyYXBoaWNzOjpQbGF0Zm9ybURpc3BsYXlDb250ZXh0SGFuZGxlIGNvbnRleHQgPSBCbGFja0Jl
cnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OnBsYXRmb3JtRGlzcGxheUNvbnRleHQoKTsKICAgICAg
ICAgICAgIGlmIChjb250ZXh0KSB7CkBAIC0xMjM1LDcgKzEyMzUsNyBAQCBib29sIFBsdWdpblZp
ZXc6OnBsYXRmb3JtU3RhcnQoKQogCiAgICAgc2hvdygpOwogCi0gICAgaWYgKEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpKQorICAgIGlmIChG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKSkKICAgICAgICAgaGFu
ZGxlT3JpZW50YXRpb25FdmVudChmcmFtZVZpZXctPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1QYWdl
Q2xpZW50KCktPm9yaWVudGF0aW9uKCkpOwogCiAgICAgaWYgKCEobV9wbHVnaW4tPnF1aXJrcygp
LmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwpKSkgewpAQCAtMTI1
OCw3ICsxMjU4LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogICAgIG1f
cHJpdmF0ZS0+Y2xlYXJWaXNpYmxlUmVjdHMoKTsKIAogICAgIC8vIFRoaXMgd2lsbCBlbnN1cmUg
dGhhdCB3ZSB1bnJlZ2lzdGVyZWQgdGhlIHBsdWdpbi4KLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSkpIHsKKyAgICBpZiAoRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSkpIHsKICAgICAgICAgaWYg
KG1fcHJpdmF0ZS0+bV9pc0JhY2tncm91bmRQbGF5aW5nKQogICAgICAgICAgICAgZnJhbWVWaWV3
LT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpLT5vblBsdWdpblN0b3BCYWNrZ3Jv
dW5kUGxheSh0aGlzLCBtX3ByaXZhdGUtPm1fcGx1Z2luVW5pcXVlUHJlZml4LmNfc3RyKCkpOwog
CkBAIC0xMzUwLDcgKzEzNTAsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldEJhY2tncm91bmRQbGF5
KGJvb2wgdmFsdWUpCiAgICAgaWYgKCFtX3ByaXZhdGUgfHwgbV9wcml2YXRlLT5tX2lzQmFja2dy
b3VuZFBsYXlpbmcgPT0gdmFsdWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV9wcml2YXRlLT5tX3ZpZXctPnBh
cmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fcHJpdmF0
ZS0+bV92aWV3LT5wYXJlbnQoKSk7CiAgICAgbV9wcml2YXRlLT5tX2lzQmFja2dyb3VuZFBsYXlp
bmcgPSB2YWx1ZTsKICAgICBpZiAobV9wcml2YXRlLT5tX2lzQmFja2dyb3VuZFBsYXlpbmcpCiAg
ICAgICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+b25Q
bHVnaW5TdGFydEJhY2tncm91bmRQbGF5KHRoaXMsIG1fcHJpdmF0ZS0+bV9wbHVnaW5VbmlxdWVQ
cmVmaXguY19zdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2JsYWNr
YmVycnkvUGx1Z2luVmlld1ByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3UHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IDYz
NDYyMjIwYzg4YzQ3OTQwNjRmMDU4OWU4YmZiMGM5OTYwMDY3NGQuLmU0NjViZWI2ZTQ4YjBmNWZl
Njc3Mzg1ZmM3ZTlkOGM4MzU3NTlmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3UHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvYmxhY2tiZXJyeS9QbHVnaW5WaWV3UHJpdmF0ZUJsYWNrQmVycnku
Y3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6c2V0VmlzaWJs
ZVJlY3RzKGNvbnN0IE5QUmVjdCByZWN0c1tdLCBpbnQzMl90IGNvdW50KQogCiAgICAgLy8gQWRq
dXN0IHRoZSByZWN0IHRvIHRoZSBwYXJlbnQgd2luZG93IGFuZCB0aGVuIGFkanVzdCBmb3Igc2Ny
b2xsaW5nLgogICAgIG1fa2VlcFZpc2libGVSZWN0ID0gbV92aWV3LT5jb252ZXJ0VG9Db250YWlu
aW5nV2luZG93KG1fa2VlcFZpc2libGVSZWN0KTsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KG1fdmlldy0+cGFyZW50KCkpOworICAgIEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcobV92aWV3LT5wYXJlbnQoKSk7CiAgICAgbV9rZWVw
VmlzaWJsZVJlY3QubW92ZShmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkueCgpLCBmcmFtZVZp
ZXctPnNjcm9sbFBvc2l0aW9uKCkueSgpKTsKIAogICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygp
LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKS0+ZW5zdXJlQ29udGVudFZpc2libGUoKTsKQEAgLTEyNiwx
MyArMTI2LDEzIEBAIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OmNsZWFyVmlzaWJsZVJlY3RzKCkK
IAogdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6c2hvd0tleWJvYXJkKGJvb2wgdmFsdWUpCiB7Ci0g
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXct
PnBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmll
dy0+cGFyZW50KCkpOwogICAgIGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VD
bGllbnQoKS0+c2hvd1ZpcnR1YWxLZXlib2FyZCh2YWx1ZSk7CiB9CiAKIHZvaWQgUGx1Z2luVmll
d1ByaXZhdGU6OnJlcXVlc3RGdWxsU2NyZWVuKCkKIHsKLSAgICBpZiAoRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXctPnBhcmVudCgpKSkKKyAgICBp
ZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgpKSkK
ICAgICAgICAgaWYgKGZyYW1lVmlldy0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KS0+c2hvdWxkUGx1Z2luRW50ZXJGdWxsU2NyZWVuKG1fdmlldywgbV9wbHVnaW5VbmlxdWVQcmVm
aXguY19zdHIoKSkpCiAgICAgICAgICAgICBtX3ZpZXctPmhhbmRsZUZ1bGxTY3JlZW5BbGxvd2Vk
RXZlbnQoKTsKIH0KQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFBsdWdpblZpZXdQcml2YXRlOjpl
eGl0RnVsbFNjcmVlbigpCiAKIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OnJlcXVlc3RDZW50ZXJG
aXRab29tKCkKIHsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KG1fdmlldy0+cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9G
cmFtZVZpZXcobV92aWV3LT5wYXJlbnQoKSk7CiAKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgUGx1Z2luVmlld1ByaXZhdGU6OnJl
cXVlc3RDZW50ZXJGaXRab29tKCkKIAogdm9pZCBQbHVnaW5WaWV3UHJpdmF0ZTo6bG9ja09yaWVu
dGF0aW9uKGJvb2wgbGFuZHNjYXBlKQogewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3Rh
dGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgpKTsKIAogICAgIGlmICghZnJh
bWVWaWV3KQogICAgICAgICByZXR1cm47CkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBQbHVnaW5W
aWV3UHJpdmF0ZTo6dW5sb2NrT3JpZW50YXRpb24oKQogICAgIGlmICghbV9vcmllbnRhdGlvbkxv
Y2tlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0
aWNfY2FzdDxGcmFtZVZpZXcqPihtX3ZpZXctPnBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IHRvRnJhbWVWaWV3KG1fdmlldy0+cGFyZW50KCkpOwogCiAgICAgaWYgKCFmcmFt
ZVZpZXcpCiAgICAgICAgIHJldHVybjsKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFBsdWdpblZp
ZXdQcml2YXRlOjpwcmV2ZW50SWRsZShib29sIHByZXZlbnRJZGxlKQogICAgIGlmIChwcmV2ZW50
SWRsZSA9PSBtX2lkbGVQcmV2ZW50ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4obV92aWV3LT5wYXJlbnQoKSk7
CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhtX3ZpZXctPnBhcmVudCgp
KTsKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IGJlNDVkMDVhNmI4MDdiMzhh
NWRmYWVmMGViMTE5YjVlZjRkMjM5NDguLjY0NmQwZDg5YmI5YjBjNWUzNzNiYTEzMGM3NzE5Yjc4
MWFkOGU0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZp
ZXdHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsu
Y3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRn
ZXQoKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3
KCkpOwotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
cGFyZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50
KCkpOwogCiAgICAgSW50UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIElu
dFJlY3Qgb2xkQ2xpcFJlY3QgPSBtX2NsaXBSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
bWFjL1BsdWdpblZpZXdNYWMubW0KaW5kZXggOWQzZWFiMzMxNzZjM2ZjNzdmN2IwY2Q0MDZjNTA3
Y2QyMTUxYmEzMy4uZDk4NjhhYjllNjZlYWZjNzUwOWQxZjUzNzNjYTBmMjFiZWYzOTQzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLm1tCkBAIC01MDgsNyAr
NTA4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChwYXJlbnQoKS0+aXNGcmFtZVZpZXcoKSk7Ci0gICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAKICAgICBJbnRS
ZWN0IG9sZFdpbmRvd1JlY3QgPSBtX3dpbmRvd1JlY3Q7CiAgICAgSW50UmVjdCBvbGRDbGlwUmVj
dCA9IG1fY2xpcFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1Bs
dWdpblZpZXdRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5j
cHAKaW5kZXggZGU1YzJiODhlZmVlYTY3ZjAxNzIxNmIyYTZiYTAxODQ3Y2Y0MzkxOS4uMWJjZjVl
MzcxMDgyNjEyY2M1YzVkZTM0YmVlYWFlMDVkZDJmNzY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
dWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU
KHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHN0
YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKTsKIAogICAgIEludFJlY3Qgb2xkV2luZG93UmVjdCA9
IG1fd2luZG93UmVjdDsKICAgICBJbnRSZWN0IG9sZENsaXBSZWN0ID0gbV9jbGlwUmVjdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggZTA5MzRj
YjZiMzE1YWIwYTQzN2VkZDI1Yjk4ZTQ0ZTJlMGUzMDQ1My4uMTJkNWFlMGE4ZGQxOTY5ZDUwNmUy
NjZiYjUxYjkzZDkxMDMyMTEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1
Z2luVmlld1dpbi5jcHAKQEAgLTQzMiw3ICs0MzIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0
ZVBsdWdpbldpZGdldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChwYXJlbnQoKS0+
aXNGcmFtZVZpZXcoKSk7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPihwYXJlbnQoKSk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB0b0ZyYW1l
VmlldyhwYXJlbnQoKSk7CiAKICAgICBJbnRSZWN0IG9sZFdpbmRvd1JlY3QgPSBtX3dpbmRvd1Jl
Y3Q7CiAgICAgSW50UmVjdCBvbGRDbGlwUmVjdCA9IG1fY2xpcFJlY3Q7CkBAIC01NTMsNyArNTUz
LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludEludG9UcmFuc2Zvcm1lZENvbnRleHQoSERDIGhk
YykKIAogICAgIFdJTkRPV1BPUyB3aW5kb3dwb3MgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsK
IAotICAgIEludFJlY3QgciA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKS0+Y29u
dGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CisgICAgSW50UmVjdCByID0gdG9GcmFtZVZpZXco
cGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KGZyYW1lUmVjdCgpKTsKIAogICAgIHdpbmRvd3Bv
cy54ID0gci54KCk7CiAgICAgd2luZG93cG9zLnkgPSByLnkoKTsKQEAgLTU4Niw3ICs1ODYsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OnBhaW50V2luZG93ZWRQbHVnaW5JbnRvQ29udGV4dChHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgQVNTRVJUKGNvbnRleHQtPnNob3VsZEluY2x1
ZGVDaGlsZFdpbmRvd3MoKSk7CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3KCkp
OwotICAgIEludFBvaW50IGxvY2F0aW9uSW5XaW5kb3cgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcq
PihwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0KCkubG9jYXRpb24oKSk7Cisg
ICAgSW50UG9pbnQgbG9jYXRpb25JbldpbmRvdyA9IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+Y29u
dGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKS5sb2NhdGlvbigpKTsKIAogICAgIExvY2FsV2luZG93
c0NvbnRleHQgd2luZG93c0NvbnRleHQoY29udGV4dCwgZnJhbWVSZWN0KCksIGZhbHNlKTsKIApA
QCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIEludFJlY3QgcmVjdEluV2luZG93
KHJlY3QpOwogICAgIHJlY3RJbldpbmRvdy5pbnRlcnNlY3QoZnJhbWVSZWN0KCkpOwogI2Vsc2UK
LSAgICBJbnRSZWN0IHJlY3RJbldpbmRvdyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVu
dCgpKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSk7CisgICAgSW50UmVjdCByZWN0SW5X
aW5kb3cgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5kb3coZnJhbWVSZWN0
KCkpOwogI2VuZGlmCiAgICAgTG9jYWxXaW5kb3dzQ29udGV4dCB3aW5kb3dzQ29udGV4dChjb250
ZXh0LCByZWN0SW5XaW5kb3csIG1faXNUcmFuc3BhcmVudCk7CiAKQEAgLTcwMiw3ICs3MDIsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAK
ICAgICBOUEV2ZW50IG5wRXZlbnQ7CiAKLSAgICBJbnRQb2ludCBwID0gc3RhdGljX2Nhc3Q8RnJh
bWVWaWV3Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KEludFBvaW50KGV2ZW50LT5wYWdl
WCgpLCBldmVudC0+cGFnZVkoKSkpOworICAgIEludFBvaW50IHAgPSB0b0ZyYW1lVmlldyhwYXJl
bnQoKSktPmNvbnRlbnRzVG9XaW5kb3coSW50UG9pbnQoZXZlbnQtPnBhZ2VYKCksIGV2ZW50LT5w
YWdlWSgpKSk7CiAKICAgICBucEV2ZW50LmxQYXJhbSA9IE1BS0VMUEFSQU0ocC54KCksIHAueSgp
KTsKICAgICBucEV2ZW50LndQYXJhbSA9IDA7CkBAIC04MjEsNyArODIxLDcgQEAgdm9pZCBQbHVn
aW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0
dXJuOwogCiAjaWYgT1MoV0lOQ0UpCi0gICAgSW50UmVjdCByID0gc3RhdGljX2Nhc3Q8RnJhbWVW
aWV3Kj4ocGFyZW50KCkpLT5jb250ZW50c1RvV2luZG93KHJlY3QpOworICAgIEludFJlY3QgciA9
IHRvRnJhbWVWaWV3KHBhcmVudCgpKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0KTsKICAgICBtX25w
V2luZG93LnggPSByLngoKTsKICAgICBtX25wV2luZG93LnkgPSByLnkoKTsKIApAQCAtODM2LDcg
KzgzNiw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3Qm
IHJlY3QpCiAjIGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCiAgICAgSW50UG9pbnQg
cCA9IHJlY3QubG9jYXRpb24oKTsKICMgZWxzZQotICAgIEludFBvaW50IHAgPSBzdGF0aWNfY2Fz
dDxGcmFtZVZpZXcqPihwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5kb3cocmVjdC5sb2NhdGlvbigp
KTsKKyAgICBJbnRQb2ludCBwID0gdG9GcmFtZVZpZXcocGFyZW50KCkpLT5jb250ZW50c1RvV2lu
ZG93KHJlY3QubG9jYXRpb24oKSk7CiAjIGVuZGlmCiAgICAgbV9ucFdpbmRvdy54ID0gcC54KCk7
CiAgICAgbV9ucFdpbmRvdy55ID0gcC55KCk7CkBAIC0xMDY5LDcgKzEwNjksNyBAQCBQYXNzUmVm
UHRyPEltYWdlPiBQbHVnaW5WaWV3OjpzbmFwc2hvdCgpCiAgICAgICAgIC8vIFdpbmRvd2xlc3Mg
cGx1Zy1pbnMgYXNzdW1lIHRoYXQgdGhleSdyZSBkcmF3aW5nIG9udG8gdGhlIHZpZXcncyBEQy4K
ICAgICAgICAgLy8gVHJhbnNsYXRlIHRoZSBjb250ZXh0IHNvIHRoYXQgdGhlIHBsdWctaW4gZHJh
d3MgYXQgKDAsIDApLgogICAgICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3KCkpOwot
ICAgICAgICBJbnRQb2ludCBwb3NpdGlvbiA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVu
dCgpKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZVJlY3QoKSkubG9jYXRpb24oKTsKKyAgICAgICAg
SW50UG9pbnQgcG9zaXRpb24gPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSktPmNvbnRlbnRzVG9XaW5k
b3coZnJhbWVSZWN0KCkpLmxvY2F0aW9uKCk7CiAgICAgICAgIHRyYW5zZm9ybS5lRHggPSAtcG9z
aXRpb24ueCgpOwogICAgICAgICB0cmFuc2Zvcm0uZUR5ID0gLXBvc2l0aW9uLnkoKTsKICAgICAg
ICAgU2V0V29ybGRUcmFuc2Zvcm0oaGRjLmdldCgpLCAmdHJhbnNmb3JtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNGI2MThkMmI5ZWE1NjZkOTEyMDFlMWQzMzRi
YTY0OTMwNDlmMDdlZS4uYzlhODUxNDczYjQ4M2ViZDFkZmM2ZjQ0ODVjZWJhMjA2NDQxZjQ1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQxNTEsNyArNDE1MSw3
IEBAIHZvaWQgUmVuZGVyQm94OjphZGRMYXlvdXRPdmVyZmxvdyhjb25zdCBMYXlvdXRSZWN0JiBy
ZWN0KQogICAgICAgICBib29sIGhhc1RvcE92ZXJmbG93ID0gIXN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSAmJiAhaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKICAgICAgICAgYm9v
bCBoYXNMZWZ0T3ZlcmZsb3cgPSAhc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYm
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgICAgIGlmIChpc0ZsZXhpYmxlQm94KCkg
JiYgc3R5bGUoKS0+aXNSZXZlcnNlRmxleERpcmVjdGlvbigpKSB7Ci0gICAgICAgICAgICBSZW5k
ZXJGbGV4aWJsZUJveCogZmxleGlibGVCb3ggPSBzdGF0aWNfY2FzdDxSZW5kZXJGbGV4aWJsZUJv
eCo+KHRoaXMpOworICAgICAgICAgICAgUmVuZGVyRmxleGlibGVCb3gqIGZsZXhpYmxlQm94ID0g
dG9SZW5kZXJGbGV4aWJsZUJveCh0aGlzKTsKICAgICAgICAgICAgIGlmIChmbGV4aWJsZUJveC0+
aXNIb3Jpem9udGFsRmxvdygpKQogICAgICAgICAgICAgICAgIGhhc0xlZnRPdmVyZmxvdyA9IHRy
dWU7CiAgICAgICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBlNDcwZjliMGFjMjQ1Nzg2YTg4MDdiMzMwY2Uz
NWNjZmQ2NmQ2MWJiLi40NTFiZDA4ZjBkMzk5NDM4MDUyZGI3ZmYwNzIzMWZlNTEwNTNhYTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKQEAgLTI3NzIsNyArMjc3Miw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6Om1hcEFi
c29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhCiAgICAgTGF5
b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIExheW91dFBv
aW50KCkpOwogCiAgICAgaWYgKCFzdHlsZSgpLT5oYXNPdXRPZkZsb3dQb3NpdGlvbigpICYmIG8t
Pmhhc0NvbHVtbnMoKSkgewotICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSBzdGF0aWNfY2Fz
dDxSZW5kZXJCbG9jayo+KG8pOworICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSB0b1JlbmRl
ckJsb2NrKG8pOwogICAgICAgICBMYXlvdXRQb2ludCBwb2ludChyb3VuZGVkTGF5b3V0UG9pbnQo
dHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwogICAgICAgICBwb2ludCAtPSBjb250YWlu
ZXJPZmZzZXQ7CiAgICAgICAgIGJsb2NrLT5hZGp1c3RGb3JDb2x1bW5SZWN0KGNvbnRhaW5lck9m
ZnNldCwgcG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHAKaW5kZXggYTkwZDUyNGI2MTMyNGM4NDdmNDRmOTRkMDgyYzE0M2E3ZmJl
Nzg4OS4uZmQ2OTA4NzQxZmZlNmJjMWY5ODgzYWQ4OTgzOTlhNGQyNGI1NzQ5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0x
MDIsNyArMTAyLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWlyZXNMYXllcigp
IGNvbnN0CiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmFsbG93c0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmcoKSBjb25zdAogewotICAgIHJldHVybiB3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQ
bHVnaW5WaWV3QmFzZSgpICYmIHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0KCkp
LT5wbGF0Zm9ybUxheWVyKCk7CisgICAgcmV0dXJuIHdpZGdldCgpICYmIHdpZGdldCgpLT5pc1Bs
dWdpblZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3QmFzZSh3aWRnZXQoKSktPnBsYXRmb3JtTGF5
ZXIoKTsKIH0KICNlbmRpZgogCkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6dmlld0NsZWFyZWQoKQogewogICAgIC8vIFRoaXMgaXMgcmVxdWlyZWQgZm9yIDxv
YmplY3Q+IGVsZW1lbnRzIHdob3NlIGNvbnRlbnRzIGFyZSByZW5kZXJlZCBieSBXZWJDb3JlIChl
LmcuIHNyYz0iZm9vLmh0bWwiKS4KICAgICBpZiAobm9kZSgpICYmIHdpZGdldCgpICYmIHdpZGdl
dCgpLT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgIEZyYW1lVmlldyogdmlldyA9IHN0YXRpY19j
YXN0PEZyYW1lVmlldyo+KHdpZGdldCgpKTsKKyAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gdG9G
cmFtZVZpZXcod2lkZ2V0KCkpOwogICAgICAgICBpbnQgbWFyZ2luV2lkdGggPSAtMTsKICAgICAg
ICAgaW50IG1hcmdpbkhlaWdodCA9IC0xOwogICAgICAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1l
KGlmcmFtZVRhZykpIHsKQEAgLTM1MCw3ICszNTAsNyBAQCBib29sIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJl
cwogICAgIGlmICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgUGx1Z2luVmlld0Jhc2UqIHZpZXcgPSBzdGF0aWNf
Y2FzdDxQbHVnaW5WaWV3QmFzZSo+KHdpZGdldCgpKTsKKyAgICBQbHVnaW5WaWV3QmFzZSogdmll
dyA9IHRvUGx1Z2luVmlld0Jhc2Uod2lkZ2V0KCkpOwogICAgIEludFBvaW50IHJvdW5kZWRQb2lu
dCA9IGxvY2F0aW9uSW5Db250YWluZXIucm91bmRlZFBvaW50KCk7CiAKICAgICBpZiAoU2Nyb2xs
YmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyID0gdmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7
CkBAIC0zNzUsNyArMzc1LDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6c2Nyb2xsKFNj
cm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGcKICAgICBpZiAoIXdp
ZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGx1Z2luVmlld0Jhc2UqPih3aWRnZXQo
KSktPnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICByZXR1cm4gdG9QbHVnaW5W
aWV3QmFzZSh3aWRnZXQoKSktPnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKIH0KIAog
Ym9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6bG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGly
ZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IG11
bHRpcGxpZXIsIE5vZGUqKiBzdG9wTm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmgKaW5kZXggNDI4NDkzYjM2YjMwNWQxZmRmMWYwNTBhZDQ2MzYxYTcz
Y2IzYjE3Mi4uY2MxNGIxODY4N2FjYzc0Yzk5MzQ1ZWI3YjE5NjRjNmFiZDJhMDkzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTE3OCw2ICsx
NzgsMjEgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9udW1iZXJPZkluRmxvd0NoaWxkcmVuT25GaXJz
dExpbmU7CiB9OwogCitpbmxpbmUgUmVuZGVyRmxleGlibGVCb3gqIHRvUmVuZGVyRmxleGlibGVC
b3goUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzRmxleGlibGVCb3goKSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFJlbmRlckZsZXhpYmxlQm94Kj4ob2JqZWN0KTsKK30KKworaW5saW5lIGNv
bnN0IFJlbmRlckZsZXhpYmxlQm94KiB0b1JlbmRlckZsZXhpYmxlQm94KGNvbnN0IFJlbmRlck9i
amVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFv
YmplY3QgfHwgb2JqZWN0LT5pc0ZsZXhpYmxlQm94KCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBSZW5kZXJGbGV4aWJsZUJveCo+KG9iamVjdCk7Cit9CisKKy8vIFRoaXMgd2lsbCBj
YXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KK3ZvaWQgdG9SZW5kZXJGbGV4
aWJsZUJveChjb25zdCBSZW5kZXJGbGV4aWJsZUJveCopOworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBSZW5kZXJGbGV4aWJsZUJveF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lLmNwcAppbmRleCBmNGMzY2I2YjZmN2YyNWNmZTQ0ZjdkODI0ODExODE0
ZjYyNzEyZGRlLi45YmQ3YzE2NTQwMTE0MjYzMTBmYjBkNmY1MTJhY2I2ZjU4ZjhiM2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAg
dm9pZCBSZW5kZXJGcmFtZTo6dmlld0NsZWFyZWQoKQogICAgIGlmICghZWxlbWVudCB8fCAhd2lk
Z2V0KCkgfHwgIXdpZGdldCgpLT5pc0ZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7Cisg
ICAgRnJhbWVWaWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcod2lkZ2V0KCkpOwogCiAgICAgaW50IG1h
cmdpbldpZHRoID0gZWxlbWVudC0+bWFyZ2luV2lkdGgoKTsKICAgICBpbnQgbWFyZ2luSGVpZ2h0
ID0gZWxlbWVudC0+bWFyZ2luSGVpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZUJhc2UuY3BwCmluZGV4IGY3OWEyMWE5OTU4ZmIwZGZlZWUwM2M2ZTkzZjM1MmE3
NDJjMjEzZTEuLmYyYmU5ZjY0N2EyMzNmYzcwNzJkYWYzMzU1Nzc4MGUzZmQxMTkyOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC01NCw4ICs1
NCw4IEBAIGlubGluZSBib29sIHNob3VsZEV4cGFuZEZyYW1lKExheW91dFVuaXQgd2lkdGgsIExh
eW91dFVuaXQgaGVpZ2h0LCBib29sIGhhc0ZpeGVkCiAKIHZvaWQgUmVuZGVyRnJhbWVCYXNlOjps
YXlvdXRXaXRoRmxhdHRlbmluZyhib29sIGhhc0ZpeGVkV2lkdGgsIGJvb2wgaGFzRml4ZWRIZWln
aHQpCiB7Ci0gICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHdpZGdldCgpKTsKLSAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1l
VmlldyA/IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihjaGlsZEZyYW1lVmlldy0+ZnJhbWUoKS0+
Y29udGVudFJlbmRlcmVyKCkpIDogMDsKKyAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0g
dG9GcmFtZVZpZXcod2lkZ2V0KCkpOworICAgIFJlbmRlclZpZXcqIGNoaWxkUm9vdCA9IGNoaWxk
RnJhbWVWaWV3ID8gY2hpbGRGcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpIDog
MDsKIAogICAgIGlmICghY2hpbGRSb290IHx8ICFzaG91bGRFeHBhbmRGcmFtZSh3aWR0aCgpLCBo
ZWlnaHQoKSwgaGFzRml4ZWRXaWR0aCwgaGFzRml4ZWRIZWlnaHQpKSB7CiAgICAgICAgIHVwZGF0
ZVdpZGdldFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUu
Y3BwCmluZGV4IDZhNjMzNjg4OGZiZjAwNmY0MGUyNDY3OGZkMGJlODE3YjMzNTAwZjEuLmFlMTE2
YWM1MjU0YWIwZDNjNTA4MTc5MjY0MjU2MWQwNmNkNzhiZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCkBAIC05Miw4ICs5Miw4IEBAIFJlbmRlclZpZXcqIFJl
bmRlcklGcmFtZTo6Y29udGVudFJvb3RSZW5kZXJlcigpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6
IElzIHRoaXMgYWx3YXlzIGEgdmFsaWQgY2FzdD8gV2hhdCBhYm91dCBwbHVnaW5zPwogICAgIEFT
U0VSVCghd2lkZ2V0KCkgfHwgd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkpOwotICAgIEZyYW1lVmll
dyogY2hpbGRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7Ci0g
ICAgcmV0dXJuIGNoaWxkRnJhbWVWaWV3ID8gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KGNoaWxk
RnJhbWVWaWV3LT5mcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSkgOiAwOworICAgIEZyYW1lVmll
dyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7CisgICAgcmV0dXJuIGNo
aWxkRnJhbWVWaWV3ID8gY2hpbGRGcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigp
IDogMDsKIH0KIAogYm9vbCBSZW5kZXJJRnJhbWU6OmZsYXR0ZW5GcmFtZSgpIGNvbnN0CkBAIC0x
MzcsNyArMTM3LDcgQEAgdm9pZCBSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkoKQogICAg
IC8vIExheWluZyBvdXQgb3VyIGtpZHMgaXMgbm9ybWFsbHkgcmVzcG9uc2libGUgZm9yIGFkanVz
dGluZyBvdXIgaGVpZ2h0LCBzbyB3ZSBzZXQgaXQgaGVyZS4KICAgICAvLyBSZXBsYWNlZCBlbGVt
ZW50cyBub3JtYWxseSBkbyBub3QgcmVzcGVjdCBwYWRkaW5nLCBidXQgc2VhbWxlc3MgZWxlbWVu
dHMgc2hvdWxkOiB3ZSdsbCBhZGQKICAgICAvLyBib3RoIHBhZGRpbmcgYW5kIGJvcmRlciB0byB0
aGUgY2hpbGQncyBsb2dpY2FsIGhlaWdodCBoZXJlLgotICAgIEZyYW1lVmlldyogY2hpbGRGcmFt
ZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7CisgICAgRnJhbWVWaWV3
KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCgpKTsKICAgICBpZiAoY2hpbGRG
cmFtZVZpZXcpIC8vIFdpZGdldCBzaG91bGQgbmV2ZXIgYmUgbnVsbCBkdXJpbmcgbGF5b3V0KCks
IGJ1dCBqdXN0IGluIGNhc2UuCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoY2hpbGRGcmFtZVZp
ZXctPmNvbnRlbnRzSGVpZ2h0KCkgKyBib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpICsgcGFk
ZGluZ1RvcCgpICsgcGFkZGluZ0JvdHRvbSgpKTsKICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7
CkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHko
KQogICAgIHVwZGF0ZVdpZGdldFBvc2l0aW9uKCk7IC8vIE5vdGlmeSB0aGUgV2lkZ2V0IG9mIG91
ciBmaW5hbCBoZWlnaHQuCiAKICAgICAvLyBBc3NlcnQgdGhhdCB0aGUgY2hpbGQgZG9jdW1lbnQg
ZGlkIGEgY29tcGxldGUgbGF5b3V0LgotICAgIFJlbmRlclZpZXcqIGNoaWxkUm9vdCA9IGNoaWxk
RnJhbWVWaWV3ID8gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KGNoaWxkRnJhbWVWaWV3LT5mcmFt
ZSgpLT5jb250ZW50UmVuZGVyZXIoKSkgOiAwOworICAgIFJlbmRlclZpZXcqIGNoaWxkUm9vdCA9
IGNoaWxkRnJhbWVWaWV3ID8gY2hpbGRGcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJl
cigpIDogMDsKICAgICBBU1NFUlQoIWNoaWxkRnJhbWVWaWV3IHx8ICFjaGlsZEZyYW1lVmlldy0+
bGF5b3V0UGVuZGluZygpKTsKICAgICBBU1NFUlRfVU5VU0VEKGNoaWxkUm9vdCwgIWNoaWxkUm9v
dCB8fCAhY2hpbGRSb290LT5uZWVkc0xheW91dCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYjJmMGFhMTI2NDA1NjcwZmY4
NzdjZjhmZTkyMDg4YTA0YjRlNDJlZC4uY2VlNWEwZmFjZDEwOWE2ZGI5ZGUyNmUxOTAwNWNjMzhi
NWYyODdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKQEAgLTU0OSw3ICs1NDksNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgICAgICB1cGRhdGVJbWFnZUNvbnRl
bnRzKCk7CiAKICAgICBpZiAocmVuZGVyZXItPmlzRW1iZWRkZWRPYmplY3QoKSAmJiB0b1JlbmRl
ckVtYmVkZGVkT2JqZWN0KHJlbmRlcmVyKS0+YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
KSB7Ci0gICAgICAgIFBsdWdpblZpZXdCYXNlKiBwbHVnaW5WaWV3QmFzZSA9IHN0YXRpY19jYXN0
PFBsdWdpblZpZXdCYXNlKj4odG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpLT53aWRnZXQoKSk7Cisg
ICAgICAgIFBsdWdpblZpZXdCYXNlKiBwbHVnaW5WaWV3QmFzZSA9IHRvUGx1Z2luVmlld0Jhc2Uo
dG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpLT53aWRnZXQoKSk7CiAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q29udGVudHNUb01lZGlhKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCkp
OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDNkNzQxYWUyYTQ5YTJmY2I4Yjkw
OGJlYjdjMzY1ZDkwNzdhMTA0MzkuLjQyY2U2NzYzMjAwOTRlNzZiNjMwMWQwMmY5YWJlM2Q0NzA4
Y2Q1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6c2hvdWxkUHJvcGFnYXRlQ29tcG9zaXRpbmdUb0VuY2xvc2luZ0ZyYW1lKCkgY29uc3QK
ICAgICBSZW5kZXJQYXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5kZXJQYXJ0KHJlbmRlcmVyKTsK
ICAgICBpZiAoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgQVNTRVJUKGZyYW1l
UmVuZGVyZXItPndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKLSAgICAgICAgRnJhbWVWaWV3KiB2
aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4oZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpOwor
ICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSB0b0ZyYW1lVmlldyhmcmFtZVJlbmRlcmVyLT53aWRn
ZXQoKSk7CiAgICAgICAgIGlmICh2aWV3LT5pc092ZXJsYXBwZWRJbmNsdWRpbmdBbmNlc3RvcnMo
KSB8fCB2aWV3LT5oYXNDb21wb3NpdGluZ0FuY2VzdG9yKCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKaW5kZXgg
NGZhN2FkMWNiMzk1MWYzY2M2Mzg5ODI3ZGRiNmNhMTU0YmE4NjViZC4uNjBmMzk0NDgxNjJiYmMz
Yjc5ZjQwOTZjMTc4ZDY4NDA5YjU2MmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQYXJ0LmNwcApAQCAtODAsNyArODAsNyBAQCBib29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0CiAgICAgLy8gcmVuZGVyZXIgYW5kIHRoZSBwbHVn
aW4gaGFzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZCBhIGxheWVyLiBTZWNvbmQsIGlmIHRoaXMgaXMg
CiAgICAgLy8gYSByZW5kZXJlciB3aXRoIGEgY29udGVudERvY3VtZW50IGFuZCB0aGF0IGRvY3Vt
ZW50IG5lZWRzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZAogICAgIC8vIGEgbGF5ZXIuCi0gICAgaWYg
KHdpZGdldCgpICYmIHdpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkgJiYgc3RhdGljX2Nhc3Q8
UGx1Z2luVmlld0Jhc2UqPih3aWRnZXQoKSktPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICBpZiAod2lk
Z2V0KCkgJiYgd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAmJiB0b1BsdWdpblZpZXdCYXNl
KHdpZGdldCgpKS0+cGxhdGZvcm1MYXllcigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IGlmICghbm9kZSgpIHx8ICFub2RlKCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKQEAgLTEwNyw3
ICsxMDcsNyBAQCBSZW5kZXJCb3gqIFJlbmRlclBhcnQ6OmVtYmVkZGVkQ29udGVudEJveCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFub2RlKCkgfHwgIXdpZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNGcmFt
ZVZpZXcoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHdpZGdldCgpKS0+ZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgcmV0dXJuIHRvRnJh
bWVWaWV3KHdpZGdldCgpKS0+ZW1iZWRkZWRDb250ZW50Qm94KCk7CiB9CiAKIGJvb2wgUmVuZGVy
UGFydDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24gYWN0
aW9uKQpAQCAtMTE1LDcgKzExNSw3IEBAIGJvb2wgUmVuZGVyUGFydDo6bm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsCiAgICAgaWYg
KCF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkgfHwgIXJlcXVlc3QuYWxsb3dz
Q2hpbGRGcmFtZUNvbnRlbnQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlcldpZGdldDo6bm9kZUF0
UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9m
ZnNldCwgYWN0aW9uKTsKIAotICAgIEZyYW1lVmlldyogY2hpbGRGcmFtZVZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7CisgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmll
dyA9IHRvRnJhbWVWaWV3KHdpZGdldCgpKTsKICAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBj
aGlsZEZyYW1lVmlldy0+cmVuZGVyVmlldygpOwogCiAgICAgaWYgKGNoaWxkUm9vdCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCmluZGV4IDE0YWYyNTU0Y2NmZmJjNzRl
Njc2NjRmZDBiOTNiZjlkNDE0ZGNiMzIuLjA3Njc0NGUxNjA3ZDI0ZDc1NTMzNzVmOGM2NTlmOGZm
NjM1YTJjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKQEAgLTc0
LDEzICs3NCwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNSdWJ5QWZ0ZXJCbG9jayhjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCkKIHN0YXRpYyBpbmxpbmUgUmVuZGVyQmxvY2sqIHJ1YnlCZWZv
cmVCbG9jayhjb25zdCBSZW5kZXJPYmplY3QqIHJ1YnkpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBj
aGlsZCA9IHJ1YnktPmZpcnN0Q2hpbGQoKTsKLSAgICByZXR1cm4gaXNSdWJ5QmVmb3JlQmxvY2so
Y2hpbGQpID8gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihjaGlsZCkgOiAwOworICAgIHJldHVy
biBpc1J1YnlCZWZvcmVCbG9jayhjaGlsZCkgPyB0b1JlbmRlckJsb2NrKGNoaWxkKSA6IDA7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgUmVuZGVyQmxvY2sqIHJ1YnlBZnRlckJsb2NrKGNvbnN0IFJlbmRl
ck9iamVjdCogcnVieSkKIHsKICAgICBSZW5kZXJPYmplY3QqIGNoaWxkID0gcnVieS0+bGFzdENo
aWxkKCk7Ci0gICAgcmV0dXJuIGlzUnVieUFmdGVyQmxvY2soY2hpbGQpID8gc3RhdGljX2Nhc3Q8
UmVuZGVyQmxvY2sqPihjaGlsZCkgOiAwOworICAgIHJldHVybiBpc1J1YnlBZnRlckJsb2NrKGNo
aWxkKSA/IHRvUmVuZGVyQmxvY2soY2hpbGQpIDogMDsKIH0KIAogc3RhdGljIFJlbmRlckJsb2Nr
KiBjcmVhdGVBbm9ueW1vdXNSdWJ5SW5saW5lQmxvY2soUmVuZGVyT2JqZWN0KiBydWJ5KQpAQCAt
OTcsMTQgKzk3LDE0IEBAIHN0YXRpYyBSZW5kZXJSdWJ5UnVuKiBsYXN0UnVieVJ1bihjb25zdCBS
ZW5kZXJPYmplY3QqIHJ1YnkpCiAgICAgaWYgKGNoaWxkICYmICFjaGlsZC0+aXNSdWJ5UnVuKCkp
CiAgICAgICAgIGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpOwogICAgIEFTU0VSVCgh
Y2hpbGQgfHwgY2hpbGQtPmlzUnVieVJ1bigpIHx8IGNoaWxkLT5pc0JlZm9yZUNvbnRlbnQoKSB8
fCBjaGlsZCA9PSBydWJ5QmVmb3JlQmxvY2socnVieSkpOwotICAgIHJldHVybiBjaGlsZCAmJiBj
aGlsZC0+aXNSdWJ5UnVuKCkgPyBzdGF0aWNfY2FzdDxSZW5kZXJSdWJ5UnVuKj4oY2hpbGQpIDog
MDsKKyAgICByZXR1cm4gY2hpbGQgJiYgY2hpbGQtPmlzUnVieVJ1bigpID8gdG9SZW5kZXJSdWJ5
UnVuKGNoaWxkKSA6IDA7CiB9CiAKIHN0YXRpYyBpbmxpbmUgUmVuZGVyUnVieVJ1biogZmluZFJ1
YnlSdW5QYXJlbnQoUmVuZGVyT2JqZWN0KiBjaGlsZCkKIHsKICAgICB3aGlsZSAoY2hpbGQgJiYg
IWNoaWxkLT5pc1J1YnlSdW4oKSkKICAgICAgICAgY2hpbGQgPSBjaGlsZC0+cGFyZW50KCk7Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclJ1YnlSdW4qPihjaGlsZCk7CisgICAgcmV0dXJu
IHRvUmVuZGVyUnVieVJ1bihjaGlsZCk7CiB9CiAKIC8vPT09IHJ1YnkgYXMgaW5saW5lIG9iamVj
dCA9PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApp
bmRleCBkM2Y4ZDc0NjBhNzNiYTI4YTA1YzJlMGJlMDQwNTg0Y2RhYzllYTE4Li5iMzY5ZTEyMzMz
NDc1Y2IzOTJlZDJkOGNlMDA4NmYzNzkyNTcxMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCB3cml0
ZShUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBpbnQgaW5kZW50LCBSZW5k
ZXJBc1RleHRCZWhhdmkKICAgICBpZiAoby5pc1dpZGdldCgpKSB7CiAgICAgICAgIFdpZGdldCog
d2lkZ2V0ID0gdG9SZW5kZXJXaWRnZXQoJm8pLT53aWRnZXQoKTsKICAgICAgICAgaWYgKHdpZGdl
dCAmJiB3aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgICAgIEZyYW1lVmlldyogdmll
dyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCk7CisgICAgICAgICAgICBGcmFtZVZp
ZXcqIHZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQpOwogICAgICAgICAgICAgUmVuZGVyVmlldyog
cm9vdCA9IHZpZXctPmZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpOwogICAgICAgICAgICAgaWYg
KHJvb3QpIHsKICAgICAgICAgICAgICAgICB2aWV3LT5sYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYzIwZmJiYjA3YWJjOTIzY2NiNDA2M2Q4
NmJmOGFmNTBlOTcyMjU3MS4uOWFmNTMxNzVhMjRjY2I2NDk3ZjI3OWQ3ZmY3OTcwYWM2MWIzMGIx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTI2Miw3
ICsyNjIsNyBAQCB2b2lkIFJlbmRlcldpZGdldDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50TwogICAgICAgICBwYWludEluZm8uY29u
dGV4dC0+dHJhbnNsYXRlKC13aWRnZXRQYWludE9mZnNldCk7CiAKICAgICBpZiAobV93aWRnZXQt
PmlzRnJhbWVWaWV3KCkpIHsKLSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSk7CisgICAgICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gdG9GcmFtZVZpZXcobV93aWRnZXQuZ2V0KCkpOwogICAgICAgICBib29sIHJ1bk92
ZXJsYXBUZXN0cyA9ICFmcmFtZVZpZXctPnVzZVNsb3dSZXBhaW50c0lmTm90T3ZlcmxhcHBlZCgp
IHx8IGZyYW1lVmlldy0+aGFzQ29tcG9zaXRlZENvbnRlbnRJbmNsdWRpbmdEZXNjZW5kYW50cygp
OwogICAgICAgICBpZiAocGFpbnRJbmZvLm92ZXJsYXBUZXN0UmVxdWVzdHMgJiYgcnVuT3Zlcmxh
cFRlc3RzKSB7CiAgICAgICAgICAgICBBU1NFUlQoIXBhaW50SW5mby5vdmVybGFwVGVzdFJlcXVl
c3RzLT5jb250YWlucyh0aGlzKSk7CkBAIC0zMzAsNyArMzMwLDcgQEAgdm9pZCBSZW5kZXJXaWRn
ZXQ6OnNldE92ZXJsYXBUZXN0UmVzdWx0KGJvb2wgaXNPdmVybGFwcGVkKQogewogICAgIEFTU0VS
VChtX3dpZGdldCk7CiAgICAgQVNTRVJUKG1fd2lkZ2V0LT5pc0ZyYW1lVmlldygpKTsKLSAgICBz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPihtX3dpZGdldC5nZXQoKSktPnNldElzT3ZlcmxhcHBlZChp
c092ZXJsYXBwZWQpOworICAgIHRvRnJhbWVWaWV3KG1fd2lkZ2V0LmdldCgpKS0+c2V0SXNPdmVy
bGFwcGVkKGlzT3ZlcmxhcHBlZCk7CiB9CiAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpkZXJlZihSZW5k
ZXJBcmVuYSAqYXJlbmEpCkBAIC0zNDksNyArMzQ5LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OnVw
ZGF0ZVdpZGdldFBvc2l0aW9uKCkKICAgICAvLyBpZiB0aGUgZnJhbWUgYm91bmRzIGdvdCBjaGFu
Z2VkLCBvciBpZiB2aWV3IG5lZWRzIGxheW91dCAocG9zc2libHkgaW5kaWNhdGluZwogICAgIC8v
IGNvbnRlbnQgc2l6ZSBpcyB3cm9uZykgd2UgaGF2ZSB0byBkbyBhIGxheW91dCB0byBzZXQgdGhl
IHJpZ2h0IHdpZGdldCBzaXplCiAgICAgaWYgKG1fd2lkZ2V0ICYmIG1fd2lkZ2V0LT5pc0ZyYW1l
VmlldygpKSB7Ci0gICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJh
bWVWaWV3Kj4obV93aWRnZXQuZ2V0KCkpOworICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IHRvRnJhbWVWaWV3KG1fd2lkZ2V0LmdldCgpKTsKICAgICAgICAgLy8gQ2hlY2sgdGhlIGZyYW1l
J3MgcGFnZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZnJhbWUgaXNuJ3QgaW4gdGhlIHByb2Nlc3Mg
b2YgYmVpbmcgZGVzdHJveWVkLgogICAgICAgICBpZiAoKGJvdW5kc0NoYW5nZWQgfHwgZnJhbWVW
aWV3LT5uZWVkc0xheW91dCgpKSAmJiBmcmFtZVZpZXctPmZyYW1lKCktPnBhZ2UoKSkKICAgICAg
ICAgICAgIGZyYW1lVmlldy0+bGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcAppbmRleCA5Yjg5Mzc1Y2E5MjFjM2E2N2FhOTExNmRlMmRhNGYxOTc2YWU3Zjdh
Li4wMWNhZjAzMDkyZDE5YjU5ODAxNTE2ZDY4OGVhN2RlZmFhZDg5ZjA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTI1NTIsNyArMjU1Miw3IEBAIHN0YXRp
YyBpbmxpbmUgRnJhbWUqIGZyYW1lRm9yTm9kZShOb2RlKiBub2RlKQogICAgICAgICAgICAgaWYg
KHJlbmRlcmVyLT5pc1dpZGdldCgpKSB7CiAgICAgICAgICAgICAgICAgV2lkZ2V0KiB3aWRnZXQg
PSB0b1JlbmRlcldpZGdldChyZW5kZXJlciktPndpZGdldCgpOwogICAgICAgICAgICAgICAgIGlm
ICh3aWRnZXQgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpLT5mcmFt
ZSgpKQorICAgICAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdG9GcmFtZVZpZXco
d2lkZ2V0KS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcmFtZTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC01NDEyLDcgKzU0MTIsNyBAQCBz
dGF0aWMgYm9vbCBuZWVkc0xheW91dFJlY3Vyc2l2ZShGcmFtZVZpZXcqIHZpZXcpCiAgICAgZm9y
IChIYXNoU2V0PFJlZlB0cjxXaWRnZXQ+ID46OmNvbnN0X2l0ZXJhdG9yIGN1cnJlbnQgPSB2aWV3
Q2hpbGRyZW4tPmJlZ2luKCk7IGN1cnJlbnQgIT0gZW5kICYmICFzdWJmcmFtZXNOZWVkc0xheW91
dDsgKytjdXJyZW50KSB7CiAgICAgICAgIFdpZGdldCogd2lkZ2V0ID0gKCpjdXJyZW50KS5nZXQo
KTsKICAgICAgICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkKLSAgICAgICAgICAgIHN1YmZy
YW1lc05lZWRzTGF5b3V0IHw9IG5lZWRzTGF5b3V0UmVjdXJzaXZlKHN0YXRpY19jYXN0PEZyYW1l
Vmlldyo+KHdpZGdldCkpOworICAgICAgICAgICAgc3ViZnJhbWVzTmVlZHNMYXlvdXQgfD0gbmVl
ZHNMYXlvdXRSZWN1cnNpdmUodG9GcmFtZVZpZXcod2lkZ2V0KSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHN1YmZyYW1lc05lZWRzTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCAxYjM1ZTEwYjlkNTAyOWZjOTRiZDNkMjNjZGMxZWYwNjEyNjJm
M2Y1Li5lMmY4N2MwYTk1NzQyNzk5NWEwYjliZGY1MWNiNzUzMDI0ZWIxMDFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzU4LDcgKzM1OCw3IEBA
IFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZVBs
dWdpbihjb25zdCBJbnRTaXplJiBwbHVnCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKIHsKLSAgICBt
X3BsdWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lkZ2V0KTsKKyAg
ICBtX3BsdWdpblZpZXcgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAgICBpZiAocGx1
Z2luV2lkZ2V0KQogICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcAppbmRleCBlYWRmYjRiYjU0OTVkMmVmOGJjNGUxNzhlZTNhMmYxNTY3Mzdm
YWViLi5iYmQ2YmQ0ZWYwOTQxNzdlMWExMTM5NjY4MWM3NDk1NTQzYWNkY2Q2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxl
ci5jcHAKQEAgLTE0MTIsNyArMTQxMiw3IEBAIHZvaWQgSW5wdXRIYW5kbGVyOjplbnN1cmVGb2N1
c1BsdWdpbkVsZW1lbnRWaXNpYmxlKCkKIAogICAgIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0
ID0gc3RhdGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4obV9jdXJyZW50Rm9jdXNFbGVtZW50LT5yZW5k
ZXJlcigpKTsKICAgICBpZiAocmVuZGVyV2lkZ2V0KSB7Ci0gICAgICAgIFBsdWdpblZpZXcqIHBs
dWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocmVuZGVyV2lkZ2V0LT53aWRnZXQo
KSk7CisgICAgICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSB0b1BsdWdpblZpZXcocmVuZGVy
V2lkZ2V0LT53aWRnZXQoKSk7CiAKICAgICAgICAgaWYgKHBsdWdpblZpZXcpCiAgICAgICAgICAg
ICBzZWxlY3Rpb25Gb2N1c1JlY3QgPSBwbHVnaW5WaWV3LT5lbnN1cmVWaXNpYmxlUmVjdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmNwcAppbmRleCA5MTAzNDk2NDcyMGE3Mjc1OThkOTY3OTk2M2MyMmUwOWZkNTA4YWZjLi5l
Y2IxYzE4OTk1OTA2YTBkZTk1NGUzNmFmMjhlMTA4YWMwZGQyYTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcApAQCAt
MzYzLDcgKzM2Myw3IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2Nyb2xsUmVjdChp
bnQgZHgsIGludCBkeSwgY29uc3QgV2ViUmVjdCYgcmVjdCkKIHsKICAgICBXaWRnZXQqIHBhcmVu
dFdpZGdldCA9IHBhcmVudCgpOwogICAgIGlmIChwYXJlbnRXaWRnZXQtPmlzRnJhbWVWaWV3KCkp
IHsKLSAgICAgICAgRnJhbWVWaWV3KiBwYXJlbnRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFt
ZVZpZXcqPihwYXJlbnRXaWRnZXQpOworICAgICAgICBGcmFtZVZpZXcqIHBhcmVudEZyYW1lVmll
dyA9IHRvRnJhbWVWaWV3KHBhcmVudFdpZGdldCk7CiAgICAgICAgIGlmICghcGFyZW50RnJhbWVW
aWV3LT5pc092ZXJsYXBwZWQoKSkgewogICAgICAgICAgICAgSW50UmVjdCBkYW1hZ2VSZWN0ID0g
Y29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhzdGF0aWNfY2FzdDxJbnRSZWN0PihyZWN0KSk7CiAg
ICAgICAgICAgICBJbnRTaXplIHNjcm9sbERlbHRhKGR4LCBkeSk7CkBAIC00OTQsNyArNDk0LDcg
QEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRXYW50c1doZWVsRXZlbnRzKGJvb2wg
d2FudHNXaGVlbEV2ZW50cykKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+cGFnZSgpKSB7CiAgICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xs
aW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAg
ICAgICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmlzRnJhbWVWaWV3KCkpCi0gICAgICAgICAg
ICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0xheW91dFVwZGF0ZWQoc3RhdGlj
X2Nhc3Q8RnJhbWVWaWV3Kj4ocGFyZW50KCkpKTsKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdD
b29yZGluYXRvci0+ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCh0b0ZyYW1lVmlldyhwYXJlbnQoKSkp
OwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHZvaWQgV2ViUGx1Z2lu
Q29udGFpbmVySW1wbDo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKIAogICAg
IC8vIFdlIGNhY2hlIHRoZSBwYXJlbnQgRnJhbWVWaWV3IGhlcmUgYXMgdGhlIHBsdWdpbiB3aWRn
ZXQgY291bGQgYmUgZGVsZXRlZAogICAgIC8vIGluIHRoZSBjYWxsIHRvIEhhbmRsZUV2ZW50LiBT
ZWUgaHR0cDovL2IvaXNzdWU/aWQ9MTM2Mjk0OAotICAgIEZyYW1lVmlldyogcGFyZW50VmlldyA9
IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHBhcmVudCgpKTsKKyAgICBGcmFtZVZpZXcqIHBhcmVu
dFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnQoKSk7CiAKICAgICBXZWJNb3VzZUV2ZW50QnVpbGRl
ciB3ZWJFdmVudCh0aGlzLCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CiAgICAgaWYg
KHdlYkV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVt
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yQ2hyb21pdW1UZXN0LmNwcAppbmRleCBiNTljYmExMzEzNDI2NWZiMDY2ODU2YTUxM2MzM2Qw
YmE2YjJiYjZjLi40YWU4NTc0YzAxOTgxZDc2Y2RhNWE1MjJlZDdlZTk5MGQ2ZDUxZjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Q2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW1UZXN0LmNwcApAQCAtMjU4LDcgKzI1OCw3IEBAIFRFU1Rf
RihTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtVGVzdCwgaWZyYW1lU2Nyb2xsaW5nKQogICAg
IEFTU0VSVF9UUlVFKHJlbmRlcldpZGdldC0+d2lkZ2V0KCkpOwogICAgIEFTU0VSVF9UUlVFKHJl
bmRlcldpZGdldC0+d2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkpOwogCi0gICAgRnJhbWVWaWV3KiBp
bm5lckZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHJlbmRlcldpZGdldC0+d2lk
Z2V0KCkpOworICAgIEZyYW1lVmlldyogaW5uZXJGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyhyZW5k
ZXJXaWRnZXQtPndpZGdldCgpKTsKICAgICBSZW5kZXJWaWV3KiBpbm5lclJlbmRlclZpZXcgPSBp
bm5lckZyYW1lVmlldy0+cmVuZGVyVmlldygpOwogICAgIEFTU0VSVF9UUlVFKGlubmVyUmVuZGVy
Vmlldyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCBlOTkwZGNjOWM0YWEwMjkxN2Q5M2E3MDZl
OGU3NjM2ZTkzN2Q2NjA0Li4xMjY0MjFkZjM0YTZlMGIyNTkwMDNjYjE1ZjMxMTBhMWJmYjIzMDk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0zNzYsNyArMzc2LDcgQEAgUGFzc1JlZlB0cjxGcmFt
ZT4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW4KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6cmVkaXJlY3REYXRhVG9QbHVn
aW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nh
c3Q8UGx1Z2luVmlldyo+KHBsdWdpbldpZGdldCk7CisgICAgbV9wbHVnaW5WaWV3ID0gdG9QbHVn
aW5WaWV3KHBsdWdpbldpZGdldCk7CiAgICAgaWYgKHBsdWdpbldpZGdldCkKICAgICAgICAgbV9o
YXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4
IGNmOWFjNGJmNzY2MWM4MTdkZjQ0MWQ2NjIwNzc3ZDU4YTY0NWM0MzguLmE0N2RjMDdkMjE5ZTcw
OTQ3OTJmYTJiOTRiMDc4OTcxMDM1N2M3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTU1Miw3
ICs1NTIsNyBAQCBQYXNzUmVmUHRyPEZyYW1lPiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KQogewotICAgIG1f
cGx1Z2luVmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOworICAg
IG1fcGx1Z2luVmlldyA9IHRvUGx1Z2luVmlldyhwbHVnaW5XaWRnZXQpOwogICAgIGlmIChwbHVn
aW5XaWRnZXQpCiAgICAgICAgIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4gPSBmYWxzZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTm9kZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUmVuZGVyTm9kZS5tbQppbmRleCAyMzkyYjk5
ZjZkYzIwNjQ4YzhiMzhiNGU3N2RiYzNmMzU0MTY5MDE5Li5hMTgwZWVlYWQ2YjM4NTQ2ZDlmYjYw
NTgxMTJlMTA3MDA4ZTY1MjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlJlbmRlck5vZGUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5k
ZXJOb2RlLm1tCkBAIC05Niw3ICs5Niw3IEBAIHN0YXRpYyBXZWJSZW5kZXJOb2RlICpjb3B5UmVu
ZGVyTm9kZShSZW5kZXJPYmplY3QqIG5vZGUpCiAgICAgCiAgICAgUmVuZGVyV2lkZ2V0KiByZW5k
ZXJXaWRnZXQgPSBub2RlLT5pc1dpZGdldCgpID8gdG9SZW5kZXJXaWRnZXQobm9kZSkgOiAwOwog
ICAgIFdpZGdldCogd2lkZ2V0ID0gcmVuZGVyV2lkZ2V0ID8gcmVuZGVyV2lkZ2V0LT53aWRnZXQo
KSA6IDA7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB3aWRnZXQgJiYgd2lkZ2V0LT5pc0Zy
YW1lVmlldygpID8gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KSA6IDA7CisgICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSB3aWRnZXQgJiYgd2lkZ2V0LT5pc0ZyYW1lVmlldygpID8gdG9G
cmFtZVZpZXcod2lkZ2V0KSA6IDA7CiAgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVWaWV3ID8gZnJh
bWVWaWV3LT5mcmFtZSgpIDogMDsKIAogICAgIC8vIEZJWE1FOiBicm9rZW4gd2l0aCB0cmFuc2Zv
cm1zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNzYyNzU2ZTA0ZWQ5NDAz
M2VjMTY0MzE3NDcxMTVkMzAwNGI4Y2JiMS4uM2YzODFjZDBmNjAzMTIwMDhmMDNlMDYxNDAzYWEy
MWM1NTYxNDM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjA5Miw3
ICsyMDkyLDcgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogICAg
IGZvciAoSGFzaFNldDxSZWZQdHI8V2lkZ2V0PiA+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGNoaWxk
cmVuLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgV2lkZ2V0KiB3aWRnZXQg
PSAoKml0KS5nZXQoKTsKICAgICAgICAgaWYgKHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgewotICAg
ICAgICAgICAgW3NlbGYgX2FkZFNjcm9sbGVyRGFzaGJvYXJkUmVnaW9uc0ZvckZyYW1lVmlldzpz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpIGRhc2hib2FyZFJlZ2lvbnM6cmVnaW9uc107
CisgICAgICAgICAgICBbc2VsZiBfYWRkU2Nyb2xsZXJEYXNoYm9hcmRSZWdpb25zRm9yRnJhbWVW
aWV3OnRvRnJhbWVWaWV3KHdpZGdldCkgZGFzaGJvYXJkUmVnaW9uczpyZWdpb25zXTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDBlNjIyOGRl
N2ZiYmEwMjVjYzBlZWQ2ZGJiMmU4YWQ2MjAzYjI2ZmUuLjk5OTFkODUzZmM0MTYxZTI0ZjNlNjE3
OGQ1MDFjZGJmY2ZjMmI1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTQyMyw3ICsxNDIzLDcgQEAg
cHVibGljOgogICAgICAgICBRUmVjdCBjbGlwUmVjdDsKICAgICAgICAgaWYgKHBhcmVudFNjcm9s
bFZpZXcpIHsKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHBh
cmVudFNjcm9sbFZpZXctPmlzRnJhbWVWaWV3KCkpOwotICAgICAgICAgICAgY2xpcFJlY3QgPSBz
dGF0aWNfY2FzdDxGcmFtZVZpZXcqPihwYXJlbnRTY3JvbGxWaWV3KS0+d2luZG93Q2xpcFJlY3Qo
KTsKKyAgICAgICAgICAgIGNsaXBSZWN0ID0gdG9GcmFtZVZpZXcocGFyZW50U2Nyb2xsVmlldykt
PndpbmRvd0NsaXBSZWN0KCk7CiAgICAgICAgICAgICBjbGlwUmVjdC50cmFuc2xhdGUoLXdpbmRv
d1JlY3QueCgpLCAtd2luZG93UmVjdC55KCkpOwogICAgICAgICB9CiAgICAgICAgIHdpZGdldC0+
c2V0R2VvbWV0cnlBbmRDbGlwKHdpbmRvd1JlY3QsIGNsaXBSZWN0LCBpc1Zpc2libGUoKSk7CkBA
IC0xNTUxLDcgKzE1NTEsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRR
dDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnRRdDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBwbHVnaW5XaWRnZXQp
CiB7Ci0gICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBsdWdpbldp
ZGdldCk7CisgICAgbV9wbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdldCk7CiAg
ICAgaWYgKHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbiA9
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
RW1iZWRkZWRXaWRnZXQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvRW1i
ZWRkZWRXaWRnZXQuY3BwCmluZGV4IDAwNDQyMjkxYzYyMzUzMDQ2NWNkMDhjYmI5MDAzOTU2Yjcw
MmE2NDQuLjYyZDBiOWU4MjliYjFiNDAzNDVlYzIzM2FmMTM0Y2Y2MzZkM2M4OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L0VtYmVkZGVkV2lkZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9FbWJlZGRlZFdpZGdldC5jcHAK
QEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBFbWJlZGRlZFdpZGdldDo6ZnJhbWVSZWN0c0NoYW5nZWQo
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQocGFyZW50KCktPmlzRnJhbWVWaWV3KCkp
OwotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4ocGFy
ZW50KCkpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9GcmFtZVZpZXcocGFyZW50KCkp
OwogCiAgICAgSW50UmVjdCBvbGRXaW5kb3dSZWN0ID0gbV93aW5kb3dSZWN0OwogICAgIEludFJl
Y3Qgb2xkQ2xpcFJlY3QgPSBtX2NsaXBSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGQ0YmVi
YjYyY2U1MDY3YWJhYTlkYmEyYThjMmRlMmI5OGYwNDQ3ZDAuLjEzMzJlNGU1YTcwODliYWFjOWZj
ODc1NmNlMmYxMGY2ZWEzYTBhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTg4Myw3ICs4ODMs
NyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRn
ZXQqIHBsdWdpbldpZGdldCkKIHsKICAgICAvLyBJZGVhbGx5LCB0aGlzIGZ1bmN0aW9uIHNob3Vs
ZG4ndCBiZSBuZWNlc3NhcnksIHNlZSA8cmRhcjovL3Byb2JsZW0vNDg1Mjg4OT4KICAgICBpZiAo
IXBsdWdpbldpZGdldCB8fCBwbHVnaW5XaWRnZXQtPmlzUGx1Z2luVmlldygpKQotICAgICAgICBt
X21hbnVhbExvYWRlciA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXcqPihwbHVnaW5XaWRnZXQpOwor
ICAgICAgICBtX21hbnVhbExvYWRlciA9IHRvUGx1Z2luVmlldyhwbHVnaW5XaWRnZXQpOwogICAg
IGVsc2UgCiAgICAgICAgIG1fbWFudWFsTG9hZGVyID0gc3RhdGljX2Nhc3Q8RW1iZWRkZWRXaWRn
ZXQqPihwbHVnaW5XaWRnZXQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXggNTQw
MTIzNjkxMDI1Njg0NTI1M2M2ZDg4NTUyMDU0MDJmMTZlMjhiMi4uMjdjNDcwNDUwYzY1OTQxMmU2
NTI1NmZjMmRkNTVkNjQxY2Y0OGE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC0x
NzQsNyArMTc0LDcgQEAgUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6
Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHIKIAogdm9pZCBGcmFtZUxvYWRl
ckNsaWVudFdpbkNFOjpyZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkK
IHsKLSAgICBtX3BsdWdpblZpZXcgPSBzdGF0aWNfY2FzdDxQbHVnaW5WaWV3Kj4ocGx1Z2luV2lk
Z2V0KTsKKyAgICBtX3BsdWdpblZpZXcgPSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKICAg
ICBpZiAocGx1Z2luV2lkZ2V0KQogICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXeC5jcHAKaW5kZXggNDkxZjM0ZWU5YWRmYWI1ZTIyMDIyNWQ3YjUxMzk0
YTU0OGVhZmUyMy4uOWFjZjAyOTBlZGUwMWU0ZjUyOGNiNDQ1MDFhZTM0YjIyZDhmMGYzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFd4LmNwcApAQCAtODk4LDcgKzg5OCw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxv
YWRlckNsaWVudFd4OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTFBsCiAK
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0KiBw
bHVnaW5XaWRnZXQpCiB7Ci0gICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmll
dyo+KHBsdWdpbldpZGdldCk7CisgICAgbV9wbHVnaW5WaWV3ID0gdG9QbHVnaW5WaWV3KHBsdWdp
bldpZGdldCk7CiAgICAgaWYgKHBsdWdpbldpZGdldCkKICAgICAgICAgbV9oYXNTZW50UmVzcG9u
c2VUb1BsdWdpbiA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBiNzJmZjA0OWMyMmU3ZDNmODg3OTdhMzY0MTE2YTgwNDBiNWVkMjNlLi4w
ZDY3Njk2NWYxYTFkNjQ5YmZhN2ZiNjZiNTY0ZTJmMTI2ZTU2NWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIFdlYlJlbmRl
ck9iamVjdDo6V2ViUmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGJvb2wgc2hv
dWxkSW5jbHVkZURlc2NlCiAgICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXco
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBzdGF0aWNf
Y2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdG9G
cmFtZVZpZXcod2lkZ2V0KTsKICAgICBpZiAoUmVuZGVyVmlldyogY29yZUNvbnRlbnRSZW5kZXJl
ciA9IGZyYW1lVmlldy0+ZnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkpIHsKICAgICAgICAgUmVm
UHRyPFdlYlJlbmRlck9iamVjdD4gY29udGVudFJlbmRlcmVyID0gYWRvcHRSZWYobmV3IFdlYlJl
bmRlck9iamVjdChjb3JlQ29udGVudFJlbmRlcmVyLCBzaG91bGRJbmNsdWRlRGVzY2VuZGFudHMp
KTsKICAgICAgICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNvbnRlbnRSZW5kZXJlci5nZXQoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>