<?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>214019</bug_id>
          
          <creation_ts>2020-07-06 17:08:22 -0700</creation_ts>
          <short_desc>BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS should not have trailing semicolons</short_desc>
          <delta_ts>2020-07-06 19:58:19 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669253</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-06 17:08:22 -0700</bug_when>
    <thetext>BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS should not have trailing semicolons</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669255</commentid>
    <comment_count>1</comment_count>
      <attachid>403640</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-07-06 17:09:31 -0700</bug_when>
    <thetext>Created attachment 403640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669304</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 19:57:13 -0700</bug_when>
    <thetext>Committed r264006: &lt;https://trac.webkit.org/changeset/264006&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403640.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669305</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-06 19:58:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/65159403&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403640</attachid>
            <date>2020-07-06 17:09:31 -0700</date>
            <delta_ts>2020-07-06 19:57:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214019-20200706170930.patch</filename>
            <type>text/plain</type>
            <size>163219</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzOTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE1YzcxYmRiZmYyZDVi
NDc4NDUyZTNjNmFiYmM3ZDIxODlmZTAwYy4uMzYwMmU4Y2M0MjgxMWVmZTQwODE4ZjFjZjJiYTMx
Y2UyMWE1NWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyOSBAQAorMjAyMC0wNy0wNiAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMvRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUyBzaG91bGQgbm90IGhh
dmUgdHJhaWxpbmcgc2VtaWNvbG9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE0MDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlc2UgbWFjcm9zIGFyZSBkZWZpbmVkIGFzOgorICAgICAgICAKKyAg
ICAgICAgI2RlZmluZSBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMgQHRyeSB7CisgICAgICAg
ICNkZWZpbmUgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUyB9IEBjYXRjaChOU0V4Y2VwdGlvbiAq
bG9jYWxFeGNlcHRpb24pIHsgUmVwb3J0QmxvY2tlZE9iakNFeGNlcHRpb24obG9jYWxFeGNlcHRp
b24pOyB9CisgICAgICAgIAorICAgICAgICBzbyB0aGV5IHNob3VsZCBub3QgYmUgdXNlZCB3aXRo
IHRyYWlsaW5nIHNlbWljb2xvbnMuCisKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25h
cnlMb29rdXAubW06CisgICAgICAgIChXZWJDb3JlOjpleHBhbmRTZWxlY3Rpb25CeUNoYXJhY3Rl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9s
bGVyKToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yOjpkYXRhSW5SVEZERm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6ZGF0YUluUlRGRm9ybWF0KToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9EaWN0aW9uYXJ5
TG9va3VwTGVnYWN5Lm1tOgorICAgICAgICAoV2ViQ29yZTo6dG9rZW5SYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpleHBhbmRTZWxlY3Rpb25CeUNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCk6CisgICAgICAgICogcGFnZS9pb3MvRXZl
bnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjprZXlFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpsYXN0RXZlbnRJc01vdXNlVXApOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldCk6CisgICAgICAg
IChXZWJDb3JlOjpmaW5kVmlld0luU3Vidmlld3MpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3VzZVVwKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6Om1vdXNlRG93bik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6Om1vdXNlVXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjptb3VzZU1vdmVk
KToKKyAgICAgICAgKiBwYWdlL21hYy9DaHJvbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OmZvY3VzTlNWaWV3KToKKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmtleUV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Omxhc3RFdmVudElzTW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OnBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bmRWaWV3SW5TdWJ2aWV3cyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmV2ZW50
TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmV2ZW50TG9vcEhhbmRsZU1vdXNlVXApOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpwYXNzU3ViZnJhbWVFdmVudFRvU3ViZnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6bW91c2VEb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91
c2VEcmFnZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VVcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRU
cmFja2luZyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwcmVzc3VyZUNoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMp
OgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5k
bGVyOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6d2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkdQVUJpbmRHcm91cEFsbG9jYXRvcjo6YWxsb2NhdGVBbmRTZXRFbmNvZGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpHUFVCaW5kR3JvdXBBbGxvY2F0b3I6OnJlYWxsb2NhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZEFyZ3VtZW50VG9BcnJheSk6CisgICAgICAgIChXZWJD
b3JlOjp0cnlDcmVhdGVNdGxBcmd1bWVudEVuY29kZXIpOgorICAgICAgICAoV2ViQ29yZTo6YXJn
dW1lbnREZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUJpbmRHcm91cExheW91dDo6
dHJ5Q3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmlu
ZEdyb3VwTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpzZXRCdWZmZXJPbkVuY29kZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0U2FtcGxlck9uRW5jb2Rlcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRUZXh0dXJlT25FbmNvZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVQnVmZmVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OnRy
eUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVCdWZmZXI6OmNvbW1hbmRCdWZmZXJDb21t
aXR0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQnVmZmVyOjpjb3B5U3RhZ2luZ0J1ZmZlclRv
R1BVKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tbWFuZEJ1
ZmZlck1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6dHJ5Q3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmVuZEJsaXRFbmNvZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9CdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tbWFuZEJ1ZmZlcjo6Y29weUJ1ZmZlclRvVGV4
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21tYW5kQnVmZmVyOjpjb3B5VGV4dHVyZVRv
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbW1hbmRCdWZmZXI6OmNvcHlUZXh0dXJl
VG9UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29t
cHV0ZVBhc3NFbmNvZGVyTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFz
c0VuY29kZXI6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0Vu
Y29kZXI6OnNldFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVUNvbXB1dGVQYXNzRW5j
b2Rlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6R1BVQ29tcHV0ZVBhc3NFbmNvZGVy
Ojp1c2VSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVDb21wdXRlUGFzc0VuY29kZXI6
OnNldENvbXB1dGVCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVDb21wdXRlUGlwZWxpbmVNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNldE1l
dGFsRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OnRyeVNldEZ1bmN0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik6CisgICAgICAg
IChXZWJDb3JlOjp0cnlDcmVhdGVNVExDb21wdXRlUGlwZWxpbmVTdGF0ZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1ldGFsLm1tOgorICAgICAgICAo
V2ViQ29yZTo6R1BVRGV2aWNlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVQcm9ncmFtbWFibGVQYXNzRW5jb2Rlck1ldGFsLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXI6OmVuZFBhc3MpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6R1BVUXVldWU6OnRyeUNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVR
dWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
UmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlTXRs
Q29sb3JBdHRhY2htZW50c0FycmF5KToKKyAgICAgICAgKFdlYkNvcmU6OnBvcHVsYXRlTXRsRGVw
dGhTdGVuY2lsQXR0YWNobWVudCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5j
b2Rlcjo6dHJ5Q3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVy
OjpzZXRQaXBlbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0QmxlbmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFNjaXNzb3JSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpz
ZXRWZXJ0ZXhCdWZmZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVy
OjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVJlbmRlclBhc3NFbmNvZGVyOjpkcmF3SW5k
ZXhlZCk6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dXNlUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZlcnRleEJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0RnJhZ21l
bnRCdWZmZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5k
ZXJQaXBlbGluZU1ldGFsLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTXRsRGVwdGhT
dGVuY2lsU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0VmVydGV4SW5wdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6dHJ5U2V0Q29sb3JTdGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5
U2V0TWV0YWxGdW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6dHJ5U2V0RnVuY3Rpb25zKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRSZW5kZXJQaXBlbGluZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBsZXJNZXRhbC5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OnRyeUNyZWF0ZU10bFNhbXBsZXJTdGF0ZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNoYWRlck1vZHVsZU1ldGFsLm1tOgorICAgICAgICAo
V2ViQ29yZTo6R1BVU2hhZGVyTW9kdWxlOjp0cnlDcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OnRyeUNyZWF0ZVdlYkdQVUxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdQVVN3YXBDaGFp
bjo6dHJ5R2V0Q3VycmVudFRleHR1cmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW06CisgICAgICAgIChXZWJDb3JlOjp0cnlDcmVhdGVN
dGxUZXh0dXJlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpHUFVUZXh0dXJlOjp0cnlD
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R1BVVGV4dHVyZTo6dHJ5Q3JlYXRlRGVmYXVsdFRl
eHR1cmVWaWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjptYWtlU2ltcGxlQ29sb3JGcm9tTlNDb2xvcik6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1Njcm9sbFZpZXdJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3Ojpkb2N1bWVudFZpZXcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmll
dzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJNb2Rlcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNjcm9sbGJhck1vZGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OnBsYXRmb3JtU2V0Q2FuQmxpdE9uU2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnBsYXRmb3JtVW5vYnNjdXJlZENvbnRlbnRSZWN0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtRXhwb3NlZENvbnRlbnRSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldEFjdHVhbFNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtVmlzaWJsZUNvbnRlbnRS
ZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtVmlzaWJs
ZUNvbnRlbnRTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmxlZ2Fj
eVRpbGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldENv
bnRlbnRzU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNj
cm9sbGJhcnNTdXBwcmVzc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRm
b3JtU2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxh
dGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxW
aWV3OjpwbGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2luKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvV2lkZ2V0SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzaG93
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6aGlkZSk6CisgICAgICAgIChXZWJDb3JlOjpX
aWRnZXQ6OmZyYW1lUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnNldEZy
YW1lUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OnBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6YWRkVG9TdXBlcnZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0
OjpyZW1vdmVGcm9tU3VwZXJ2aWV3KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Y29udmVy
dEZyb21Sb290VG9Db250YWluaW5nV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6
Y29udmVydEZyb21Db250YWluaW5nV2luZG93VG9Sb290KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvQ3Vyc29yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQ3VzdG9tQ3Vyc29yKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgICgt
W1dlYlNjcm9sbGJhclBhcnRBbmltYXRpb24gaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJT
Y3JvbGxlckltcERlbGVnYXRlIGNhbmNlbEFuaW1hdGlvbnNdKToKKyAgICAgICAgKC1bV2ViU2Ny
b2xsZXJJbXBEZWxlZ2F0ZSBpbnZhbGlkYXRlXSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6flNjcm9sbEFuaW1hdG9yTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2Nyb2xsVmlld01hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmRvY3VtZW50
VmlldyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsYmFy
TW9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JvbGxiYXJN
b2RlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldENh
bkJsaXRPblNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVRv
cENvbnRlbnRJbnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNldFRvcENvbnRlbnRJbnNldCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpw
bGF0Zm9ybVZpc2libGVDb250ZW50UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ09ic2N1cmVkQXJlYSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldENvbnRlbnRz
U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJh
cnNTdXBwcmVzc2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0
U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1S
ZXBhaW50Q29udGVudFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpw
bGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6cGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2luKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJU
aGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lTWFjOjp1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpzZXRQYWludENoYXJhY3RlcmlzdGljc0ZvclNjcm9s
bGJhcik6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxlckltcFBhaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OmxpbmVuQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvV2lk
Z2V0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRGb2N1cyk6CisgICAgICAg
IChXZWJDb3JlOjpXaWRnZXQ6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpoaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6ZnJhbWVSZWN0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OldpZGdldDo6c2V0RnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdl
dDo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRJc1NlbGVjdGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OldpZGdldDo6cmVtb3ZlRnJvbVN1cGVydmlldyk6CisgICAgICAgIChX
ZWJDb3JlOjpXaWRnZXQ6OmNvbnZlcnRGcm9tUm9vdFRvQ29udGFpbmluZ1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvd1RvUm9vdCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29v
a2llKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldEFsbENvb2tp
ZXNUb1NhbWVTaXRlU3RyaWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Y29va2llc0ZvclNlc3Npb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZUFjY2VwdFBvbGljeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29r
aWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRI
b3N0bmFtZXNXaXRoQ29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yOjpwbGF0Zm9ybUxhenlJbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpzdGFydCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNvY29hOjptZWRpYUNvbnRyb2xzRm9ybWF0dGVkU3Ry
aW5nRm9yRHVyYXRpb24pOgorCiAyMDIwLTA3LTA2ICBKYW1lcyBEYXJwaW5pYW4gIDxqZGFycGlu
aWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggdHJhbnNmb3JtIGZlZWRiYWNrIHRlc3Rz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDNmNGIzNDk3MjUyMWUwMGVmZmUzZmQzZGMzZDljMDk3ZjM1YzNkMzIuLjZj
ZmRkODcxN2E3YjljMDlhNzc5ZjEwYmQ4OWRlYTIyMDgwYmExNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMjAtMDctMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CisKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TL0VORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMgc2hvdWxkIG5vdCBoYXZlIHRyYWlsaW5nIHNlbWljb2xvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDAxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIG1hY3JvcyBhcmUg
ZGVmaW5lZCBhczoKKyAgICAgICAgCisgICAgICAgICNkZWZpbmUgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TIEB0cnkgeworICAgICAgICAjZGVmaW5lIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMgfSBAY2F0Y2goTlNFeGNlcHRpb24gKmxvY2FsRXhjZXB0aW9uKSB7IFJlcG9ydEJsb2NrZWRP
YmpDRXhjZXB0aW9uKGxvY2FsRXhjZXB0aW9uKTsgfQorICAgICAgICAKKyAgICAgICAgc28gdGhl
eSBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0cmFpbGluZyBzZW1pY29sb25zLgorCisgICAgICAg
ICogU2hhcmVkL0NvY29hL0FyZ3VtZW50Q29kZXJzQ29jb2EubW06CisgICAgICAgIChJUEM6OmRl
Y29kZUZvbnRJbnRlcm5hbCk6CisgICAgICAgICogU2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVy
cy5tbToKKyAgICAgICAgKFdlYktpdDo6Zm9udFdpdGhBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBT
aGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVBy
b3BlcnRpZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGVyTWFjLm1tOgor
ICAgICAgICAoLVtXS1Njcm9sbGJhclBhcnRBbmltYXRpb24gaW52YWxpZGF0ZV0pOgorICAgICAg
ICAoLVtXS1Njcm9sbGVySW1wRGVsZWdhdGUgY2FuY2VsQW5pbWF0aW9uc10pOgorICAgICAgICAo
LVtXS1Njcm9sbGVySW1wRGVsZWdhdGUgaW52YWxpZGF0ZV0pOgorICAgICAgICAoV2ViS2l0OjpT
Y3JvbGxlck1hYzo6dXBkYXRlVmFsdWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBhc3NpZ25M
ZWdhY3lEYXRhRm9yQ29udGV4dE1lbnVJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGNvbnRpbnVlQ29udGV4dE1lbnVJbnRlcmFjdGlvbldpdGhEYXRhRGV0ZWN0b3JzOl0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5TWFjOjpzaG93UG9wdXBNZW51KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRp
b25SZW1vdGUubW06CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6
OnVwZGF0ZUxheWVyQW5pbWF0aW9ucyk6CisKIDIwMjAtMDctMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyNDkzMDMpIENyYXNoIHVuZGVy
IE5ldHdvcmtMb2FkOjpOZXR3b3JrTG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggNTkxODczMWI3NGM1OTFhMmY3ZGE1OWQzMTVjNmJmZDU1ZTFkNTBlMy4uOWIyYTYwOGZkNTZi
YmIyN2FiYzM1MTdmZGVmMDQ5YmFhNDQ1Mjc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTA3LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUy9FTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TIHNob3VsZCBub3QgaGF2ZSB0cmFpbGluZyBzZW1pY29sb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQwMTkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBt
YWNyb3MgYXJlIGRlZmluZWQgYXM6CisgICAgICAgIAorICAgICAgICAjZGVmaW5lIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUyBAdHJ5IHsKKyAgICAgICAgI2RlZmluZSBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TIH0gQGNhdGNoKE5TRXhjZXB0aW9uICpsb2NhbEV4Y2VwdGlvbikgeyBSZXBv
cnRCbG9ja2VkT2JqQ0V4Y2VwdGlvbihsb2NhbEV4Y2VwdGlvbik7IH0KKyAgICAgICAgCisgICAg
ICAgIHNvIHRoZXkgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdHJhaWxpbmcgc2VtaWNvbG9ucy4K
KworICAgICAgICAqIERPTS9ET01DdXN0b21YUGF0aE5TUmVzb2x2ZXIubW06CisgICAgICAgIChE
T01DdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tOgorICAgICAgICAoUG9wdXBNZW51TWFjOjpz
aG93KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjprZXlib2FyZFVJTW9kZSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZpcnN0
UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bWFrZUZpcnN0UmVzcG9uZGVy
KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENv
bnRlbnRUeXBlKToKKyAgICAgICAgKE5ldHNjYXBlUGx1Z2luV2lkZ2V0Ojpub3RpZnlXaWRnZXQp
OgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbik6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2ViR2Vv
bG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAgICAgIChXZWJHZW9s
b2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoLVtXZWJHZW9sb2Nh
dGlvblByb3ZpZGVySW5pdGlhbGl6YXRpb25MaXN0ZW5lciBpbml0aWFsaXphdGlvbkFsbG93ZWRX
ZWJWaWV3Ol0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5tbToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbToKKyAg
ICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5tbToKKyAgICAgICAgKFdlYlZpc2l0ZWRM
aW5rU3RvcmU6OnBvcHVsYXRlVmlzaXRlZExpbmtzSWZOZWVkZWQpOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIChpbWFnZUZyb21SZWN0KToKKwogMjAyMC0wNy0w
NiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NhdGFs
eXN0XSBSZW1vdmUgU1BJIGhlYWRlciBmcm9tIFdlYkRvd25sb2FkLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQppbmRleCA1ZGZlNzJkOTNj
YTdhZTdlN2Y5MzdkNjU5MmQ2MmMxMDMwZGExNTA3Li4zMjc2OTQ1ZjJjNzg4NzAwYmU3MjY4NWJi
ZDg3MjVhOGZkZDc5ZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9E
aWN0aW9uYXJ5TG9va3VwLm1tCkBAIC0yNjIsNyArMjYyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGQ6OnR1cGxlPFJlZlB0cjxSYW5nZT4sIE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5
TG9va3VwOjpyYW5nZUZvclNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rp
b24pCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFSZXZlYWxMaWJyYXJ5KCkgfHwgIVJldmVhbENv
cmVMaWJyYXJ5KCkgfHwgIWdldFJWSXRlbUNsYXNzKCkpCiAgICAgICAgIHJldHVybiB7IG51bGxw
dHIsIG5pbCB9OwpAQCAtMjg3LDE0ICsyODcsMTQgQEAgc3RkOjp0dXBsZTxSZWZQdHI8UmFuZ2U+
LCBOU0RpY3Rpb25hcnkgKj4gRGljdGlvbmFyeUxvb2t1cDo6cmFuZ2VGb3JTZWxlY3Rpb24oY28K
IAogICAgIHJldHVybiB7IGNyZWF0ZUxpdmVSYW5nZShyZXNvbHZlQ2hhcmFjdGVyUmFuZ2UoKmZ1
bGxDaGFyYWN0ZXJSYW5nZSwgaGlnaGxpZ2h0UmFuZ2UpKSwgbmlsIH07CiAKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAg
IHJldHVybiB7IG51bGxwdHIsIG5pbCB9OwogfQogCiBzdGQ6OnR1cGxlPFJlZlB0cjxSYW5nZT4s
IE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChj
b25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KQogewotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKICAg
ICBpZiAoIVJldmVhbExpYnJhcnkoKSB8fCAhUmV2ZWFsQ29yZUxpYnJhcnkoKSB8fCAhZ2V0UlZJ
dGVtQ2xhc3MoKSkKICAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgbmlsIH07CkBAIC0zNjAsNyAr
MzYwLDcgQEAgc3RkOjp0dXBsZTxSZWZQdHI8UmFuZ2U+LCBOU0RpY3Rpb25hcnkgKj4gRGljdGlv
bmFyeUxvb2t1cDo6cmFuZ2VBdEhpdFRlc3RSZXN1bHQKICAgICAKICAgICByZXR1cm4geyBjcmVh
dGVMaXZlUmFuZ2UocmVzb2x2ZUNoYXJhY3RlclJhbmdlKCpmdWxsQ2hhcmFjdGVyUmFuZ2UsIGhp
Z2hsaWdodFJhbmdlKSksIG5pbCB9OwogICAgIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIAogICAgIHJldHVybiB7IG51
bGxwdHIsIG5pbCB9OwogICAgIApAQCAtMzY4LDcgKzM2OCw3IEBAIHN0ZDo6dHVwbGU8UmVmUHRy
PFJhbmdlPiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRUZXN0
UmVzdWx0CiAKIHN0YXRpYyB2b2lkIGV4cGFuZFNlbGVjdGlvbkJ5Q2hhcmFjdGVycyhQREZTZWxl
Y3Rpb24gKnNlbGVjdGlvbiwgTlNJbnRlZ2VyIG51bWJlck9mQ2hhcmFjdGVyc1RvRXhwYW5kLCBO
U0ludGVnZXImIGNoYXJhY3RlcnNBZGRlZEJlZm9yZVN0YXJ0LCBOU0ludGVnZXImIGNoYXJhY3Rl
cnNBZGRlZEFmdGVyRW5kKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHNpemVfdCBvcmlnaW5hbExlbmd0
aCA9IHNlbGVjdGlvbi5zdHJpbmcubGVuZ3RoOwogICAgIFtzZWxlY3Rpb24gZXh0ZW5kU2VsZWN0
aW9uQXRTdGFydDpudW1iZXJPZkNoYXJhY3RlcnNUb0V4cGFuZF07CkBAIC0zNzgsMTIgKzM3OCwx
MiBAQCBzdGF0aWMgdm9pZCBleHBhbmRTZWxlY3Rpb25CeUNoYXJhY3RlcnMoUERGU2VsZWN0aW9u
ICpzZWxlY3Rpb24sIE5TSW50ZWdlciBudW1iZQogICAgIFtzZWxlY3Rpb24gZXh0ZW5kU2VsZWN0
aW9uQXRFbmQ6bnVtYmVyT2ZDaGFyYWN0ZXJzVG9FeHBhbmRdOwogICAgIGNoYXJhY3RlcnNBZGRl
ZEFmdGVyRW5kID0gc2VsZWN0aW9uLnN0cmluZy5sZW5ndGggLSBvcmlnaW5hbExlbmd0aCAtIGNo
YXJhY3RlcnNBZGRlZEJlZm9yZVN0YXJ0OwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHN0ZDo6dHVwbGU8TlNTdHJp
bmcgKiwgTlNEaWN0aW9uYXJ5ICo+IERpY3Rpb25hcnlMb29rdXA6OnN0cmluZ0ZvclBERlNlbGVj
dGlvbihQREZTZWxlY3Rpb24gKnNlbGVjdGlvbikKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgCiAgICAgaWYg
KCFSZXZlYWxMaWJyYXJ5KCkgfHwgIVJldmVhbENvcmVMaWJyYXJ5KCkgfHwgIWdldFJWSXRlbUNs
YXNzKCkpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIsIG5pbCB9OwpAQCAtNDE4LDE0ICs0MTgs
MTQgQEAgc3RkOjp0dXBsZTxOU1N0cmluZyAqLCBOU0RpY3Rpb25hcnkgKj4gRGljdGlvbmFyeUxv
b2t1cDo6c3RyaW5nRm9yUERGU2VsZWN0aW9uKFAKICAgICBBU1NFUlQoW3NlbGVjdGlvbi5zdHJp
bmcgaXNFcXVhbFRvU3RyaW5nOltmdWxsUGxhaW5UZXh0U3RyaW5nIHN1YnN0cmluZ1dpdGhSYW5n
ZTpleHRyYWN0ZWRSYW5nZV1dKTsKICAgICByZXR1cm4geyBzZWxlY3Rpb24uc3RyaW5nLCBuaWwg
fTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHsgQCIiLCBuaWwgfTsKIH0KIAogc3RhdGljIFdLUmV2
ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9vbCBj
cmVhdGVBbmltYXRpb25Db250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0
aW9uYXJ5UG9wdXBJbmZvLCBSZXZlYWxWaWV3ICp2aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBj
b25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChGbG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdD
b252ZXJzaW9uQ2FsbGJhY2ssIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGlj
YXRvcikKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIApAQCAtNTA5
LDcgKzUwOSw3IEBAIHN0YXRpYyBXS1JldmVhbENvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVB
bmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlYXRlQW5pbWF0CiAgICAgcmV0dXJuIG5pbDsKICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIAotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIAogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0VkaXRvckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQppbmRleCBiOTFlYWJhNjIy
YzRlN2E0MGZkMDQxYTJmOTQ0ODIxMDQxMGMyYWU5Li5jNWNiYzNmOTdjZDhhOTkyYzBhZWU3YTMx
YTg5ZWZkODdjZmEzZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0VkaXRvckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9y
Q29jb2EubW0KQEAgLTIwNSw5ICsyMDUsOSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBFZGl0b3I6
OmRhdGFJblJURkRGb3JtYXQoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcpCiAgICAgaWYgKCFs
ZW5ndGgpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVybiBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShbc3RyaW5nIFJURkRGcm9tUmFuZ2U6TlNNYWtlUmFuZ2UoMCwg
bGVuZ3RoKSBkb2N1bWVudEF0dHJpYnV0ZXM6QHsgfV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CkBAIC0yMTgsOSArMjE4LDkgQEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gRWRpdG9y
OjpkYXRhSW5SVEZGb3JtYXQoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcpCiAgICAgaWYgKCFs
ZW5ndGgpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVybiBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShbc3RyaW5nIFJURkZyb21SYW5nZTpOU01ha2VSYW5nZSgwLCBs
ZW5ndGgpIGRvY3VtZW50QXR0cmlidXRlczpAeyB9XSk7Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25h
cnlMb29rdXBMZWdhY3kubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5
TG9va3VwTGVnYWN5Lm1tCmluZGV4IDgzYzU0MDgxZDI4NmQ1YTZmOWQ0YWJmZjUxNjc5ZTgwOWY4
OGQ3NzQuLjhmMDA4ZDUxMzI4NjRmZGFiNzdlZGEzZWI5NGZjNDhhYzQwY2ZjZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXBMZWdhY3kubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cExlZ2FjeS5t
bQpAQCAtNTQsMTEgKzU0LDExIEBAIHN0YXRpYyBOU1JhbmdlIHRva2VuUmFuZ2UoY29uc3QgU3Ry
aW5nJiBzdHJpbmcsIE5TUmFuZ2UgcmFuZ2UsIE5TRGljdGlvbmFyeSAqKm9wCiAgICAgaWYgKCFQ
QUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCiAgICAgICAgIHJldHVybiBO
U01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBbUEFM
OjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpIHRva2VuUmFuZ2VGb3JTdHJpbmc6
c3RyaW5nIHJhbmdlOnJhbmdlIG9wdGlvbnM6b3B0aW9uc107CiAKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVy
biBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKIH0KQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGQ6
OnR1cGxlPFJlZlB0cjxSYW5nZT4sIE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5TG9va3VwOjpy
YW5nZUF0SGl0VGVzdFJlc3VsdAogCiBzdGF0aWMgdm9pZCBleHBhbmRTZWxlY3Rpb25CeUNoYXJh
Y3RlcnMoUERGU2VsZWN0aW9uICpzZWxlY3Rpb24sIE5TSW50ZWdlciBudW1iZXJPZkNoYXJhY3Rl
cnNUb0V4cGFuZCwgTlNJbnRlZ2VyJiBjaGFyYWN0ZXJzQWRkZWRCZWZvcmVTdGFydCwgTlNJbnRl
Z2VyJiBjaGFyYWN0ZXJzQWRkZWRBZnRlckVuZCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBzaXplX3Qg
b3JpZ2luYWxMZW5ndGggPSBzZWxlY3Rpb24uc3RyaW5nLmxlbmd0aDsKICAgICBbc2VsZWN0aW9u
IGV4dGVuZFNlbGVjdGlvbkF0U3RhcnQ6bnVtYmVyT2ZDaGFyYWN0ZXJzVG9FeHBhbmRdOwpAQCAt
MTYyLDEyICsxNjIsMTIgQEAgc3RhdGljIHZvaWQgZXhwYW5kU2VsZWN0aW9uQnlDaGFyYWN0ZXJz
KFBERlNlbGVjdGlvbiAqc2VsZWN0aW9uLCBOU0ludGVnZXIgbnVtYmUKICAgICBbc2VsZWN0aW9u
IGV4dGVuZFNlbGVjdGlvbkF0RW5kOm51bWJlck9mQ2hhcmFjdGVyc1RvRXhwYW5kXTsKICAgICBj
aGFyYWN0ZXJzQWRkZWRBZnRlckVuZCA9IHNlbGVjdGlvbi5zdHJpbmcubGVuZ3RoIC0gb3JpZ2lu
YWxMZW5ndGggLSBjaGFyYWN0ZXJzQWRkZWRCZWZvcmVTdGFydDsKIAotICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBzdGQ6
OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqPiBEaWN0aW9uYXJ5TG9va3VwOjpzdHJp
bmdGb3JQREZTZWxlY3Rpb24oUERGU2VsZWN0aW9uICpzZWxlY3Rpb24pCiB7Ci0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
CiAgICAgLy8gRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlcmUgaXMgbm8gY2hhcmFjdGVyIGF0IHRo
ZSBwb2ludC4KICAgICBpZiAoIXNlbGVjdGlvbiB8fCAhc2VsZWN0aW9uLnN0cmluZy5sZW5ndGgp
CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCBzdGQ6OnR1cGxlPE5TU3RyaW5nICosIE5TRGljdGlvbmFy
eSAqPiBEaWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUAogICAgIEFTU0VS
VChbc2VsZWN0aW9uLnN0cmluZyBpc0VxdWFsVG9TdHJpbmc6W2Z1bGxQbGFpblRleHRTdHJpbmcg
c3Vic3RyaW5nV2l0aFJhbmdlOmV4dHJhY3RlZFJhbmdlXV0pOwogICAgIHJldHVybiB7IHNlbGVj
dGlvbi5zdHJpbmcsIG9wdGlvbnMgfTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHsgQCIiLCBuaWwg
fTsKIH0KIAogc3RhdGljIGlkIDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+
IHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZWF0ZUFuaW1hdGlv
bkNvbnRyb2xsZXIsIGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cElu
Zm8sIE5TVmlldyAqdmlldywgY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFRleHRJbmRpY2F0b3Im
KT4mIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgY29uc3QgV1RGOjpGdW5jdGlv
bjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4mIHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNr
KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghUEFMOjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1
bGVDbGFzcygpKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRp
YyBpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPiBzaG93UG9wdXBPckNy
ZWF0ZUFuaW1hdGlvbkNvbnRyCiAgICAgW1BBTDo6Z2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxl
Q2xhc3MoKSBzaG93RGVmaW5pdGlvbkZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1
dGVkU3RyaW5nLmdldCgpIGF0TG9jYXRpb246dGV4dEJhc2VsaW5lT3JpZ2luIG9wdGlvbnM6bXV0
YWJsZU9wdGlvbnMuZ2V0KCldOwogICAgIHJldHVybiBuaWw7CiAKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4g
bmlsOwogfQogCkBAIC0yNTksMTMgKzI1OSwxMyBAQCB2b2lkIERpY3Rpb25hcnlMb29rdXA6OnNo
b3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLAog
CiB2b2lkIERpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCgpCiB7Ci0gICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAg
aWYgKCFQQUw6OmdldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNsYXNzKCkpCiAgICAgICAgIHJl
dHVybjsKICAgICBbUEFMOjpnZXRMVUxvb2t1cERlZmluaXRpb25Nb2R1bGVDbGFzcygpIGhpZGVE
ZWZpbml0aW9uXTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBpZCA8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyPiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAo
Y29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgTlNWaWV3ICp2
aWV3LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiYgdGV4dEluZGlj
YXRvckluc3RhbGxhdGlvbkNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPEZsb2F0UmVjdChG
bG9hdFJlY3QpPiYgcm9vdFZpZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2ssIFdURjo6RnVuY3Rp
b248dm9pZCgpPiYmIGNsZWFyVGV4dEluZGljYXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCBjZjc4MzkzZGUyMGY1MGFhNmRiZDdlMWI1ZDM3MDJl
NWU2YTRmMjdiLi40NjRhZGNhMTljZmIxMmQyY2Q1MjYyZmNiZWZlNjg4MmU0ZWEyMDhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0xNTUsNyArMTU1
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2
ZW50KiBldmVudCkgY29uc3QKIAogYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KFdlYkV2ZW50
ICpldmVudCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBXZWJFdmVu
dEtleURvd24gfHwgZXZlbnQudHlwZSA9PSBXZWJFdmVudEtleVVwKTsKIApAQCAtMTY0LDcgKzE2
NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChXZWJFdmVudCAqZXZlbnQpCiAgICAg
ZXZlbnQud2FzSGFuZGxlZCA9IGV2ZW50V2FzSGFuZGxlZDsKICAgICByZXR1cm4gZXZlbnRXYXNI
YW5kbGVkOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0yMTUsMTMgKzIxNSwx
MyBAQCBzdGF0aWMgYm9vbCBsYXN0RXZlbnRJc01vdXNlVXAoKQogICAgIC8vIHRoYXQgc3RhdGUu
IEhhbmRsaW5nIHRoaXMgd2FzIGNyaXRpY2FsIHdoZW4gd2UgdXNlZCBBcHBLaXQgd2lkZ2V0cyBm
b3IgZm9ybSBlbGVtZW50cy4KICAgICAvLyBJdCdzIG5vdCBjbGVhciBpbiB3aGF0IGNhc2VzIHRo
aXMgaXMgaGVscGZ1bCBub3cgLS0gaXQncyBwb3NzaWJsZSBpdCBjYW4gYmUgcmVtb3ZlZC4gCiAK
LSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAgICAgV2ViRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURv
d24gPSBbV0FLV2luZG93IGN1cnJlbnRFdmVudF07CiAgICAgcmV0dXJuIGN1cnJlbnRFdmVudEFm
dGVySGFuZGxpbmdNb3VzZURvd24KICAgICAgICAgJiYgRXZlbnRIYW5kbGVyOjpjdXJyZW50RXZl
bnQoKSAhPSBjdXJyZW50RXZlbnRBZnRlckhhbmRsaW5nTW91c2VEb3duCiAgICAgICAgICYmIGN1
cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24udHlwZSA9PSBXZWJFdmVudE1vdXNlVXAK
ICAgICAgICAgJiYgY3VycmVudEV2ZW50QWZ0ZXJIYW5kbGluZ01vdXNlRG93bi50aW1lc3RhbXAg
Pj0gRXZlbnRIYW5kbGVyOjpjdXJyZW50RXZlbnQoKS50aW1lc3RhbXA7Ci0gICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CkBAIC0yNDMsNyArMjQzLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCogcFdpZGdldCkKICAgICBpZiAoIXdpZGdl
dC0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
CiAgICAgTlNWaWV3ICpub2RlVmlldyA9IHdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKTsKICAgICBB
U1NFUlQobm9kZVZpZXcpOwpAQCAtMzAxLDcgKzMwMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpw
YXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqIHBXaWRnZXQpCiAgICAgaWYgKGxhc3RF
dmVudElzTW91c2VVcCgpKQogICAgICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogCi0gICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTMxMSw3ICszMTEsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lkZ2V0KiBwV2lkZ2V0KQogLy8gdHJl
ZSwgYW5kIHRoaXMgd29ya3MgaW4gY2FzZXMgd2hlcmUgdGhlIHRhcmdldCBoYXMgYWxyZWFkeSBi
ZWVuIGRlYWxsb2NhdGVkLgogc3RhdGljIGJvb2wgZmluZFZpZXdJblN1YnZpZXdzKE5TVmlldyAq
c3VwZXJ2aWV3LCBOU1ZpZXcgKnRhcmdldCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgTlNFbnVtZXJhdG9y
ICplID0gW1tzdXBlcnZpZXcgc3Vidmlld3NdIG9iamVjdEVudW1lcmF0b3JdOwogICAgIE5TVmll
dyAqc3VidmlldzsKICAgICB3aGlsZSAoKHN1YnZpZXcgPSBbZSBuZXh0T2JqZWN0XSkpIHsKQEAg
LTMxOSw3ICszMTksNyBAQCBzdGF0aWMgYm9vbCBmaW5kVmlld0luU3Vidmlld3MoTlNWaWV3ICpz
dXBlcnZpZXcsIE5TVmlldyAqdGFyZ2V0KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0zNTYsOSArMzU2
LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCiAgICAgaWYgKCFtX21vdXNlRG93bldhc0luU3Vi
ZnJhbWUpIHsKICAgICAgICAgQVNTRVJUKCFtX3NlbmRpbmdFdmVudFRvU3Vidmlldyk7CiAgICAg
ICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gdHJ1ZTsKLSAgICAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICAgICAgW3ZpZXcgbW91c2VVcDpjdXJyZW50RXZlbnQoKV07Ci0gICAgICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAg
ICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKICAgICB9CiAgCkBAIC0zNjcsNyAr
MzY3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpCiAgICAgCiBib29sIEV2ZW50SGFuZGxlcjo6
cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMm
IGV2ZW50LCBGcmFtZSYgc3ViZnJhbWUsIEhpdFRlc3RSZXN1bHQqIGhpdFRlc3RSZXN1bHQpCiB7
Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogCiAgICAgV2ViRXZlbnRUeXBlIGN1cnJlbnRFdmVudFR5cGUgPSBjdXJyZW50
RXZlbnQoKS50eXBlOwogICAgIHN3aXRjaCAoY3VycmVudEV2ZW50VHlwZSkgewpAQCAtNDE0LDE0
ICs0MTQsMTQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKICAgICBjYXNlIFdlYkV2ZW50VG91
Y2hFbmQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYgd2lkZ2V0KQogewotICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAog
ICAgIE5TVmlldyogbm9kZVZpZXcgPSB3aWRnZXQucGxhdGZvcm1XaWRnZXQoKTsKICAgICBpZiAo
IW5vZGVWaWV3KSB7CkBAIC00NDYsNyArNDQ2LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NX
aGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgV2lkZ2V0JiB3aWQK
ICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwog
Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBF
dmVudEhhbmRsZXI6Om1vdXNlRG93bihXZWJFdmVudCAqZXZlbnQpCiAgICAgaWYgKCF2IHx8IG1f
c2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQogICAgICAgICByZXR1cm47CiAKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAg
ICAvLyBGSVhNRTogV2h5IGlzIHRoaXMgaGVyZT8gRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVBy
ZXNzRXZlbnQoKSBjYWxscyBpdC4KICAgICBtX2ZyYW1lLmxvYWRlcigpLnJlc2V0TXVsdGlwbGVG
b3JtU3VibWlzc2lvblByb3RlY3Rpb24oKTsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6bW91c2VEb3duKFdlYkV2ZW50ICpldmVudCkKIAogICAgIGV2ZW50Lndhc0hhbmRs
ZWQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnQoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpKTsK
IAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6bW91c2VVcChXZWJFdmVudCAqZXZlbnQp
CkBAIC00NzYsNyArNDc2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlVXAoV2ViRXZlbnQg
KmV2ZW50KQogICAgIGlmICghdiB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAg
cmV0dXJuOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQp
OwogCkBAIC00ODQsNyArNDg0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlVXAoV2ViRXZl
bnQgKmV2ZW50KQogCiAgICAgbV9tb3VzZURvd25WaWV3ID0gbmlsOwogCi0gICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZv
aWQgRXZlbnRIYW5kbGVyOjptb3VzZU1vdmVkKFdlYkV2ZW50ICpldmVudCkKQEAgLTQ5NCw3ICs0
OTQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChXZWJFdmVudCAqZXZlbnQpCiAg
ICAgaWYgKCFtX2ZyYW1lLmRvY3VtZW50KCkgfHwgIW1fZnJhbWUudmlldygpIHx8IG1fbW91c2VQ
cmVzc2VkIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAgICAgYXV0byYgZG9jdW1lbnQgPSAqbV9mcmFtZS5kb2N1bWVudCgpOwogICAgIC8v
IEVuc3VyZSB3ZSBzdGFydCBtb3VzZSBtb3ZlIGV2ZW50IGRpc3BhdGNoaW5nIG9uIGEgY2xlYXIg
dHJlZS4KICAgICBkb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CkBAIC01MTEsNyArNTEx
LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQoV2ViRXZlbnQgKmV2ZW50KQogICAg
ICAgICB9KTsKICAgICB9CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogc3RhdGljIGJvb2wgZnJhbWVIYXNQbGF0Zm9y
bVdpZGdldChjb25zdCBGcmFtZSYgZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9DaHJvbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9DaHJvbWVNYWMu
bW0KaW5kZXggYWVkM2VkODNhM2M1NTYxYzM3N2IyZWU3Njk2OGE0YzUzOTU0OGM1OS4uNTEwNDUy
ZmQwOTgxMjFlMzBjNWFiZjVhMTBmM2Q2OTA0ZTFjNjcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvQ2hyb21lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0Nocm9tZU1hYy5tbQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZv
aWQgQ2hyb21lOjpmb2N1c05TVmlldyhOU1ZpZXcqIHZpZXcpCiB7Ci0gICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAg
Ly8gSGFuZGxlIHRoZSBXSzIgY2FzZSB3aGVyZSB0aGVyZSBpcyBubyB2aWV3IHBhc3NlZCBpbi4K
ICAgICBpZiAoIXZpZXcpIHsKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBDaHJvbWU6OmZvY3VzTlNW
aWV3KE5TVmlldyogdmlldykKICAgICBpZiAoIVt2aWV3IHN1cGVydmlld10pCiAgICAgICAgIGNs
aWVudCgpLm1ha2VGaXJzdFJlc3BvbmRlcihmaXJzdFJlc3BvbmRlcik7CiAKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5k
bGVyTWFjLm1tCmluZGV4IGUyMTEzNzBiZTUyMTg0NmM5NWQ3MzE2NDVkMTU3NjUxYTQzM2VmYjUu
LjcxZjFmOTE0NmYwYzlhMjI4OGUxMDA0ZWI2ZTg5OTVjZmQ3ODU3YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTE1MCwxNCArMTUwLDE0IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiBib29sIEV2ZW50
SGFuZGxlcjo6a2V5RXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgQVNT
RVJUKFtldmVudCB0eXBlXSA9PSBOU0V2ZW50VHlwZUtleURvd24gfHwgW2V2ZW50IHR5cGVdID09
IE5TRXZlbnRUeXBlS2V5VXApOwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQs
IG5pbCk7CiAgICAgcmV0dXJuIGtleUV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQoZXZlbnQpKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIGZhbHNl
OwogfQpAQCAtMjExLDEyICsyMTEsMTIgQEAgc3RhdGljIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVw
KCkKICAgICBBU1NFUlQoW05TQXBwIGlzUnVubmluZ10pOwogICAgIEFTU0VSVChoYXNQcm9jZXNz
UHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZl
cikpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIE5TRXZlbnQgKmN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdN
b3VzZURvd24gPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKICAgICByZXR1cm4gRXZlbnRIYW5kbGVy
OjpjdXJyZW50TlNFdmVudCgpICE9IGN1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24K
ICAgICAgICAgJiYgW2N1cnJlbnRFdmVudEFmdGVySGFuZGxpbmdNb3VzZURvd24gdHlwZV0gPT0g
TlNFdmVudFR5cGVMZWZ0TW91c2VVcAogICAgICAgICAmJiBbY3VycmVudEV2ZW50QWZ0ZXJIYW5k
bGluZ01vdXNlRG93biB0aW1lc3RhbXBdID49IFtFdmVudEhhbmRsZXI6OmN1cnJlbnROU0V2ZW50
KCkgdGltZXN0YW1wXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTIzOCw3ICsy
MzgsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoV2lk
Z2V0KiBwV2lkZ2V0KQogICAgIGlmICghd2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBOU1ZpZXcgKm5vZGVWaWV3ID0gd2lk
Z2V0LT5wbGF0Zm9ybVdpZGdldCgpOwogICAgIEFTU0VSVChbbm9kZVZpZXcgc3VwZXJ2aWV3XSk7
CkBAIC0yOTUsNyArMjk1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZURvd25FdmVu
dFRvV2lkZ2V0KFdpZGdldCogcFdpZGdldCkKICAgICBpZiAobGFzdEV2ZW50SXNNb3VzZVVwKCkp
CiAgICAgICAgIG1fbW91c2VQcmVzc2VkID0gZmFsc2U7CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VE
b3duRXZlbnRUb1dpZGdldChXaWRnZXQqIHBXaWRnZXQpCiAvLyB0cmVlLCBhbmQgdGhpcyB3b3Jr
cyBpbiBjYXNlcyB3aGVyZSB0aGUgdGFyZ2V0IGhhcyBhbHJlYWR5IGJlZW4gZGVhbGxvY2F0ZWQu
CiBzdGF0aWMgYm9vbCBmaW5kVmlld0luU3Vidmlld3MoTlNWaWV3ICpzdXBlcnZpZXcsIE5TVmll
dyAqdGFyZ2V0KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBOU0VudW1lcmF0b3IgKmUgPSBbW3N1cGVydmll
dyBzdWJ2aWV3c10gb2JqZWN0RW51bWVyYXRvcl07CiAgICAgTlNWaWV3ICpzdWJ2aWV3OwogICAg
IHdoaWxlICgoc3VidmlldyA9IFtlIG5leHRPYmplY3RdKSkgewpAQCAtMzEzLDcgKzMxMyw3IEBA
IHN0YXRpYyBib29sIGZpbmRWaWV3SW5TdWJ2aWV3cyhOU1ZpZXcgKnN1cGVydmlldywgTlNWaWV3
ICp0YXJnZXQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KLSAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTM0Nyw5ICszNDcsOSBAQCBib29sIEV2ZW50
SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdAogICAgIGlmICghbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKSB7CiAgICAg
ICAgIEFTU0VSVCghbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpOwogICAgICAgICBtX3NlbmRpbmdF
dmVudFRvU3VidmlldyA9IHRydWU7Ci0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIFt2aWV3IG1v
dXNlRHJhZ2dlZDpjdXJyZW50TlNFdmVudCgpXTsKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICBtX3Nl
bmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogICAgIH0KICAgICAKQEAgLTM2Niw5ICszNjYs
OSBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRMb29wSGFuZGxlTW91c2VVcChjb25zdCBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKICAgICBpZiAoIW1fbW91c2VEb3duV2FzSW5TdWJm
cmFtZSkgewogICAgICAgICBBU1NFUlQoIW1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KTsKICAgICAg
ICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSB0cnVlOwotICAgICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAg
ICAgICBbdmlldyBtb3VzZVVwOmN1cnJlbnROU0V2ZW50KCldOwotICAgICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
ICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAgICAgfQogIApAQCAtMzc3LDcg
KzM3Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudExvb3BIYW5kbGVNb3VzZVVwKGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKQogICAgIAogYm9vbCBFdmVudEhhbmRsZXI6
OnBhc3NTdWJmcmFtZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRz
JiBldmVudCwgRnJhbWUmIHN1YmZyYW1lLCBIaXRUZXN0UmVzdWx0KiBoaXRUZXN0UmVzdWx0KQog
ewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIAogICAgIHN3aXRjaCAoW2N1cnJlbnROU0V2ZW50KCkgdHlwZV0pIHsKICAg
ICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKQEAgLTQyOCw3ICs0MjgsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC00NjksNyArNDY5LDcg
QEAgc3RhdGljIHZvaWQgc2VsZlJldGFpbmluZ05TU2Nyb2xsVmlld1Njcm9sbFdoZWVsKE5TU2Ny
b2xsVmlldyAqc2VsZiwgU0VMIHNlbGVjdG8KIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NXaGVl
bEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBXaWRn
ZXQmIHdpZGdldCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBOU1ZpZXcqIG5vZGVWaWV3ID0gd2lkZ2V0
LnBsYXRmb3JtV2lkZ2V0KCk7CiAgICAgaWYgKCFub2RlVmlldykgewpAQCAtNTAyLDcgKzUwMiw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9
IGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
CkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bihOU0V2ZW50
ICpldmVudCwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQKICAgICBpZiAoIXYg
fHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICAgICBtX21vdXNlRG93blZpZXcgPSBuaWw7CiAgICAgCkBAIC01MjAsNyArNTIwLDcg
QEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlRG93bihOU0V2ZW50ICpldmVudCwgTlNFdmVudCAq
Y29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQKIAogICAgIGhhbmRsZU1vdXNlUHJlc3NFdmVudChj
dXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgRXZlbnRIYW5k
bGVyOjptb3VzZURyYWdnZWQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQ
cmVzc3VyZUV2ZW50KQpAQCAtNTI5LDEyICs1MjksMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1v
dXNlRHJhZ2dlZChOU0V2ZW50ICpldmVudCwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJl
RXYKICAgICBpZiAoIXYgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIAogICAgIEN1cnJlbnRFdmVudFNjb3BlIHNjb3BlKGV2ZW50LCBjb3Jy
ZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgaGFuZGxlTW91c2VNb3ZlRXZlbnQoY3VycmVu
dFBsYXRmb3JtTW91c2VFdmVudCgpKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6
bW91c2VVcChOU0V2ZW50ICpldmVudCwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZl
bnQpCkBAIC01NDMsNyArNTQzLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Om1vdXNlVXAoTlNFdmVu
dCAqZXZlbnQsIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KQogICAgIGlmICgh
diB8fCBtX3NlbmRpbmdFdmVudFRvU3VidmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIGNvcnJlc3BvbmRpbmdQcmVz
c3VyZUV2ZW50KTsKIApAQCAtNTYyLDcgKzU2Miw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjptb3Vz
ZVVwKE5TRXZlbnQgKmV2ZW50LCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCkK
ICAgICAKICAgICBtX21vdXNlRG93blZpZXcgPSBuaWw7CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogLyoKQEAgLTU4
Miw3ICs1ODIsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdl
dFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKIAogICAgIEFTU0VSVChoYXNQcm9j
ZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1Nl
cnZlcikpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxz
ZTsKICAgICBpbnQgZXZlbnRUeXBlID0gW2luaXRpYXRpbmdFdmVudCB0eXBlXTsKQEAgLTYzMyw3
ICs2MzMsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRy
YWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCkKICAgICAgICAgW05TQXBwIHBvc3RFdmVu
dDpmYWtlRXZlbnQgYXRTdGFydDpZRVNdOwogICAgIH0KICAgICAKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBF
dmVudEhhbmRsZXI6Om1vdXNlTW92ZWQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQqIGNvcnJlc3Bv
bmRpbmdQcmVzc3VyZUV2ZW50KQpAQCAtNjQzLDEwICs2NDMsMTAgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6Om1vdXNlTW92ZWQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQcmVz
c3VyZUV2ZW4KICAgICBpZiAoIW1fZnJhbWUudmlldygpIHx8IG1fbW91c2VQcmVzc2VkIHx8IG1f
c2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQogICAgICAgICByZXR1cm47CiAKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
Q3VycmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIGNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50
KTsKICAgICBtb3VzZU1vdmVkKGN1cnJlbnRQbGF0Zm9ybU1vdXNlRXZlbnQoKSk7Ci0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpwcmVzc3VyZUNoYW5nZShOU0V2ZW50ICpldmVudCwgTlNF
dmVudCogY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpCkBAIC02NTQsMTAgKzY1NCwxMCBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6cHJlc3N1cmVDaGFuZ2UoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQq
IGNvcnJlc3BvbmRpbmdQcmVzc3VyZQogICAgIGlmICghbV9mcmFtZS52aWV3KCkgfHwgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBDdXJy
ZW50RXZlbnRTY29wZSBzY29wZShldmVudCwgY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwog
ICAgIGhhbmRsZU1vdXNlRm9yY2VFdmVudChjdXJyZW50UGxhdGZvcm1Nb3VzZUV2ZW50KCkpOwot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xs
YmFycyhOU0V2ZW50ICpldmVudCwgTlNFdmVudCogY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQp
CkBAIC02NjcsMTAgKzY2NywxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZWRF
dmVudFRvU2Nyb2xsYmFycyhOU0V2ZW50ICpldmVudCwgTlNFdmVudCogY29ycgogICAgIGlmICgh
bV9mcmFtZS52aWV3KCkgfHwgbV9tb3VzZVByZXNzZWQgfHwgbV9zZW5kaW5nRXZlbnRUb1N1YnZp
ZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBDdXJyZW50RXZlbnRTY29wZSBz
Y29wZShldmVudCwgY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIHBhc3NNb3VzZU1v
dmVkRXZlbnRUb1Njcm9sbGJhcnMoY3VycmVudFBsYXRmb3JtTW91c2VFdmVudCgpKTsKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogc3RhdGljIGJvb2wgZnJhbWVIYXNQbGF0Zm9ybVdpZGdldChjb25zdCBGcmFtZSYgZnJh
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tCmluZGV4IGIxZjYwY2RmYTdlYmEw
YThiMTMzMTY3NDVkODM1MGMxYzI5MTkyNmUuLjhmM2MyMDZjYzcyMzI3MzhmZmE0ZDJhYTJkNGFk
ZWM1YjUxNTQwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0Nv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tCkBAIC05NSwy
NiArOTUsMjYgQEAgYm9vbCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI6Om5lZWRzVUlQcm9j
ZXNzKCkgY29uc3QKIHZvaWQgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjplbmNvZGUoTlND
b2RlciAqY29kZXIpIGNvbnN0CiB7CiAgICAgQVNTRVJUX0FSRyhjb2RlciwgY29kZXIuYWxsb3dz
S2V5ZWRDb2RpbmcgJiYgY29kZXIucmVxdWlyZXNTZWN1cmVDb2RpbmcpOwotICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICBbY29kZXIgZW5jb2RlT2JqZWN0Om1fdW5ibG9ja1VSTEhvc3QgZm9yS2V5OnVuYmxvY2tVUkxI
b3N0S2V5XTsKICAgICBbY29kZXIgZW5jb2RlT2JqZWN0OihOU1VSTCAqKW1fdW5yZWFjaGFibGVV
UkwgZm9yS2V5OnVucmVhY2hhYmxlVVJMS2V5XTsKICNpZiBIQVZFKFBBUkVOVEFMX0NPTlRST0xT
X1dJVEhfVU5CTE9DS19IQU5ETEVSKQogICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6bV93ZWJGaWx0
ZXJFdmFsdWF0b3IuZ2V0KCkgZm9yS2V5OndlYkZpbHRlckV2YWx1YXRvcktleV07CiAjZW5kaWYK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogYm9vbCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI6OmRlY29kZShOU0Nv
ZGVyICpjb2RlciwgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlcikK
IHsKICAgICBBU1NFUlRfQVJHKGNvZGVyLCBjb2Rlci5hbGxvd3NLZXllZENvZGluZyAmJiBjb2Rl
ci5yZXF1aXJlc1NlY3VyZUNvZGluZyk7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHVuYmxvY2tIYW5kbGVyLm1f
dW5ibG9ja1VSTEhvc3QgPSBbY29kZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xh
c3NdIGZvcktleTp1bmJsb2NrVVJMSG9zdEtleV07CiAgICAgdW5ibG9ja0hhbmRsZXIubV91bnJl
YWNoYWJsZVVSTCA9IFtjb2RlciBkZWNvZGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc10gZm9y
S2V5OnVucmVhY2hhYmxlVVJMS2V5XTsKICNpZiBIQVZFKFBBUkVOVEFMX0NPTlRST0xTX1dJVEhf
VU5CTE9DS19IQU5ETEVSKQogICAgIHVuYmxvY2tIYW5kbGVyLm1fd2ViRmlsdGVyRXZhbHVhdG9y
ID0gW2NvZGVyIGRlY29kZU9iamVjdE9mQ2xhc3M6Z2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3Mo
KSBmb3JLZXk6d2ViRmlsdGVyRXZhbHVhdG9yS2V5XTsKICNlbmRpZgogICAgIHJldHVybiB0cnVl
OwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggMGUxOGZmZjgxODk5NmQzMWY0NGJjZDBjZTI1YmZjM2VmMDVkYjAwMi4uZTFhNzVjODdiM2Jj
NmJjZWUzMGMzODg1OGJhY2Q2MTRiNWQ3ODY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC0xNTAyLDcgKzE1MDIsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udAogICAgICAgICByZXR1
cm47CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICAvLyBD
YWxsZXJzIG9mIHRoaXMgd2lsbCBvZnRlbiBjYWxsIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3Jt
VGV4dHVyZSBmaXJzdCwKICAgICAvLyB3aGljaCBjYWxscyB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIs
IHdoaWNoIGNsZWFycyBtX2xhc3RJbWFnZSB3aGVuZXZlciB0aGUKQEAgLTE1MTgsNyArMTUxOCw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250CiAgICAgZWxzZQogICAgICAgICBwYWludFdpdGhJ
bWFnZUdlbmVyYXRvcihjb250ZXh0LCByZWN0KTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHNldERlbGF5Q2FsbGJh
Y2tzKGZhbHNlKTsKIAogICAgIG1fdmlkZW9GcmFtZUhhc0RyYXduID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5k
ZXggYTNjOWRlZjU2ZGRkMjg5YTk1OTViZjc4YTJkMWFkNjhmY2VjNzk2Zi4uZDczNTc3NWNjOGYw
NGI4YjAyMWIzNWM3MDE2OTViZDI0ZjZmOGRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTY0Myw5ICs2NDMsOSBA
QCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp3aWxsUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRgogICAgIGlmIChDRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDKiBzZXNzaW9uID0gbV9tZWRpYVNvdXJjZS0+cGxheWVyKCktPmNkbVNlc3Npb24oKSkK
ICAgICAgICAgc2Vzc2lvbi0+YWRkUGFyc2VyKG1fcGFyc2VyLmdldCgpKTsKICAgICBlbHNlIGlm
ICghQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmlzQXZhaWxhYmxlKCkpIHsKLSAgICAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgICAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKICAgICAgICAgW21fbWVkaWFTb3VyY2UtPnBsYXllcigpLT5zdHJlYW1TZXNz
aW9uKCkgYWRkU3RyZWFtRGF0YVBhcnNlcjptX3BhcnNlci5nZXQoKV07Ci0gICAgICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICB9CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0cmFja0lEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxv
Y2F0b3JNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2Nv
YS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRhbC5tbQppbmRleCBmOGM5NzU1N2I3ZTEyYmUxZmEw
ODk4YmIzZGEwN2IyNzdjNTdhNThhLi45ZWE0YjhkMWE1NDZlNTRkNzJhYjRmNjM1OGQ3OWVlZmFl
ZGQ1OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVQmluZEdyb3VwQWxsb2NhdG9yTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1t
CkBAIC04NSw5ICs4NSw5IEBAIE9wdGlvbmFsPEdQVUJpbmRHcm91cEFsbG9jYXRvcjo6QXJndW1l
bnRCdWZmZXJPZmZzZXRzPiBHUFVCaW5kR3JvdXBBbGxvY2F0b3I6OmFsCiAgICAgICAgIGlmICht
aW5pbXVtU2l6ZSA8IG5ld09mZnNldCkKICAgICAgICAgICAgIG1pbmltdW1TaXplID0gbmV3T2Zm
c2V0OwogCi0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIG1fYXJndW1lbnRCdWZmZXIgPSBhZG9w
dE5TKFtkZXZpY2UgbmV3QnVmZmVyV2l0aExlbmd0aDptaW5pbXVtU2l6ZSBvcHRpb25zOjBdKTsK
LSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogCiAgICAgICAgIGlmICghbV9hcmd1bWVudEJ1ZmZlcikgewogICAgICAg
ICAgICAgbV9lcnJvclNjb3Blcy0+Z2VuZXJhdGVFcnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6Ok91
dE9mTWVtb3J5KTsKQEAgLTk4LDcgKzk4LDcgQEAgT3B0aW9uYWw8R1BVQmluZEdyb3VwQWxsb2Nh
dG9yOjpBcmd1bWVudEJ1ZmZlck9mZnNldHM+IEdQVUJpbmRHcm91cEFsbG9jYXRvcjo6YWwKICAg
ICBBcmd1bWVudEJ1ZmZlck9mZnNldHMgb2Zmc2V0czsKIAogICAgIC8vIE1hdGggaW4gdGhlIGZv
bGxvd2luZyBzZWN0aW9uIGlzIGd1YXJkZWQgYWdhaW5zdCBvdmVyZmxvdyBieSBuZXdPZmZzZXQg
Y2FsY3VsYXRpb24uCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKHZlcnRleCkgewogICAgICAgICBvZmZz
ZXRzLnZlcnRleCA9IG1fbGFzdE9mZnNldDsKQEAgLTExMyw3ICsxMTMsNyBAQCBPcHRpb25hbDxH
UFVCaW5kR3JvdXBBbGxvY2F0b3I6OkFyZ3VtZW50QnVmZmVyT2Zmc2V0cz4gR1BVQmluZEdyb3Vw
QWxsb2NhdG9yOjphbAogICAgICAgICBbY29tcHV0ZSBzZXRBcmd1bWVudEJ1ZmZlcjptX2FyZ3Vt
ZW50QnVmZmVyLmdldCgpIG9mZnNldDoqb2Zmc2V0cy5jb21wdXRlXTsKICAgICB9CiAKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogICAgIG1fbGFzdE9mZnNldCA9IG5ld09mZnNldDsKICAgICArK21fbnVtQmluZEdyb3VwczsK
QEAgLTEzNiwxMiArMTM2LDEyIEBAIGJvb2wgR1BVQmluZEdyb3VwQWxsb2NhdG9yOjpyZWFsbG9j
YXRlKE5TVUludGVnZXIgbmV3T2Zmc2V0KQogICAgICAgICB9CiAgICAgfQogCi0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
CiAgICAgbmV3QnVmZmVyID0gW21fYXJndW1lbnRCdWZmZXIuZ2V0KCkuZGV2aWNlIG5ld0J1ZmZl
cldpdGhMZW5ndGg6bmV3TGVuZ3RoLnVuc2FmZUdldCgpIG9wdGlvbnM6MF07CiAgICAgbWVtY3B5
KG5ld0J1ZmZlci5jb250ZW50cywgbV9hcmd1bWVudEJ1ZmZlci5nZXQoKS5jb250ZW50cywgbV9h
cmd1bWVudEJ1ZmZlci5nZXQoKS5sZW5ndGgpOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBpZiAoIW5ld0J1ZmZl
cikgewogICAgICAgICBtX2Vycm9yU2NvcGVzLT5nZW5lcmF0ZUVycm9yKCIiLCBHUFVFcnJvckZp
bHRlcjo6T3V0T2ZNZW1vcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFs
Lm1tCmluZGV4IDgzZGRiNmJhNDdkNjY2YzVmODNiYWFkNzBmZmU0Zjg3ZjUzYjkzZmEuLmE5MGVj
ZGI0MjU5Yjk3NzNjM2QxNzNmZjc3MjcyOGIxZDRhNjZiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRh
bC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
QmluZEdyb3VwTGF5b3V0TWV0YWwubW0KQEAgLTU1LDIxICs1NSwyMSBAQCBzdGF0aWMgTVRMRGF0
YVR5cGUgTVRMRGF0YVR5cGVGb3JCaW5kaW5nVHlwZShHUFVCaW5kaW5nVHlwZSB0eXBlKQogdXNp
bmcgQXJndW1lbnRBcnJheSA9IFJldGFpblB0cjxOU011dGFibGVBcnJheTxNVExBcmd1bWVudERl
c2NyaXB0b3IgKj4+Owogc3RhdGljIHZvaWQgYXBwZW5kQXJndW1lbnRUb0FycmF5KEFyZ3VtZW50
QXJyYXkmIGFycmF5LCBSZXRhaW5QdHI8TVRMQXJndW1lbnREZXNjcmlwdG9yPiBhcmd1bWVudCkK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgaWYgKCFhcnJheSkKICAgICAgICAgYXJyYXkgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czphcmd1bWVudC5nZXQoKSwgbmls
XSk7CiAgICAgZWxzZQogICAgICAgICBbYXJyYXkgYWRkT2JqZWN0OmFyZ3VtZW50LmdldCgpXTsK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogc3RhdGljIFJldGFpblB0cjxNVExBcmd1bWVudEVuY29kZXI+IHRyeUNyZWF0
ZU10bEFyZ3VtZW50RW5jb2Rlcihjb25zdCBHUFVEZXZpY2UmIGRldmljZSwgQXJndW1lbnRBcnJh
eSBhcnJheSkKIHsKICAgICBSZXRhaW5QdHI8TVRMQXJndW1lbnRFbmNvZGVyPiBlbmNvZGVyOwog
Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogICAgIGVuY29kZXIgPSBhZG9wdE5TKFtkZXZpY2UucGxhdGZvcm1EZXZpY2Uo
KSBuZXdBcmd1bWVudEVuY29kZXJXaXRoQXJndW1lbnRzOmFycmF5LmdldCgpXSk7Ci0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAg
ICAgaWYgKCFlbmNvZGVyKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJHUFVCaW5kR3JvdXBMYXlv
dXQ6OnRyeUNyZWF0ZSgpOiBVbmFibGUgdG8gY3JlYXRlIE1UTEFyZ3VtZW50RW5jb2RlciEiKTsK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC04MCw5ICs4MCw5IEBAIHN0YXRpYyBSZXRhaW5Q
dHI8TVRMQXJndW1lbnRFbmNvZGVyPiB0cnlDcmVhdGVNdGxBcmd1bWVudEVuY29kZXIoY29uc3Qg
R1BVRGV2aWNlCiBzdGF0aWMgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVzY3JpcHRvcj4gYXJndW1l
bnREZXNjcmlwdG9yKE1UTERhdGFUeXBlIGRhdGFUeXBlLCBOU1VJbnRlZ2VyIGluZGV4KQogewog
ICAgIFJldGFpblB0cjxNVExBcmd1bWVudERlc2NyaXB0b3I+IG10bEFyZ3VtZW50OwotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICBtdGxBcmd1bWVudCA9IGFkb3B0TlMoW01UTEFyZ3VtZW50RGVzY3JpcHRvciBuZXdd
KTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIAogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxMzg0IFRoaXMgbmVlZHMgdG8gc2V0IHRoZSAidGV4dHVyZVR5cGUiIGZpZWxk
CiAgICAgW210bEFyZ3VtZW50IHNldERhdGFUeXBlOmRhdGFUeXBlXTsKQEAgLTE1OCwxMSArMTU4
LDExIEBAIFJlZlB0cjxHUFVCaW5kR3JvdXBMYXlvdXQ+IEdQVUJpbmRHcm91cExheW91dDo6dHJ5
Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW3ZlcnRleEFyZ3MgYWRkT2JqZWN0c0Zyb21BcnJh
eTp2ZXJ0ZXhMZW5ndGhzLmdldCgpXTsKICAgICBbZnJhZ21lbnRBcmdzIGFkZE9iamVjdHNGcm9t
QXJyYXk6ZnJhZ21lbnRMZW5ndGhzLmdldCgpXTsKICAgICBbY29tcHV0ZUFyZ3MgYWRkT2JqZWN0
c0Zyb21BcnJheTpjb21wdXRlTGVuZ3Rocy5nZXQoKV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBSZXRhaW5QdHI8
TVRMQXJndW1lbnRFbmNvZGVyPiB2ZXJ0ZXgsIGZyYWdtZW50LCBjb21wdXRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdy
b3VwTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVQmluZEdyb3VwTWV0YWwubW0KaW5kZXggN2ZjMzZjYWFlY2U1YzZiYjhmNThlYjFmZTc5N2Nj
ZmUxMDQxODkwMy4uZDViNDdkMjFhNTQyNTg2MTZlYTFiNTE1OTllNGViY2JiMThlOTJmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJp
bmRHcm91cE1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQpAQCAtNzEsMTIgKzcxLDEyIEBAIHN0YXRpYyB2
b2lkIHNldEJ1ZmZlck9uRW5jb2RlcihNVExBcmd1bWVudEVuY29kZXIgKmFyZ3VtZW50RW5jb2Rl
ciwgY29uc3QgR1BVQnVmCiB7CiAgICAgQVNTRVJUKGFyZ3VtZW50RW5jb2RlciAmJiBidWZmZXJC
aW5kaW5nLmJ1ZmZlci0+cGxhdGZvcm1CdWZmZXIoKSk7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgLy8gQm91
bmRzIGNoZWNrIHdoZW4gY29udmVydGluZyBHUFVCdWZmZXJCaW5kaW5nIGVuc3VyZXMgdGhhdCBO
U1VJbnRlZ2VyIGNhc3Qgb2YgdWludDY0X3Qgb2Zmc2V0IGlzIHNhZmUuCiAgICAgW2FyZ3VtZW50
RW5jb2RlciBzZXRCdWZmZXI6YnVmZmVyQmluZGluZy5idWZmZXItPnBsYXRmb3JtQnVmZmVyKCkg
b2Zmc2V0OnN0YXRpY19jYXN0PE5TVUludGVnZXI+KGJ1ZmZlckJpbmRpbmcub2Zmc2V0KSBhdElu
ZGV4Om5hbWVdOwogICAgIHZvaWQqIGxlbmd0aFBvaW50ZXIgPSBbYXJndW1lbnRFbmNvZGVyIGNv
bnN0YW50RGF0YUF0SW5kZXg6bGVuZ3RoTmFtZV07CiAgICAgbWVtY3B5KGxlbmd0aFBvaW50ZXIs
ICZidWZmZXJCaW5kaW5nLnNpemUsIHNpemVvZih1aW50NjRfdCkpOwotICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogICAgIAog
c3RhdGljIE1UTFNhbXBsZXJTdGF0ZSAqdHJ5R2V0UmVzb3VyY2VBc010bFNhbXBsZXIoY29uc3Qg
R1BVQmluZGluZ1Jlc291cmNlJiByZXNvdXJjZSwgY29uc3QgY2hhciogY29uc3QgZnVuY3Rpb25O
YW1lKQpAQCAtMTAwLDkgKzEwMCw5IEBAIHN0YXRpYyB2b2lkIHNldFNhbXBsZXJPbkVuY29kZXIo
TVRMQXJndW1lbnRFbmNvZGVyICphcmd1bWVudEVuY29kZXIsIE1UTFNhbXBsZXJTCiB7CiAgICAg
QVNTRVJUKGFyZ3VtZW50RW5jb2RlciAmJiBzYW1wbGVyKTsKIAotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbYXJn
dW1lbnRFbmNvZGVyIHNldFNhbXBsZXJTdGF0ZTpzYW1wbGVyIGF0SW5kZXg6aW5kZXhdOwotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogfQogCiBzdGF0aWMgUmVmUHRyPEdQVVRleHR1cmU+IHRyeUdldFJlc291cmNlQXNUZXh0dXJl
KGNvbnN0IEdQVUJpbmRpbmdSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGNvbnN0IGZ1
bmN0aW9uTmFtZSkKQEAgLTEyNiw5ICsxMjYsOSBAQCBzdGF0aWMgdm9pZCBzZXRUZXh0dXJlT25F
bmNvZGVyKE1UTEFyZ3VtZW50RW5jb2RlciAqYXJndW1lbnRFbmNvZGVyLCBNVExUZXh0dXJlCiB7
CiAgICAgQVNTRVJUKGFyZ3VtZW50RW5jb2RlciAmJiB0ZXh0dXJlKTsKIAotICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICBbYXJndW1lbnRFbmNvZGVyIHNldFRleHR1cmU6dGV4dHVyZSBhdEluZGV4OmluZGV4XTsKLSAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIH0KIAogUmVmUHRyPEdQVUJpbmRHcm91cD4gR1BVQmluZEdyb3VwOjp0cnlDcmVhdGUoY29u
c3QgR1BVQmluZEdyb3VwRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgR1BVQmluZEdyb3VwQWxsb2Nh
dG9yJiBhbGxvY2F0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQnVmZmVyTWV0YWwubW0KaW5kZXggYjFjMzRlZjg4YjE4
N2E3MGU3MTBkYWNiZDY3MjkyODYzMmJiZjc0NC4uNDA2OGRhMTc0NTM4MzUyOGYzYzdkMWZkYzI5
YTBkZTNiOGQ2NzEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L2NvY29hL0dQVUJ1ZmZlck1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCdWZmZXJNZXRhbC5tbQpAQCAtODksMTEgKzg5LDEx
IEBAIFJlZlB0cjxHUFVCdWZmZXI+IEdQVUJ1ZmZlcjo6dHJ5Q3JlYXRlKEdQVURldmljZSYgZGV2
aWNlLCBjb25zdCBHUFVCdWZmZXJEZXNjcmlwCiAKICAgICBSZXRhaW5QdHI8TVRMQnVmZmVyPiBt
dGxCdWZmZXI7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBtdGxCdWZmZXIgPSBhZG9wdE5TKFtkZXZpY2Uu
cGxhdGZvcm1EZXZpY2UoKSBuZXdCdWZmZXJXaXRoTGVuZ3RoOnN0YXRpY19jYXN0PE5TVUludGVn
ZXI+KGRlc2NyaXB0b3Iuc2l6ZSkgb3B0aW9uczpyZXNvdXJjZU9wdGlvbnNdKTsKIAotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
CiAgICAgaWYgKCFtdGxCdWZmZXIpIHsKICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVFcnJv
cigiIiwgR1BVRXJyb3JGaWx0ZXI6Ok91dE9mTWVtb3J5KTsKQEAgLTE0NywxNCArMTQ3LDE0IEBA
IHZvaWQgR1BVQnVmZmVyOjpjb21tYW5kQnVmZmVyQ29tbWl0dGVkKE1UTENvbW1hbmRCdWZmZXIg
KmNvbW1hbmRCdWZmZXIpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICArK21fbnVt
U2NoZWR1bGVkQ29tbWFuZEJ1ZmZlcnM7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgLy8gTWFrZSBzdXJlIHx0
aGlzfCBvbmx5IGdldHMgcmVmJ2QgLyBkZXJlZidkIG9uIHRoZSBtYWluIHRocmVhZCBzaW5jZSBp
dCBpcyBub3QgVGhyZWFkU2FmZVJlZkNvdW50ZWQuCiAgICAgW2NvbW1hbmRCdWZmZXIgYWRkQ29t
cGxldGVkSGFuZGxlcjptYWtlQmxvY2tQdHIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oaWQ8TVRMQ29tbWFuZEJ1ZmZlcj4pIG11dGFibGUgewogICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0g
ewogICAgICAgICAgICAgY29tbWFuZEJ1ZmZlckNvbXBsZXRlZCgpOwogICAgICAgICB9KTsKICAg
ICB9KS5nZXQoKV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgR1BVQnVmZmVyOjpjb21tYW5kQnVmZmVyQ29t
cGxldGVkKCkKQEAgLTIyNiwxNyArMjI2LDE3IEBAIHZvaWQgR1BVQnVmZmVyOjpjb3B5U3RhZ2lu
Z0J1ZmZlclRvR1BVKEdQVUVycm9yU2NvcGVzKiBlcnJvclNjb3BlcykKIAogICAgIFJldGFpblB0
cjxNVExCdWZmZXI+IHN0YWdpbmdNdGxCdWZmZXI7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgLy8gR1BVQnVm
ZmVyIGNyZWF0aW9uIHZhbGlkYXRpb24gZW5zdXJlcyBtX2J5dGVTaXplIGZpdHMgaW4gTlNVSW50
ZWdlci4KICAgICBzdGFnaW5nTXRsQnVmZmVyID0gYWRvcHROUyhbbV9kZXZpY2UtPnBsYXRmb3Jt
RGV2aWNlKCkgbmV3QnVmZmVyV2l0aEJ5dGVzOm1fc3RhZ2luZ0J1ZmZlci0+ZGF0YSgpIGxlbmd0
aDpzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPihtX2J5dGVMZW5ndGgpIG9wdGlvbnM6TVRMUmVzb3Vy
Y2VDUFVDYWNoZU1vZGVEZWZhdWx0Q2FjaGVdKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghc3RhZ2luZ010
bEJ1ZmZlciAmJiBlcnJvclNjb3BlcykgewogICAgICAgICBlcnJvclNjb3Blcy0+Z2VuZXJhdGVF
cnJvcigiIiwgR1BVRXJyb3JGaWx0ZXI6Ok91dE9mTWVtb3J5KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGF1dG8gY29tbWFuZEJ1ZmZlciA9IHJldGFpblB0cihb
cXVldWUgY29tbWFuZEJ1ZmZlcl0pOwogICAgIGF1dG8gYmxpdEVuY29kZXIgPSByZXRhaW5QdHIo
W2NvbW1hbmRCdWZmZXIgYmxpdENvbW1hbmRFbmNvZGVyXSk7CkBAIC0yNDUsNyArMjQ1LDcgQEAg
dm9pZCBHUFVCdWZmZXI6OmNvcHlTdGFnaW5nQnVmZmVyVG9HUFUoR1BVRXJyb3JTY29wZXMqIGVy
cm9yU2NvcGVzKQogICAgIFtibGl0RW5jb2RlciBlbmRFbmNvZGluZ107CiAgICAgW2NvbW1hbmRC
dWZmZXIgY29tbWl0XTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIEdQVUJ1ZmZlcjo6dW5tYXAoR1BVRXJy
b3JTY29wZXMqIGVycm9yU2NvcGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21tYW5kQnVmZmVyTWV0YWwu
bW0KaW5kZXggMDdmY2NiZWUzNzVkZmQ4MTkyNDUyN2NlZDg1ZTkwODdiMzVmY2I4OC4uMzQyZWZk
ZDBiZGQwMzYxMzhmZTkzZWI2ODljYTlmYjdkMDIzZWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbW1hbmRCdWZmZXJNZXRhbC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29t
bWFuZEJ1ZmZlck1ldGFsLm1tCkBAIC01NCwxMSArNTQsMTEgQEAgUmVmUHRyPEdQVUNvbW1hbmRC
dWZmZXI+IEdQVUNvbW1hbmRCdWZmZXI6OnRyeUNyZWF0ZShjb25zdCBHUFVEZXZpY2UmIGRldmlj
ZSkKIAogICAgIFJldGFpblB0cjxNVExDb21tYW5kQnVmZmVyPiBidWZmZXI7CiAKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAKICAgICBidWZmZXIgPSBbbXRsUXVldWUgY29tbWFuZEJ1ZmZlcl07CiAKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAg
IGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPRyhXZWJHUFUsICJHUFVDb21tYW5kQnVmZmVyOjpj
cmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0ZSBNVExDb21tYW5kQnVmZmVyISIpOwpAQCAtODcsOSAr
ODcsOSBAQCB2b2lkIEdQVUNvbW1hbmRCdWZmZXI6OmVuZEJsaXRFbmNvZGluZygpCiB7CiAgICAg
aWYgKCFtX2JsaXRFbmNvZGVyKQogICAgICAgICByZXR1cm47Ci0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2Js
aXRFbmNvZGVyIGVuZEVuY29kaW5nXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtX2JsaXRFbmNvZGVyID0gbnVsbHB0
cjsKIH0KIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weUJ1
ZmZlclRvQnVmZmVyKFJlZjxHUFVCdWZmZXI+JiYgc3JjLCB1aW50NjRfdCBzcmNPZmZzCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICAvLyBUaGVzZSBjYXN0cyBhcmUg
c2FmZSBkdWUgdG8gZWFybGllciBjaGVja2VkU3VtKCkgY2hlY2tzLgogICAgIFtibGl0RW5jb2Rl
cigpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVy
VG9CdWZmZXIoUmVmPEdQVUJ1ZmZlcj4mJiBzcmMsIHVpbnQ2NF90IHNyY09mZnMKICAgICAgICAg
ZGVzdGluYXRpb25PZmZzZXQ6c3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4oZHN0T2Zmc2V0KQogICAg
ICAgICBzaXplOnN0YXRpY19jYXN0PE5TVUludGVnZXI+KHNpemUpXTsKIAotICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAg
dXNlQnVmZmVyKFdURk1vdmUoc3JjKSk7CiAgICAgdXNlQnVmZmVyKFdURk1vdmUoZHN0KSk7CkBA
IC0xNTgsNyArMTU4LDcgQEAgdm9pZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9UZXh0
dXJlKEdQVUJ1ZmZlckNvcHlWaWV3JiYgc3JjQnVmZmVyLCBHUFVUZXgKIAogICAgIC8vIEdQVVRl
eHR1cmVDb3B5Vmlldzo6dGV4dHVyZTogVGhlIHZhbHVlIG11c3Qgbm90IGJlIGEgZnJhbWVidWZm
ZXJPbmx5IHRleHR1cmUgYW5kIG11c3Qgbm90IGhhdmUgYSBQVlJUQyBwaXhlbCBmb3JtYXQuCiAK
LSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAKICAgICBbYmxpdEVuY29kZXIoKQogICAgICAgICBjb3B5RnJvbUJ1ZmZlcjpz
cmNCdWZmZXIuYnVmZmVyLT5wbGF0Zm9ybUJ1ZmZlcigpCkBAIC0xNzEsNyArMTcxLDcgQEAgdm9p
ZCBHUFVDb21tYW5kQnVmZmVyOjpjb3B5QnVmZmVyVG9UZXh0dXJlKEdQVUJ1ZmZlckNvcHlWaWV3
JiYgc3JjQnVmZmVyLCBHUFVUZXgKICAgICAgICAgZGVzdGluYXRpb25MZXZlbDpkc3RUZXh0dXJl
Lm1pcExldmVsCiAgICAgICAgIGRlc3RpbmF0aW9uT3JpZ2luOk1UTE9yaWdpbk1ha2UoZHN0VGV4
dHVyZS5vcmlnaW4ueCwgZHN0VGV4dHVyZS5vcmlnaW4ueSwgZHN0VGV4dHVyZS5vcmlnaW4ueild
OwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAKICAgICB1c2VCdWZmZXIoV1RGTW92ZShzcmNCdWZmZXIuYnVmZmVyKSk7CiAg
ICAgdXNlVGV4dHVyZShXVEZNb3ZlKGRzdFRleHR1cmUudGV4dHVyZSkpOwpAQCAtMTkyLDcgKzE5
Miw3IEBAIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZlcihHUFVUZXh0
dXJlQ29weVZpZXcmJiBzcmNUZXh0dXJlLCBHUFVCCiAKICAgICAvLyBGSVhNRTogQWRkIE1ldGFs
IHZhbGlkYXRpb24/CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBbYmxpdEVuY29kZXIoKQogICAgICAgICBj
b3B5RnJvbVRleHR1cmU6c3JjVGV4dHVyZS50ZXh0dXJlLT5wbGF0Zm9ybVRleHR1cmUoKQpAQCAt
MjA1LDcgKzIwNSw3IEBAIHZvaWQgR1BVQ29tbWFuZEJ1ZmZlcjo6Y29weVRleHR1cmVUb0J1ZmZl
cihHUFVUZXh0dXJlQ29weVZpZXcmJiBzcmNUZXh0dXJlLCBHUFVCCiAgICAgICAgIGRlc3RpbmF0
aW9uQnl0ZXNQZXJSb3c6ZHN0QnVmZmVyLnJvd1BpdGNoCiAgICAgICAgIGRlc3RpbmF0aW9uQnl0
ZXNQZXJJbWFnZTpkc3RCdWZmZXIuaW1hZ2VIZWlnaHRdOwogCi0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICB1c2VUZXh0
dXJlKFdURk1vdmUoc3JjVGV4dHVyZS50ZXh0dXJlKSk7CiAgICAgdXNlQnVmZmVyKFdURk1vdmUo
ZHN0QnVmZmVyLmJ1ZmZlcikpOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgR1BVQ29tbWFuZEJ1
ZmZlcjo6Y29weVRleHR1cmVUb1RleHR1cmUoR1BVVGV4dHVyZUNvcHlWaWV3JiYgc3JjLCBHUFVU
ZXh0dXJlCiAKICAgICAvLyBGSVhNRTogQWRkIE1ldGFsIHZhbGlkYXRpb24/CiAKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAKICAgICBbYmxpdEVuY29kZXIoKQogICAgICAgICBjb3B5RnJvbVRleHR1cmU6c3JjLnRleHR1
cmUtPnBsYXRmb3JtVGV4dHVyZSgpCkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBHUFVDb21tYW5k
QnVmZmVyOjpjb3B5VGV4dHVyZVRvVGV4dHVyZShHUFVUZXh0dXJlQ29weVZpZXcmJiBzcmMsIEdQ
VVRleHR1cmUKICAgICAgICAgZGVzdGluYXRpb25MZXZlbDpkc3QubWlwTGV2ZWwKICAgICAgICAg
ZGVzdGluYXRpb25PcmlnaW46TVRMT3JpZ2luTWFrZShkc3Qub3JpZ2luLngsIGRzdC5vcmlnaW4u
eSwgZHN0Lm9yaWdpbi56KV07CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHVzZVRleHR1cmUoV1RGTW92ZShzcmMu
dGV4dHVyZSkpOwogICAgIHVzZVRleHR1cmUoV1RGTW92ZShkc3QudGV4dHVyZSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1
dGVQYXNzRW5jb2Rlck1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVUNvbXB1dGVQYXNzRW5jb2Rlck1ldGFsLm1tCmluZGV4IDA3YTlhM2ZmNjJi
MmMxZjMyY2FhODE2OWUxOWI1ZDNjNzYyNjhjNzcuLmFiYzYwZTQ1M2U3ZmMyZjVlNGI5NjI2NWEx
ZWM3M2Y5ZWQ5YTJhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBhc3NFbmNvZGVy
TWV0YWwubW0KQEAgLTQ2LDkgKzQ2LDkgQEAgUmVmUHRyPEdQVUNvbXB1dGVQYXNzRW5jb2Rlcj4g
R1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjp0cnlDcmVhdGUoUmVmPEdQVUNvbW1hbmRCdWYKIAogICAg
IFJldGFpblB0cjxNVExDb21wdXRlQ29tbWFuZEVuY29kZXI+IG10bEVuY29kZXI7CiAKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgbXRsRW5jb2RlciA9IFtidWZmZXItPnBsYXRmb3JtQ29tbWFuZEJ1ZmZlcigpIGNv
bXB1dGVDb21tYW5kRW5jb2Rlcl07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBpZiAoIW10bEVuY29kZXIpIHsKICAg
ICAgICAgTE9HKFdlYkdQVSwgIkdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKCk6IFVu
YWJsZSB0byBjcmVhdGUgTVRMQ29tcHV0ZUNvbW1hbmRFbmNvZGVyISIpOwpAQCAtNzMsOSArNzMs
OSBAQCB2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6c2V0UGlwZWxpbmUoUmVmPGNvbnN0IEdQ
VUNvbXB1dGVQaXBlbGluZT4mJiBwaXBlbGluZQogCiAgICAgQVNTRVJUKHBpcGVsaW5lLT5wbGF0
Zm9ybUNvbXB1dGVQaXBlbGluZSgpKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9wbGF0Zm9ybUNvbXB1
dGVQYXNzRW5jb2RlciBzZXRDb21wdXRlUGlwZWxpbmVTdGF0ZTpwaXBlbGluZS0+cGxhdGZvcm1D
b21wdXRlUGlwZWxpbmUoKV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBtX3BpcGVsaW5lID0gV1RGTW92ZShwaXBl
bGluZSk7CiB9CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVyOjpk
aXNwYXRjaCh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25lZCB6KQogCiAgICAgQVNTRVJU
KG1fcGlwZWxpbmUtPnBsYXRmb3JtQ29tcHV0ZVBpcGVsaW5lKCkpOwogCi0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAg
ICAgYXV0byB0aHJlYWRzUGVyVGhyZWFkZ3JvdXAgPSBNVExTaXplTWFrZShtX3BpcGVsaW5lLT5j
b21wdXRlRGltZW5zaW9ucygpLndpZHRoLCBtX3BpcGVsaW5lLT5jb21wdXRlRGltZW5zaW9ucygp
LmhlaWdodCwgbV9waXBlbGluZS0+Y29tcHV0ZURpbWVuc2lvbnMoKS5kZXB0aCk7CiAKQEAgLTEw
Miw3ICsxMDIsNyBAQCB2b2lkIEdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6ZGlzcGF0Y2godW5zaWdu
ZWQgeCwgdW5zaWduZWQgeSwgdW5zaWduZWQgeikKIAogICAgIFttX3BsYXRmb3JtQ29tcHV0ZVBh
c3NFbmNvZGVyIGRpc3BhdGNoVGhyZWFkZ3JvdXBzOnRocmVhZGdyb3Vwc1BlckdyaWQgdGhyZWFk
c1BlclRocmVhZGdyb3VwOnRocmVhZHNQZXJUaHJlYWRncm91cF07CiAKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogY29u
c3QgTVRMQ29tbWFuZEVuY29kZXIgKkdQVUNvbXB1dGVQYXNzRW5jb2Rlcjo6cGxhdGZvcm1QYXNz
RW5jb2RlcigpIGNvbnN0CkBAIC0xMTYsMTggKzExNiwxOCBAQCB2b2lkIEdQVUNvbXB1dGVQYXNz
RW5jb2Rlcjo6dXNlUmVzb3VyY2UoY29uc3QgTVRMUmVzb3VyY2UgKnJlc291cmNlLCB1bnNpZ25l
ZCB1cwogewogICAgIEFTU0VSVChtX3BsYXRmb3JtQ29tcHV0ZVBhc3NFbmNvZGVyKTsKIAotICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICBbbV9wbGF0Zm9ybUNvbXB1dGVQYXNzRW5jb2RlciB1c2VSZXNvdXJjZTpyZXNv
dXJjZSB1c2FnZTp1c2FnZV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgR1BVQ29tcHV0ZVBhc3NFbmNvZGVy
OjpzZXRDb21wdXRlQnVmZmVyKGNvbnN0IE1UTEJ1ZmZlciAqYnVmZmVyLCBOU1VJbnRlZ2VyIG9m
ZnNldCwgdW5zaWduZWQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKG1fcGxhdGZvcm1Db21wdXRlUGFz
c0VuY29kZXIpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX3BsYXRmb3JtQ29tcHV0ZVBhc3NFbmNvZGVy
IHNldEJ1ZmZlcjpidWZmZXIgb2Zmc2V0Om9mZnNldCBhdEluZGV4OmluZGV4XTsKLSAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQ29tcHV0ZVBpcGVsaW5lTWV0YWwubW0KaW5kZXgg
YzIwMDBhMWU5NjEzMGZhNDNjNDU3YmExZmI1MWU5ZmM4NTdjNzgyYy4uNDA3ZWU0YWEzMDY3YmYx
MmE5YTBiMjkxN2VmNDQzMmVkMDYxYmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUNvbXB1dGVQaXBlbGluZU1ldGFsLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVDb21wdXRlUGlw
ZWxpbmVNZXRhbC5tbQpAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0
YXRpYyBib29sIHRyeVNldE1ldGFsRnVuY3Rpb25zKE1UTExpYnJhcnkgKmNvbXB1dGVNZXRhbExp
YnJhcnksIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IgKm10bERlc2NyaXB0b3IsIGNvbnN0
IFN0cmluZyYgY29tcHV0ZUVudHJ5UG9pbnROYW1lLCBHUFVFcnJvclNjb3BlcyYgZXJyb3JTY29w
ZXMpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFjb21wdXRlTWV0YWxMaWJyYXJ5KSB7CiAgICAg
ICAgIGVycm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcigiTVRMTGlicmFyeSBmb3IgY29t
cHV0ZSBzdGFnZSBkb2VzIG5vdCBleGlzdCEiKTsKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIGJv
b2wgdHJ5U2V0TWV0YWxGdW5jdGlvbnMoTVRMTGlicmFyeSAqY29tcHV0ZU1ldGFsTGlicmFyeSwg
TVRMQ29tcHV0ZVBpcGUKIAogICAgIFttdGxEZXNjcmlwdG9yIHNldENvbXB1dGVGdW5jdGlvbjpm
dW5jdGlvbi5nZXQoKV07CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtODYsNyAr
ODYsNyBAQCBzdGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlTZXRG
dW5jdGlvbnMoY29uc3QgR1BVUHJvZ3JhbW1hYmxlUwogCiAgICAgICAgIE5TRXJyb3IgKmVycm9y
ID0gbmlsOwogCi0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgIE1vbm90b25pY1RpbWUgc3RhcnRU
aW1lOwogICAgICAgICBpZiAoV0hMU0w6OmR1bXBNZXRhbENvbXBpbGVUaW1lcykKICAgICAgICAg
ICAgIHN0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwpAQCAtOTQsNyArOTQsNyBAQCBz
dGF0aWMgT3B0aW9uYWw8V0hMU0w6OkNvbXB1dGVEaW1lbnNpb25zPiB0cnlTZXRGdW5jdGlvbnMo
Y29uc3QgR1BVUHJvZ3JhbW1hYmxlUwogICAgICAgICBjb21wdXRlTGlicmFyeSA9IGFkb3B0TlMo
W2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0xpYnJhcnlXaXRoU291cmNlOndobHNsQ29tcGls
ZVJlc3VsdC0+bWV0YWxTb3VyY2UudG9TdHJpbmcoKSBvcHRpb25zOm5pbCBlcnJvcjomZXJyb3Jd
KTsKICAgICAgICAgaWYgKFdITFNMOjpkdW1wTWV0YWxDb21waWxlVGltZXMpCiAgICAgICAgICAg
ICBkYXRhTG9nTG4oIk1ldGFsIGNvbXBpbGUgdGltZXM6ICIsIChNb25vdG9uaWNUaW1lOjpub3co
KSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksICIgbXMiKTsKLSAgICAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogI2lm
bmRlZiBOREVCVUcKICAgICAgICAgaWYgKCFjb21wdXRlTGlicmFyeSkKICAgICAgICAgICAgIE5T
TG9nKEAiJUAiLCBlcnJvcik7CkBAIC0xMjMsOSArMTIzLDkgQEAgc3RhdGljIE9wdGlvbmFsPENv
bnZlcnRSZXN1bHQ+IGNvbnZlcnRDb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKGNvbnN0IEdQVUNv
bXB1dGUKIHsKICAgICBSZXRhaW5QdHI8TVRMQ29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcj4gbXRs
RGVzY3JpcHRvcjsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtdGxEZXNjcmlwdG9yID0gYWRvcHROUyhbTVRM
Q29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciBuZXddKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghbXRsRGVz
Y3JpcHRvcikgewogICAgICAgICBlcnJvclNjb3Blcy5nZW5lcmF0ZVByZWZpeGVkRXJyb3IoIkVy
cm9yIGNyZWF0aW5nIE1UTENvbXB1dGVQaXBlbGluZURlc2NyaXB0b3IhIik7CkBAIC0xNzUsNyAr
MTc1LDcgQEAgc3RhdGljIE9wdGlvbmFsPENyZWF0ZVJlc3VsdD4gdHJ5Q3JlYXRlTVRMQ29tcHV0
ZVBpcGVsaW5lU3RhdGUoY29uc3QgR1BVRGV2aWNlJgogCiAgICAgUmV0YWluUHRyPE1UTENvbXB1
dGVQaXBlbGluZVN0YXRlPiBwaXBlbGluZTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIE5TRXJyb3IgKmVy
cm9yID0gbmlsOwogICAgIHBpcGVsaW5lID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNl
KCkgbmV3Q29tcHV0ZVBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlwdG9yLmdl
dCgpIG9wdGlvbnM6TVRMUGlwZWxpbmVPcHRpb25Ob25lIHJlZmxlY3Rpb246bmlsIGVycm9yOiZl
cnJvcl0pOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBPcHRpb25hbDxDcmVhdGVSZXN1bHQ+
IHRyeUNyZWF0ZU1UTENvbXB1dGVQaXBlbGluZVN0YXRlKGNvbnN0IEdQVURldmljZSYKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiB7eyBw
aXBlbGluZSwgY29udmVydFJlc3VsdC0+Y29tcHV0ZURpbWVuc2lvbnMgfX07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVRGV2aWNl
TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BV
RGV2aWNlTWV0YWwubW0KaW5kZXggNGQwY2E2NWViMDE2MmIwNWE5YWI3ZDM3N2Y0YTI5NTI1MWFi
MzU4Zi4uYjkzMjhhNGMyYWE1Mjc2ZWJjMjI2OGM4OTkzYzc2NzRmOWI2NWQ0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVURldmljZU1l
dGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVEZXZpY2VNZXRhbC5tbQpAQCAtNDYsNyArNDYsNyBAQCBSZWZQdHI8R1BVRGV2aWNlPiBHUFVE
ZXZpY2U6OnRyeUNyZWF0ZShjb25zdCBPcHRpb25hbDxHUFVSZXF1ZXN0QWRhcHRlck9wdGlvbnM+
JgogewogICAgIFJldGFpblB0cjxNVExEZXZpY2U+IGRldmljZVB0cjsKIAotICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAg
ICAKICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFvcHRpb25zIHx8ICFvcHRpb25zLT5wb3dl
clByZWZlcmVuY2UgfHwgb3B0aW9ucy0+cG93ZXJQcmVmZXJlbmNlID09IEdQVVBvd2VyUHJlZmVy
ZW5jZTo6TG93UG93ZXIpIHsKQEAgLTcwLDcgKzcwLDcgQEAgUmVmUHRyPEdQVURldmljZT4gR1BV
RGV2aWNlOjp0cnlDcmVhdGUoY29uc3QgT3B0aW9uYWw8R1BVUmVxdWVzdEFkYXB0ZXJPcHRpb25z
PiYKICAgICBpZiAoIWlzQWNjZXB0YWJsZURldmljZShkZXZpY2VQdHIuZ2V0KCkpKQogICAgICAg
ICBkZXZpY2VQdHIuY2xlYXIoKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFkZXZpY2VQdHIpIHsKICAg
ICAgICAgTE9HKFdlYkdQVSwgIkdQVURldmljZTo6R1BVRGV2aWNlKCk6IFVuYWJsZSB0byBjcmVh
dGUgR1BVRGV2aWNlISIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L2NvY29hL0dQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyTWV0YWwubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFz
c0VuY29kZXJNZXRhbC5tbQppbmRleCA3MWI2NDVmMjBmZmI4OTNjNWYwNjVhNTVkNWYyYzVmMWYw
OGE4OTk5Li4zY2I3OWRiODNiYTFlYjZlMGNiZGNiZTlkMGJhOWM5MDI0OWQ3OTg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3Jh
bW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVUHJvZ3JhbW1hYmxlUGFzc0VuY29kZXJNZXRhbC5tbQpAQCAt
NDAsOSArNDAsOSBAQCB2b2lkIEdQVVByb2dyYW1tYWJsZVBhc3NFbmNvZGVyOjplbmRQYXNzKCkK
ICAgICBpZiAoIXBsYXRmb3JtUGFzc0VuY29kZXIoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogICAgIFtwbGF0Zm9ybVBhc3NFbmNvZGVyKCkgZW5kRW5jb2RpbmddOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAg
ICAgaW52YWxpZGF0ZUVuY29kZXIoKTsKICAgICBtX2NvbW1hbmRCdWZmZXItPnNldElzRW5jb2Rp
bmdQYXNzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVRdWV1ZU1ldGFsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KaW5kZXggMTc0ZDg2NGRlNDA3ODA1
MTVmMmM5NzAyODI1NTUxYWUyY2Y0ZmMyMi4uY2IzMDI4YTA5NGJlOTE5MjE2ZTkyZTc3OTBiNTU2
NzFmNGFhMjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L2NvY29hL0dQVVF1ZXVlTWV0YWwubW0KQEAgLTUwLDEyICs1MCwxMiBAQCBS
ZWZQdHI8R1BVUXVldWU+IEdQVVF1ZXVlOjp0cnlDcmVhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZp
Y2UpCiAKICAgICBSZXRhaW5QdHI8TVRMQ29tbWFuZFF1ZXVlPiBxdWV1ZTsKIAotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogICAgIHF1ZXVlID0gYWRvcHROUyhbZGV2aWNlLnBsYXRmb3JtRGV2aWNlKCkgbmV3Q29tbWFu
ZFF1ZXVlXSk7CiAgICAgW3F1ZXVlIHNldExhYmVsOmNvbW1hbmRRdWV1ZURlZmF1bHRMYWJlbF07
CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIAogICAgIGlmICghcXVldWUpIHsKICAgICAgICAgTE9HKFdlYkdQVSwgIkdQVVF1
ZXVlOjp0cnlDcmVhdGUoKTogVW5hYmxlIHRvIGNyZWF0ZSBNVExDb21tYW5kUXVldWUhIik7CkBA
IC05MSw5ICs5MSw5IEBAIHZvaWQgR1BVUXVldWU6OnN1Ym1pdChWZWN0b3I8UmVmPEdQVUNvbW1h
bmRCdWZmZXI+PiYmIGNvbW1hbmRCdWZmZXJzKQogICAgICAgICAvLyBPa2F5IHRvIGNvbW1pdDsg
cHJldmVudCBhbnkgYnVmZmVyIG1hcHBpbmcgY2FsbGJhY2tzIGZyb20gZXhlY3V0aW5nIHVudGls
IGNvbW1hbmQgYnVmZmVyIGlzIGNvbXBsZXRlLgogICAgICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6
IGNvbW1hbmRCdWZmZXItPnVzZWRCdWZmZXJzKCkpCiAgICAgICAgICAgICBidWZmZXItPmNvbW1h
bmRCdWZmZXJDb21taXR0ZWQoY29tbWFuZEJ1ZmZlci0+cGxhdGZvcm1Db21tYW5kQnVmZmVyKCkp
OwotICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICBbY29tbWFuZEJ1ZmZlci0+cGxhdGZvcm1Db21t
YW5kQnVmZmVyKCkgY29tbWl0XTsKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIH0KIAogICAgIGlmIChtX3By
ZXNlbnRUYXNrLmhhc1BlbmRpbmdUYXNrKCkgfHwgIW1fZGV2aWNlIHx8ICFtX2RldmljZS0+c3dh
cENoYWluKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvY29jb2EvR1BVUmVuZGVyUGFzc0VuY29kZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1tCmlu
ZGV4IDg5MzhkODNlN2UxMDE0MjVjZjg4YjZkZDI5NWQwMjc4OWZlZjRmM2EuLmFjNjg4ZGFlYTNl
ZmQ5YjMwMDUzNGQ1YWViNjJhOGFjNDIwYTBjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQYXNzRW5jb2Rlck1ldGFsLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5k
ZXJQYXNzRW5jb2Rlck1ldGFsLm1tCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBib29sIHBvcHVs
YXRlTXRsQ29sb3JBdHRhY2htZW50c0FycmF5KE1UTFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnRE
ZXNjcmlwCiAgICAgICAgIH0KICAgICAgICAgY29uc3QgYXV0byYgY29sb3IgPSBkZXNjcmlwdG9y
LmNsZWFyQ29sb3I7CiAKLSAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgICAgICBhdXRvIG10bEF0dGFj
aG1lbnQgPSByZXRhaW5QdHIoW2FycmF5IG9iamVjdEF0SW5kZXhlZFN1YnNjcmlwdDppXSk7CiAg
ICAgICAgIFttdGxBdHRhY2htZW50IHNldFRleHR1cmU6ZGVzY3JpcHRvci5hdHRhY2htZW50LT5w
bGF0Zm9ybVRleHR1cmUoKV07CkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBib29sIHBvcHVsYXRl
TXRsQ29sb3JBdHRhY2htZW50c0FycmF5KE1UTFJlbmRlclBhc3NDb2xvckF0dGFjaG1lbnREZXNj
cmlwCiAgICAgICAgIFttdGxBdHRhY2htZW50IHNldExvYWRBY3Rpb246bG9hZEFjdGlvbkZvckdQ
VUxvYWRPcChkZXNjcmlwdG9yLmxvYWRPcCldOwogICAgICAgICBbbXRsQXR0YWNobWVudCBzZXRT
dG9yZUFjdGlvbjpzdG9yZUFjdGlvbkZvckdQVVN0b3JlT3AoZGVzY3JpcHRvci5zdG9yZU9wKV07
CiAKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTAzLDE0ICsx
MDMsMTQgQEAgc3RhdGljIGJvb2wgcG9wdWxhdGVNdGxEZXB0aFN0ZW5jaWxBdHRhY2htZW50KE1U
TFJlbmRlclBhc3NEZXB0aEF0dGFjaG1lbnREZXNjcmkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKIAogICAgIFttdGxBdHRhY2htZW50IHNldFRleHR1cmU6ZGVzY3Jp
cHRvci5hdHRhY2htZW50LT5wbGF0Zm9ybVRleHR1cmUoKV07CiAgICAgW210bEF0dGFjaG1lbnQg
c2V0Q2xlYXJEZXB0aDpkZXNjcmlwdG9yLmNsZWFyRGVwdGhdOwogICAgIFttdGxBdHRhY2htZW50
IHNldExvYWRBY3Rpb246bG9hZEFjdGlvbkZvckdQVUxvYWRPcChkZXNjcmlwdG9yLmRlcHRoTG9h
ZE9wKV07CiAgICAgW210bEF0dGFjaG1lbnQgc2V0U3RvcmVBY3Rpb246c3RvcmVBY3Rpb25Gb3JH
UFVTdG9yZU9wKGRlc2NyaXB0b3IuZGVwdGhTdG9yZU9wKV07CiAKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTM1LDExICsxMzUsMTEgQEAgUmVmUHRyPEdQVVJlbmRlclBhc3NFbmNv
ZGVyPiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKFJlZjxHUFVDb21tYW5kQnVmZmUK
IAogICAgIFJldGFpblB0cjxNVExSZW5kZXJQYXNzRGVzY3JpcHRvcj4gbXRsRGVzY3JpcHRvcjsK
IAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIAogICAgIG10bERlc2NyaXB0b3IgPSBhZG9wdE5TKFtNVExSZW5kZXJQYXNz
RGVzY3JpcHRvciBuZXddKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7CiAg
ICAgICAgIExPRyhXZWJHUFUsICIlczogVW5hYmxlIHRvIGNyZWF0ZSBNVExSZW5kZXJQYXNzRGVz
Y3JpcHRvciEiLCBmdW5jdGlvbk5hbWUpOwpAQCAtMTU3LDExICsxNTcsMTEgQEAgUmVmUHRyPEdQ
VVJlbmRlclBhc3NFbmNvZGVyPiBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6dHJ5Q3JlYXRlKFJlZjxH
UFVDb21tYW5kQnVmZmUKIAogICAgIFJldGFpblB0cjxNVExSZW5kZXJDb21tYW5kRW5jb2Rlcj4g
bXRsRW5jb2RlcjsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIG10bEVuY29kZXIgPSBbYnVmZmVyLT5wbGF0
Zm9ybUNvbW1hbmRCdWZmZXIoKSByZW5kZXJDb21tYW5kRW5jb2RlcldpdGhEZXNjcmlwdG9yOm10
bERlc2NyaXB0b3IuZ2V0KCldOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBpZiAoIW10bEVuY29kZXIpIHsKICAg
ICAgICAgTE9HKFdlYkdQVSwgIiVzOiBVbmFibGUgdG8gY3JlYXRlIE1UTFJlbmRlckNvbW1hbmRF
bmNvZGVyISIsIGZ1bmN0aW9uTmFtZSk7CkBAIC0xOTQsMTQgKzE5NCwxNCBAQCB2b2lkIEdQVVJl
bmRlclBhc3NFbmNvZGVyOjpzZXRQaXBlbGluZShSZWY8Y29uc3QgR1BVUmVuZGVyUGlwZWxpbmU+
JiYgcGlwZWxpbmUpCiAKICAgICAvLyBGSVhNRTogTWV0YWwgdGhyb3dzIGFuIGVycm9yIGlmIHRo
ZSBNVExQaXBlbGluZVN0YXRlJ3MgYXR0YWNobWVudCBmb3JtYXRzIGRvIG5vdCBtYXRjaCB0aGUg
TVRMQ29tbWFuZEVuY29kZXIncyBhdHRhY2htZW50IGZvcm1hdHMuCiAKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAg
ICBpZiAocGlwZWxpbmUtPmRlcHRoU3RlbmNpbFN0YXRlKCkpCiAgICAgICAgIFttX3BsYXRmb3Jt
UmVuZGVyUGFzc0VuY29kZXIgc2V0RGVwdGhTdGVuY2lsU3RhdGU6cGlwZWxpbmUtPmRlcHRoU3Rl
bmNpbFN0YXRlKCldOwogCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciBzZXRSZW5k
ZXJQaXBlbGluZVN0YXRlOnBpcGVsaW5lLT5wbGF0Zm9ybVJlbmRlclBpcGVsaW5lKCldOwogCi0g
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAKICAgICBtX3BpcGVsaW5lID0gV1RGTW92ZShwaXBlbGluZSk7CiB9CkBAIC0yMTMsOSAr
MjEzLDkgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6c2V0QmxlbmRDb2xvcihjb25zdCBH
UFVDb2xvciYgY29sb3IpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
W21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciBzZXRCbGVuZENvbG9yUmVkOmNvbG9yLnIgZ3Jl
ZW46Y29sb3IuZyBibHVlOmNvbG9yLmIgYWxwaGE6Y29sb3IuYV07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQg
R1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFZpZXdwb3J0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IG1pbkRlcHRoLCBmbG9hdCBtYXhEZXB0aCkKQEAg
LTIyNSw5ICsyMjUsOSBAQCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRWaWV3cG9ydChm
bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0
Vmlld3BvcnQ6IHsgeCwgeSwgd2lkdGgsIGhlaWdodCwgbWluRGVwdGgsIG1heERlcHRoIH1dOwot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRTY2lzc29yUmVjdCh1bnNp
Z25lZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQpAQCAt
MjM3LDkgKzIzNyw5IEBAIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNldFNjaXNzb3JSZWN0
KHVuc2lnbmVkIHgsIHVuc2lnbmVkIHksIHVuc2lnbmVkIHdpZHRoCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciBzZXRT
Y2lzc29yUmVjdDogeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH1dOwotICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIEdQ
VVJlbmRlclBhc3NFbmNvZGVyOjpzZXRJbmRleEJ1ZmZlcihHUFVCdWZmZXImIGJ1ZmZlciwgdWlu
dDY0X3Qgb2Zmc2V0KQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29k
ZXI6OnNldFZlcnRleEJ1ZmZlcnModW5zaWduZWQgaW5kZXgsIGNvbnN0IFZlY3RvcjxSZWY8R1BV
CiAKICAgICBBU1NFUlQoYnVmZmVycy5zaXplKCkgJiYgb2Zmc2V0cy5zaXplKCkgPT0gYnVmZmVy
cy5zaXplKCkpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgYXV0byBtdGxCdWZmZXJzID0gYnVmZmVycy5t
YXAoW3RoaXNdIChhdXRvJiBidWZmZXIpIHsKICAgICAgICAgY29tbWFuZEJ1ZmZlcigpLnVzZUJ1
ZmZlcihidWZmZXIuY29weVJlZigpKTsKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIEdQVVJlbmRl
clBhc3NFbmNvZGVyOjpzZXRWZXJ0ZXhCdWZmZXJzKHVuc2lnbmVkIGluZGV4LCBjb25zdCBWZWN0
b3I8UmVmPEdQVQogCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciBzZXRWZXJ0ZXhC
dWZmZXJzOm10bEJ1ZmZlcnMuZGF0YSgpIG9mZnNldHM6KGNvbnN0IE5TVUludGVnZXIgKilvZmZz
ZXRzLmRhdGEoKSB3aXRoUmFuZ2U6aW5kZXhSYW5nZXNdOwogCi0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHN0YXRpYyBN
VExQcmltaXRpdmVUeXBlIG10bFByaW1pdGl2ZVR5cGVGb3JHUFVQcmltaXRpdmVUb3BvbG9neShH
UFVQcmltaXRpdmVUb3BvbG9neSB0eXBlKQpAQCAtMzExLDE0ICszMTEsMTQgQEAgdm9pZCBHUFVS
ZW5kZXJQYXNzRW5jb2Rlcjo6ZHJhdyh1bnNpZ25lZCB2ZXJ0ZXhDb3VudCwgdW5zaWduZWQgaW5z
dGFuY2VDb3VudCwgdW4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBb
bV9wbGF0Zm9ybVJlbmRlclBhc3NFbmNvZGVyIAogICAgICAgICBkcmF3UHJpbWl0aXZlczptdGxQ
cmltaXRpdmVUeXBlRm9yR1BVUHJpbWl0aXZlVG9wb2xvZ3kobV9waXBlbGluZS0+cHJpbWl0aXZl
VG9wb2xvZ3koKSkKICAgICAgICAgdmVydGV4U3RhcnQ6Zmlyc3RWZXJ0ZXgKICAgICAgICAgdmVy
dGV4Q291bnQ6dmVydGV4Q291bnQKICAgICAgICAgaW5zdGFuY2VDb3VudDppbnN0YW5jZUNvdW50
CiAgICAgICAgIGJhc2VJbnN0YW5jZTpmaXJzdEluc3RhbmNlXTsKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogc3RhdGlj
IE1UTEluZGV4VHlwZSBtdGxJbmRleFR5cGVGb3JHUFVJbmRleEZvcm1hdChHUFVJbmRleEZvcm1h
dCBmb3JtYXQpCkBAIC0zNjksNyArMzY5LDcgQEAgdm9pZCBHUFVSZW5kZXJQYXNzRW5jb2Rlcjo6
ZHJhd0luZGV4ZWQodW5zaWduZWQgaW5kZXhDb3VudCwgdW5zaWduZWQgaW5zdGFuY2VDb3UKIAog
ICAgIGNvbW1hbmRCdWZmZXIoKS51c2VCdWZmZXIobWFrZVJlZigqbV9pbmRleEJ1ZmZlcikpOwog
Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIKICAgICAgICAgZHJh
d0luZGV4ZWRQcmltaXRpdmVzOm10bFByaW1pdGl2ZVR5cGVGb3JHUFVQcmltaXRpdmVUb3BvbG9n
eShtX3BpcGVsaW5lLT5wcmltaXRpdmVUb3BvbG9neSgpKQogICAgICAgICBpbmRleENvdW50Omlu
ZGV4Q291bnQKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpk
cmF3SW5kZXhlZCh1bnNpZ25lZCBpbmRleENvdW50LCB1bnNpZ25lZCBpbnN0YW5jZUNvdQogICAg
ICAgICBpbnN0YW5jZUNvdW50Omluc3RhbmNlQ291bnQKICAgICAgICAgYmFzZVZlcnRleDpiYXNl
VmVydGV4CiAgICAgICAgIGJhc2VJbnN0YW5jZTpmaXJzdEluc3RhbmNlXTsKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAog
I2lmIFVTRShNRVRBTCkKQEAgLTM4OCwyNyArMzg4LDI3IEBAIHZvaWQgR1BVUmVuZGVyUGFzc0Vu
Y29kZXI6OnVzZVJlc291cmNlKGNvbnN0IE1UTFJlc291cmNlICpyZXNvdXJjZSwgdW5zaWduZWQg
dXNhCiB7CiAgICAgQVNTRVJUKG1fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2Rlcik7CiAKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgW21fcGxhdGZvcm1SZW5kZXJQYXNzRW5jb2RlciB1c2VSZXNvdXJjZTpyZXNvdXJj
ZSB1c2FnZTp1c2FnZV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgR1BVUmVuZGVyUGFzc0VuY29kZXI6OnNl
dFZlcnRleEJ1ZmZlcihjb25zdCBNVExCdWZmZXIgKmJ1ZmZlciwgTlNVSW50ZWdlciBvZmZzZXQs
IHVuc2lnbmVkIGluZGV4KQogewogICAgIEFTU0VSVChtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29k
ZXIpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIFttX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0VmVy
dGV4QnVmZmVyOmJ1ZmZlciBvZmZzZXQ6b2Zmc2V0IGF0SW5kZXg6aW5kZXhdOwotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQog
CiB2b2lkIEdQVVJlbmRlclBhc3NFbmNvZGVyOjpzZXRGcmFnbWVudEJ1ZmZlcihjb25zdCBNVExC
dWZmZXIgKmJ1ZmZlciwgTlNVSW50ZWdlciBvZmZzZXQsIHVuc2lnbmVkIGluZGV4KQogewogICAg
IEFTU0VSVChtX3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIpOwogCi0gICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFtt
X3BsYXRmb3JtUmVuZGVyUGFzc0VuY29kZXIgc2V0RnJhZ21lbnRCdWZmZXI6YnVmZmVyIG9mZnNl
dDpvZmZzZXQgYXRJbmRleDppbmRleF07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKICNlbmRpZiAvLyBVU0UoTUVUQUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2Ev
R1BVUmVuZGVyUGlwZWxpbmVNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCmluZGV4IDA0NGYxZmViNmM1
N2YwYzI4NTM3ZWE1MzRiYzI0YzQ1NzliMDJmMjAuLjE1OTlmMGJhMjI5ZDRhZmJkYWJhN2RmY2Ji
YmJmODM5OTk1M2FlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVSZW5kZXJQaXBlbGluZU1ldGFsLm1t
CkBAIC01MiwxMSArNTIsMTEgQEAgc3RhdGljIFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0
ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUoY29uc3QgR1BVRGUKIHsKICAgICBSZXRh
aW5QdHI8TVRMRGVwdGhTdGVuY2lsRGVzY3JpcHRvcj4gbXRsRGVzY3JpcHRvcjsKIAotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIAogICAgIG10bERlc2NyaXB0b3IgPSBhZG9wdE5TKFtNVExEZXB0aFN0ZW5jaWxEZXNjcmlw
dG9yIG5ld10pOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKICAgICAgICAg
ZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKCJVbmFibGUgdG8gY3JlYXRlIE1UTERl
cHRoU3RlbmNpbERlc2NyaXB0b3IhIik7CkBAIC03MSwxMSArNzEsMTEgQEAgc3RhdGljIFJldGFp
blB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4gdHJ5Q3JlYXRlTXRsRGVwdGhTdGVuY2lsU3RhdGUo
Y29uc3QgR1BVRGUKIAogICAgIFJldGFpblB0cjxNVExEZXB0aFN0ZW5jaWxTdGF0ZT4gc3RhdGU7
CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKICAgICBzdGF0ZSA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmlj
ZSgpIG5ld0RlcHRoU3RlbmNpbFN0YXRlV2l0aERlc2NyaXB0b3I6bXRsRGVzY3JpcHRvci5nZXQo
KV0pOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKICAgICBpZiAoIXN0YXRlKSB7CiAgICAgICAgIGVycm9yU2NvcGVzLmdl
bmVyYXRlUHJlZml4ZWRFcnJvcigiRXJyb3IgY3JlYXRpbmcgTVRMRGVwdGhTdGVuY2lsU3RhdGUh
Iik7CkBAIC0xODYsMTEgKzE4NiwxMSBAQCBzdGF0aWMgYm9vbCB0cnlTZXRWZXJ0ZXhJbnB1dChj
b25zdCBHUFVWZXJ0ZXhJbnB1dERlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIE1UTFJlbgogCiAgICAg
ICAgIGF1dG8gY29udmVydGVkQnVmZmVySW5kZXggPSBXSExTTDo6TWV0YWw6OmNhbGN1bGF0ZVZl
cnRleEJ1ZmZlckluZGV4KGluZGV4KTsKIAotICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICBhdXRv
IG10bExheW91dERlc2MgPSByZXRhaW5QdHIoW2xheW91dEFycmF5IG9iamVjdEF0SW5kZXhlZFN1
YnNjcmlwdDpjb252ZXJ0ZWRCdWZmZXJJbmRleF0pOwogICAgICAgICBbbXRsTGF5b3V0RGVzYyBz
ZXRTdGVwRnVuY3Rpb246bXRsU3RlcEZ1bmN0aW9uRm9yR1BVSW5wdXRTdGVwTW9kZShidWZmZXJz
W2luZGV4XS0+c3RlcE1vZGUpXTsKICAgICAgICAgW210bExheW91dERlc2Mgc2V0U3RyaWRlOmlu
cHV0U3RyaWRlXTsKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgYXR0
cmlidXRlIDogYXR0cmlidXRlcykgewogICAgICAgICAgICAgaWYgKCFsb2NhdGlvbnMuYWRkKGF0
dHJpYnV0ZS5zaGFkZXJMb2NhdGlvbikuaXNOZXdFbnRyeSkgewpAQCAtMjA0LDEyICsyMDQsMTIg
QEAgc3RhdGljIGJvb2wgdHJ5U2V0VmVydGV4SW5wdXQoY29uc3QgR1BVVmVydGV4SW5wdXREZXNj
cmlwdG9yJiBkZXNjcmlwdG9yLCBNVExSZW4KICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICAgICAg
YXV0byBtdGxBdHRyaWJ1dGVEZXNjID0gcmV0YWluUHRyKFthdHRyaWJ1dGVBcnJheSBvYmplY3RB
dEluZGV4ZWRTdWJzY3JpcHQ6YXR0cmlidXRlSW5kZXhdKTsKICAgICAgICAgICAgIFttdGxBdHRy
aWJ1dGVEZXNjIHNldEZvcm1hdDptdGxWZXJ0ZXhGb3JtYXRGb3JHUFVWZXJ0ZXhGb3JtYXQoYXR0
cmlidXRlLmZvcm1hdCldOwogICAgICAgICAgICAgW210bEF0dHJpYnV0ZURlc2Mgc2V0T2Zmc2V0
Om9mZnNldF07CiAgICAgICAgICAgICBbbXRsQXR0cmlidXRlRGVzYyBzZXRCdWZmZXJJbmRleDpj
b252ZXJ0ZWRCdWZmZXJJbmRleF07Ci0gICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgICAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgICAgICAg
ICBpZiAod2hsc2xEZXNjcmlwdG9yKQogICAgICAgICAgICAgICAgIHdobHNsRGVzY3JpcHRvci0+
dmVydGV4QXR0cmlidXRlcy5hcHBlbmQoeyBjb252ZXJ0VmVydGV4Rm9ybWF0KGF0dHJpYnV0ZS5m
b3JtYXQpLCBhdHRyaWJ1dGUuc2hhZGVyTG9jYXRpb24sIGF0dHJpYnV0ZUluZGV4IH0pOwpAQCAt
MzAzLDcgKzMwMyw3IEBAIHN0YXRpYyBib29sIHRyeVNldENvbG9yU3RhdGVzKGNvbnN0IFZlY3Rv
cjxHUFVDb2xvclN0YXRlRGVzY3JpcHRvcj4mIGNvbG9yU3RhdGVzCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y29sb3JTdGF0ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgYXV0byYgc3RhdGUgPSBjb2xvclN0
YXRlc1tpXTsKQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgYm9vbCB0cnlTZXRDb2xvclN0YXRl
cyhjb25zdCBWZWN0b3I8R1BVQ29sb3JTdGF0ZURlc2NyaXB0b3I+JiBjb2xvclN0YXRlcwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTMzNiw3ICsz
MzYsNyBAQCBzdGF0aWMgYm9vbCB0cnlTZXRDb2xvclN0YXRlcyhjb25zdCBWZWN0b3I8R1BVQ29s
b3JTdGF0ZURlc2NyaXB0b3I+JiBjb2xvclN0YXRlcwogc3RhdGljIGJvb2wgdHJ5U2V0TWV0YWxG
dW5jdGlvbnMoTVRMTGlicmFyeSAqdmVydGV4TWV0YWxMaWJyYXJ5LCBNVExMaWJyYXJ5ICpmcmFn
bWVudE1ldGFsTGlicmFyeSwgTVRMUmVuZGVyUGlwZWxpbmVEZXNjcmlwdG9yICptdGxEZXNjcmlw
dG9yLCBjb25zdCBTdHJpbmcmIHZlcnRleEVudHJ5UG9pbnROYW1lLCBjb25zdCBTdHJpbmcmIGZy
YWdtZW50RW50cnlQb2ludE5hbWUsIEdQVUVycm9yU2NvcGVzJiBlcnJvclNjb3BlcykKIHsKICAg
ICB7Ci0gICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICAgICAgLy8gTWV0YWwgcmVxdWlyZXMgYSB2ZXJ0
ZXggc2hhZGVyIGluIGFsbCByZW5kZXIgcGlwZWxpbmVzLgogICAgICAgICBpZiAoIXZlcnRleE1l
dGFsTGlicmFyeSkgewpAQCAtMzUyLDExICszNTIsMTEgQEAgc3RhdGljIGJvb2wgdHJ5U2V0TWV0
YWxGdW5jdGlvbnMoTVRMTGlicmFyeSAqdmVydGV4TWV0YWxMaWJyYXJ5LCBNVExMaWJyYXJ5ICpm
cmEKIAogICAgICAgICBbbXRsRGVzY3JpcHRvciBzZXRWZXJ0ZXhGdW5jdGlvbjpmdW5jdGlvbi5n
ZXQoKV07CiAKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIH0KIAogICAgIHsKLSAgICAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogICAgICAgICAvLyBIb3dldmVyLCBmcmFnbWVudCBzaGFkZXJzIGFyZSBvcHRpb25hbC4KICAg
ICAgICAgaWYgKCFmcmFnbWVudE1ldGFsTGlicmFyeSB8fCBmcmFnbWVudEVudHJ5UG9pbnROYW1l
LmlzTnVsbCgpKQpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBib29sIHRyeVNldE1ldGFsRnVu
Y3Rpb25zKE1UTExpYnJhcnkgKnZlcnRleE1ldGFsTGlicmFyeSwgTVRMTGlicmFyeSAqZnJhCiAg
ICAgICAgIFttdGxEZXNjcmlwdG9yIHNldEZyYWdtZW50RnVuY3Rpb246ZnVuY3Rpb24uZ2V0KCld
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgfQogCiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtMzk5LDcgKzM5OSw3IEBAIHN0YXRpYyBib29sIHRyeVNldEZ1bmN0aW9u
cyhjb25zdCBHUFVQcm9ncmFtbWFibGVTdGFnZURlc2NyaXB0b3ImIHZlcnRleFN0YWdlLCBjCiAK
ICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAKLSAgICAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAg
ICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWU7CiAgICAgICAgIGlmIChXSExTTDo6ZHVtcE1ldGFs
Q29tcGlsZVRpbWVzKQogICAgICAgICAgICAgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93
KCk7CkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIGJvb2wgdHJ5U2V0RnVuY3Rpb25zKGNvbnN0
IEdQVVByb2dyYW1tYWJsZVN0YWdlRGVzY3JpcHRvciYgdmVydGV4U3RhZ2UsIGMKICAgICAgICAg
dmVydGV4TGlicmFyeSA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0xpYnJh
cnlXaXRoU291cmNlOndobHNsQ29tcGlsZVJlc3VsdC0+bWV0YWxTb3VyY2UudG9TdHJpbmcoKSBv
cHRpb25zOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICAgICAgaWYgKFdITFNMOjpkdW1wTWV0YWxD
b21waWxlVGltZXMpCiAgICAgICAgICAgICBkYXRhTG9nTG4oIk1ldGFsIGNvbXBpbGUgdGltZXM6
ICIsIChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWlsbGlzZWNvbmRzKCksICIg
bXMiKTsKLSAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgICAgIGlmICghdmVydGV4TGlicmFyeSAmJiBlcnJv
cikgewogICAgICAgICAgICAgZXJyb3JTY29wZXMuZ2VuZXJhdGVQcmVmaXhlZEVycm9yKGVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uLlVURjhTdHJpbmcpOwpAQCAtNDM5LDExICs0MzksMTEgQEAg
c3RhdGljIFJldGFpblB0cjxNVExSZW5kZXJQaXBlbGluZURlc2NyaXB0b3I+IGNvbnZlcnRSZW5k
ZXJQaXBlbGluZURlc2NyaXB0b3IoY28KIHsKICAgICBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxp
bmVEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgbXRsRGVzY3Jp
cHRvciA9IGFkb3B0TlMoW01UTFJlbmRlclBpcGVsaW5lRGVzY3JpcHRvciBuZXddKTsKIAotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogCiAgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7CiAgICAgICAgIGVycm9yU2NvcGVzLmdlbmVy
YXRlUHJlZml4ZWRFcnJvcigiRXJyb3IgY3JlYXRpbmcgTVRMRGVzY3JpcHRvciEiKTsKQEAgLTQ5
NywxNCArNDk3LDE0IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4g
dHJ5Q3JlYXRlTXRsUmVuZGVyUGlwZWxpbmVTdGF0ZShjb25zdCBHCiAKICAgICBSZXRhaW5QdHI8
TVRMUmVuZGVyUGlwZWxpbmVTdGF0ZT4gcGlwZWxpbmU7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBOU0Vy
cm9yICplcnJvciA9IG5pbDsKICAgICBwaXBlbGluZSA9IGFkb3B0TlMoW2RldmljZS5wbGF0Zm9y
bURldmljZSgpIG5ld1JlbmRlclBpcGVsaW5lU3RhdGVXaXRoRGVzY3JpcHRvcjptdGxEZXNjcmlw
dG9yLmdldCgpIGVycm9yOiZlcnJvcl0pOwogICAgIGlmICghcGlwZWxpbmUpCiAgICAgICAgIGVy
cm9yU2NvcGVzLmdlbmVyYXRlUHJlZml4ZWRFcnJvcihlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bi5VVEY4U3RyaW5nKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHBpcGVsaW5lOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBs
ZXJNZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9H
UFVTYW1wbGVyTWV0YWwubW0KaW5kZXggZDc0MDUxOGU5NWM3MTRiMTk5ZDliNTY5YWZmNjNlNTYw
N2M1ZDQ5Yi4uMmFmOTczNTQ1YmRkNzhjNjhjZjI4MzA4ZGJjNjAyZDAxNzZlMGRhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNhbXBs
ZXJNZXRhbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29j
b2EvR1BVU2FtcGxlck1ldGFsLm1tCkBAIC04NCw5ICs4NCw5IEBAIHN0YXRpYyBSZXRhaW5QdHI8
TVRMU2FtcGxlclN0YXRlPiB0cnlDcmVhdGVNdGxTYW1wbGVyU3RhdGUoY29uc3QgR1BVRGV2aWNl
JiBkZXZpCiAKICAgICBSZXRhaW5QdHI8TVRMU2FtcGxlckRlc2NyaXB0b3I+IG10bERlc2NyaXB0
b3I7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgbXRsRGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTFNhbXBsZXJE
ZXNjcmlwdG9yIG5ld10pOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFtdGxEZXNjcmlwdG9yKSB7CiAgICAg
ICAgIExPRyhXZWJHUFUsICJHUFVTYW1wbGVyOjp0cnlDcmVhdGUoKTogRXJyb3IgY3JlYXRpbmcg
TVRMU2FtcGxlckRlc2NyaXB0b3IhIik7CkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBSZXRhaW5Q
dHI8TVRMU2FtcGxlclN0YXRlPiB0cnlDcmVhdGVNdGxTYW1wbGVyU3RhdGUoY29uc3QgR1BVRGV2
aWNlJiBkZXZpCiAKICAgICBSZXRhaW5QdHI8TVRMU2FtcGxlclN0YXRlPiBzYW1wbGVyOwogCi0g
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogICAgIFttdGxEZXNjcmlwdG9yIHNldFJBZGRyZXNzTW9kZTptdGxBZGRyZXNzTW9k
ZUZvckFkZHJlc3NNb2RlKGRlc2NyaXB0b3IuYWRkcmVzc01vZGVVKV07CiAgICAgW210bERlc2Ny
aXB0b3Igc2V0U0FkZHJlc3NNb2RlOm10bEFkZHJlc3NNb2RlRm9yQWRkcmVzc01vZGUoZGVzY3Jp
cHRvci5hZGRyZXNzTW9kZVYpXTsKICAgICBbbXRsRGVzY3JpcHRvciBzZXRUQWRkcmVzc01vZGU6
bXRsQWRkcmVzc01vZGVGb3JBZGRyZXNzTW9kZShkZXNjcmlwdG9yLmFkZHJlc3NNb2RlVyldOwpA
QCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMU2FtcGxlclN0YXRlPiB0cnlD
cmVhdGVNdGxTYW1wbGVyU3RhdGUoY29uc3QgR1BVRGV2aWNlJiBkZXZpCiAgICAgW210bERlc2Ny
aXB0b3Igc2V0U3VwcG9ydEFyZ3VtZW50QnVmZmVyczpZRVNdOwogCiAgICAgc2FtcGxlciA9IGFk
b3B0TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld1NhbXBsZXJTdGF0ZVdpdGhEZXNjcmlw
dG9yOm10bERlc2NyaXB0b3IuZ2V0KCldKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghc2FtcGxlcikKICAg
ICAgICAgTE9HKFdlYkdQVSwgIkdQVVNhbXBsZXI6OnRyeUNyZWF0ZSgpOiBFcnJvciBjcmVhdGlu
ZyBNVExTYW1wbGVyU3RhdGUhIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxlTWV0YWwubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVU2hhZGVyTW9kdWxlTWV0YWwubW0K
aW5kZXggYjgyZjMyMzRhZmE2YzdlODUxOTA2MmM2YThlMGEwZGZmNzc2YWYyOS4uNzY2NDRjMzVi
MGIwMDlkMWQ5ZjYxMDkxYTNmZmJmN2ZkNjNiOTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVNoYWRlck1vZHVsZU1ldGFsLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTaGFkZXJN
b2R1bGVNZXRhbC5tbQpAQCAtNTAsMTQgKzUwLDE0IEBAIFJlZlB0cjxHUFVTaGFkZXJNb2R1bGU+
IEdQVVNoYWRlck1vZHVsZTo6dHJ5Q3JlYXRlKGNvbnN0IEdQVURldmljZSYgZGV2aWNlLCBjb25z
CiAKICAgICBQbGF0Zm9ybVNoYWRlck1vZHVsZVNtYXJ0UHRyIG1vZHVsZTsKIAotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogICAgIE5TRXJyb3IgKmVycm9yID0gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOkAiY29tLmFw
cGxlLldlYktpdC5HUFUiIGNvZGU6MSB1c2VySW5mbzpuaWxdOwogICAgIG1vZHVsZSA9IGFkb3B0
TlMoW2RldmljZS5wbGF0Zm9ybURldmljZSgpIG5ld0xpYnJhcnlXaXRoU291cmNlOmRlc2NyaXB0
b3IuY29kZSBvcHRpb25zOm5pbCBlcnJvcjomZXJyb3JdKTsKICAgICBpZiAoIW1vZHVsZSkKICAg
ICAgICAgTE9HKFdlYkdQVSwgIlNoYWRlciBjb21waWxhdGlvbiBlcnJvcjogJXMiLCBbW2Vycm9y
IGxvY2FsaXplZERlc2NyaXB0aW9uXSBVVEY4U3RyaW5nXSk7CiAKLSAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVy
biBtb2R1bGUgPyBhZG9wdFJlZihuZXcgR1BVU2hhZGVyTW9kdWxlKFdURk1vdmUobW9kdWxlKSkp
IDogbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVTd2FwQ2hhaW5NZXRhbC5tbQppbmRleCBiZjNlMzcy
OTY4NDVlNmVmZTU2ODRmYjUwMDhkMDZlZWJhMjk1YjIzLi4zMzY4NTUwYjBkYmJjNjk2NTc0MDE2
ZDg2YjhjMzE3MDgzMmI3NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvY29jb2EvR1BVU3dhcENoYWluTWV0YWwubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVN3YXBDaGFpbk1ldGFsLm1tCkBAIC02
OCw3ICs2OCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V2ViR1BVTGF5ZXI+IHRyeUNyZWF0ZVdlYkdQ
VUxheWVyKE1UTERldmljZSAqZGV2aWNlLCBNVExQaXhlbEZvCiAKICAgICBSZXRhaW5QdHI8V2Vi
R1BVTGF5ZXI+IGxheWVyOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGxheWVyID0gYWRvcHROUyhbV2ViR1BV
TGF5ZXIgbmV3XSk7CiAKICAgICBbbGF5ZXIgc2V0TmFtZTpAIldlYiBHUFUgTGF5ZXIiXTsKQEAg
LTc3LDcgKzc3LDcgQEAgc3RhdGljIFJldGFpblB0cjxXZWJHUFVMYXllcj4gdHJ5Q3JlYXRlV2Vi
R1BVTGF5ZXIoTVRMRGV2aWNlICpkZXZpY2UsIE1UTFBpeGVsRm8KICAgICBbbGF5ZXIgc2V0RGV2
aWNlOmRldmljZV07CiAgICAgW2xheWVyIHNldEZyYW1lYnVmZmVyT25seToodXNhZ2UgPT0gR1BV
VGV4dHVyZVVzYWdlOjpGbGFnczo6T3V0cHV0QXR0YWNobWVudCldOwogICAgIFtsYXllciBzZXRQ
aXhlbEZvcm1hdDpmb3JtYXRdOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgaWYgKCFsYXllcikKICAgICAgICAgTE9H
KFdlYkdQVSwgIkdQVVN3YXBDaGFpbjo6dHJ5Q3JlYXRlKCk6IFVuYWJsZSB0byBjcmVhdGUgQ0FN
ZXRhbExheWVyISIpOwpAQCAtMTI0LDEyICsxMjQsMTIgQEAgUmVmUHRyPEdQVVRleHR1cmU+IEdQ
VVN3YXBDaGFpbjo6dHJ5R2V0Q3VycmVudFRleHR1cmUoKQogewogICAgIFJldGFpblB0cjxNVExU
ZXh0dXJlPiBtdGxUZXh0dXJlOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmICghbV9jdXJyZW50RHJhd2Fi
bGUpCiAgICAgICAgIG1fY3VycmVudERyYXdhYmxlID0gcmV0YWluUHRyKFttX3BsYXRmb3JtU3dh
cExheWVyIG5leHREcmF3YWJsZV0pOwogICAgIG10bFRleHR1cmUgPSBbbV9jdXJyZW50RHJhd2Fi
bGUgdGV4dHVyZV07CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghbXRsVGV4dHVyZSkgewogICAgICAgICBM
T0coV2ViR1BVLCAiR1BVU3dhcENoYWluOjpnZXRDdXJyZW50VGV4dHVyZSgpOiBVbmFibGUgdG8g
Z2V0IGN1cnJlbnQgTVRMVGV4dHVyZSEiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVVGV4dHVyZU1ldGFsLm1tCmluZGV4
IGMyOTE3NmJkOTIzODU1NjFkMjdjZmNiM2U1MTQyZjIyZjIzN2NmOGYuLjA2ZTdkZmI4YzQ2Mjg0
YzBiNDhkMDM5MTAzMWQ3NTE2N2I2Y2ZkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVUZXh0dXJlTWV0YWwubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVVRleHR1cmVNZXRhbC5tbQpA
QCAtOTAsMTEgKzkwLDExIEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMVGV4dHVyZURlc2NyaXB0b3I+
IHRyeUNyZWF0ZU10bFRleHR1cmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqCiB7CiAgICAgUmV0YWlu
UHRyPE1UTFRleHR1cmVEZXNjcmlwdG9yPiBtdGxEZXNjcmlwdG9yOwogCi0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAg
ICAgbXRsRGVzY3JpcHRvciA9IGFkb3B0TlMoW01UTFRleHR1cmVEZXNjcmlwdG9yIG5ld10pOwog
Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAKICAgICBpZiAoIW10bERlc2NyaXB0b3IpIHsKICAgICAgICAgTE9HKFdlYkdQVSwg
IiVzOiBVbmFibGUgdG8gY3JlYXRlIG5ldyBNVExUZXh0dXJlRGVzY3JpcHRvciEiLCBmdW5jdGlv
bk5hbWUpOwpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TVRMVGV4dHVyZURl
c2NyaXB0b3I+IHRyeUNyZWF0ZU10bFRleHR1cmVEZXNjcmlwdG9yKGNvbnN0IGNoYXIqCiAgICAg
YXV0byBzdG9yYWdlTW9kZSA9IHN0b3JhZ2VNb2RlRm9yUGl4ZWxGb3JtYXRBbmRTYW1wbGVDb3Vu
dChwaXhlbEZvcm1hdCwgZGVzY3JpcHRvci5zYW1wbGVDb3VudCk7CiAjZW5kaWYKIAotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIAogICAgIFttdGxEZXNjcmlwdG9yIHNldFdpZHRoOndpZHRoXTsKICAgICBbbXRsRGVzY3Jp
cHRvciBzZXRIZWlnaHQ6aGVpZ2h0XTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPE1UTFRleHR1cmVEZXNjcmlwdG9yPiB0cnlDcmVhdGVNdGxUZXh0dXJlRGVzY3JpcHRvcihj
b25zdCBjaGFyKgogCiAgICAgW210bERlc2NyaXB0b3Igc2V0U3RvcmFnZU1vZGU6c3RvcmFnZU1v
ZGVdOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKICAgICByZXR1cm4gbXRsRGVzY3JpcHRvcjsKIH0KQEAgLTE3MSwxMSAr
MTcxLDExIEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVUZXh0dXJlOjp0cnlDcmVhdGUoY29uc3Qg
R1BVRGV2aWNlJiBkZXZpY2UsIGNvbnN0IEdQVVRleHR1CiAKICAgICBSZXRhaW5QdHI8TVRMVGV4
dHVyZT4gbXRsVGV4dHVyZTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIG10bFRleHR1cmUgPSBhZG9wdE5T
KFtkZXZpY2UucGxhdGZvcm1EZXZpY2UoKSBuZXdUZXh0dXJlV2l0aERlc2NyaXB0b3I6bXRsRGVz
Y3JpcHRvci5nZXQoKV0pOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBpZiAoIW10bFRleHR1cmUpIHsKICAgICAg
ICAgTE9HKFdlYkdQVSwgIiVzOiBVbmFibGUgdG8gY3JlYXRlIE1UTFRleHR1cmUhIiwgZnVuY3Rp
b25OYW1lKTsKQEAgLTIwNSwxMSArMjA1LDExIEBAIFJlZlB0cjxHUFVUZXh0dXJlPiBHUFVUZXh0
dXJlOjp0cnlDcmVhdGVEZWZhdWx0VGV4dHVyZVZpZXcoKQogewogICAgIFJldGFpblB0cjxNVExU
ZXh0dXJlPiB0ZXh0dXJlOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgdGV4dHVyZSA9IGFkb3B0TlMoW21f
cGxhdGZvcm1UZXh0dXJlIG5ld1RleHR1cmVWaWV3V2l0aFBpeGVsRm9ybWF0Om1fcGxhdGZvcm1U
ZXh0dXJlLmdldCgpLnBpeGVsRm9ybWF0XSk7CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIGlmICghdGV4dHVyZSkg
ewogICAgICAgICBMT0coV2ViR1BVLCAiR1BVVGV4dHVyZTo6Y3JlYXRlRGVmYXVsdFRleHR1cmVW
aWV3KCk6IFVuYWJsZSB0byBjcmVhdGUgTVRMVGV4dHVyZSB2aWV3ISIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tCmluZGV4IDgxNmI3ZGFl
NjFhMmQ2OWQyMTJkN2Q2ZDk1NTAwYWU1YzkyMjI0NDguLmJkZGMzYTc4MTYwZGE5ZmU3YjI3NmVk
OWRhMzI5ZThlOGU4Y2Q4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db2xvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29sb3JNYWMubW0KQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIFNpbXBsZUNvbG9y
IG1ha2VTaW1wbGVDb2xvckZyb21OU0NvbG9yKE5TQ29sb3IgKmNvbG9yKQogICAgIENHRmxvYXQg
Ymx1ZUNvbXBvbmVudDsKICAgICBDR0Zsb2F0IGFscGhhOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIE5TQ29s
b3IgKnJnYkNvbG9yID0gW2NvbG9yIGNvbG9yVXNpbmdDb2xvclNwYWNlOk5TQ29sb3JTcGFjZS5k
ZXZpY2VSR0JDb2xvclNwYWNlXTsKICAgICBpZiAoIXJnYkNvbG9yKSB7CiAgICAgICAgIC8vIFRo
ZSBjb2xvciBzcGFjZSBjb252ZXJzaW9uIGFib3ZlIGNhbiBmYWlsIGlmIHRoZSBOU0NvbG9yIGlz
IGluIHRoZSBOU1BhdHRlcm5Db2xvclNwYWNlLgpAQCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgU2lt
cGxlQ29sb3IgbWFrZVNpbXBsZUNvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciAqY29sb3IpCiAgICAg
fQogCiAgICAgW3JnYkNvbG9yIGdldFJlZDomcmVkQ29tcG9uZW50IGdyZWVuOiZncmVlbkNvbXBv
bmVudCBibHVlOiZibHVlQ29tcG9uZW50IGFscGhhOiZhbHBoYV07Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1
cm4gbWFrZVNpbXBsZUNvbG9yKFNSR0JBIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHJlZENvbXBvbmVu
dCksIHN0YXRpY19jYXN0PGZsb2F0PihncmVlbkNvbXBvbmVudCksIHN0YXRpY19jYXN0PGZsb2F0
PihibHVlQ29tcG9uZW50KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGFscGhhKSB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxWaWV3SU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbFZpZXdJT1MubW0KaW5kZXggMjY3Zjk3OGQy
N2JhMzNhYTUwMjQyMTkyZGM1ZGNiNTA5ZGU2YzIzNy4uYjRkMmZkOWRkNWM1MmVmYjk3YzMxZGQ3
ZDA0NWQzOTk5ZmU0YmY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Njcm9sbFZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9s
bFZpZXdJT1MubW0KQEAgLTU0LDkgKzU0LDkgQEAgaW5saW5lIE5TU2Nyb2xsVmlldzxXZWJDb3Jl
RnJhbWVTY3JvbGxWaWV3PiAqU2Nyb2xsVmlldzo6c2Nyb2xsVmlldygpIGNvbnN0CiAKIE5TVmll
dyAqU2Nyb2xsVmlldzo6ZG9jdW1lbnRWaWV3KCkgY29uc3QKIHsKLSAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0
dXJuIFtzY3JvbGxWaWV3KCkgZG9jdW1lbnRWaWV3XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gbmlsOwog
fQogCkBAIC03NCwyNSArNzQsMjUgQEAgdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlbW92ZUNo
aWxkKFdpZGdldCogY2hpbGQpCiAKIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxi
YXJNb2RlcygpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFtzY3JvbGxWaWV3KCkgc2V0U2Nyb2xsaW5nTW9k
ZXM6bV9ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbDptX3ZlcnRpY2FsU2Nyb2xsYmFy
TW9kZSBhbmRMb2NrOk5PXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNj
cm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUmIGhvcml6b250YWwsIFNjcm9sbGJhck1vZGUmIHZl
cnRpY2FsKSBjb25zdAogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbc2Nyb2xsVmlldygpIHNjcm9sbGluZ01v
ZGVzOiZob3Jpem9udGFsIHZlcnRpY2FsOiZ2ZXJ0aWNhbF07Ci0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgU2Ny
b2xsVmlldzo6cGxhdGZvcm1TZXRDYW5CbGl0T25TY3JvbGwoYm9vbCBjYW5CbGl0T25TY3JvbGwp
CiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAg
ICAgW1tzY3JvbGxWaWV3KCkgY29udGVudFZpZXddIHNldENvcGllc09uU2Nyb2xsOmNhbkJsaXRP
blNjcm9sbF07CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9
CiAKIGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1DYW5CbGl0T25TY3JvbGwoKSBjb25zdApAQCAt
MTA3LDkgKzEwNyw5IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Vbm9ic2N1cmVkQ29u
dGVudFJlY3QoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvCiAgICAgQVNTRVJUKHBsYXRm
b3JtV2lkZ2V0KCkpOwogICAgIFdBS1Njcm9sbFZpZXcgKnZpZXcgPSBzdGF0aWNfY2FzdDxXQUtT
Y3JvbGxWaWV3ICo+KHBsYXRmb3JtV2lkZ2V0KCkpOwogICAgIENHUmVjdCByID0gQ0dSZWN0WmVy
bzsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgciA9IFt2aWV3IHVub2JzY3VyZWRDb250ZW50UmVjdF07Ci0gICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3Qocik7CiB9CiAKQEAgLTExOCw3ICsxMTgsNyBA
QCBGbG9hdFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1FeHBvc2VkQ29udGVudFJlY3QoKSBjb25z
dAogICAgIEFTU0VSVChwbGF0Zm9ybVdpZGdldCgpKTsKICAgICBOU1Njcm9sbFZpZXcgKnZpZXcg
PSBzdGF0aWNfY2FzdDxOU1Njcm9sbFZpZXcgKj4ocGxhdGZvcm1XaWRnZXQoKSk7CiAgICAgQ0dS
ZWN0IHIgPSBDR1JlY3RaZXJvOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBpZiAoW3ZpZXcgaXNLaW5kT2ZDbGFz
czpbTlNTY3JvbGxWaWV3IGNsYXNzXV0pCiAgICAgICAgIHIgPSBbdmlldyBleHBvc2VkQ29udGVu
dFJlY3RdOwogICAgIGVsc2UgewpAQCAtMTI2LDcgKzEyNiw3IEBAIEZsb2F0UmVjdCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybUV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0CiAgICAgICAgIHIuc2l6ZSA9
IFt2aWV3IGJvdW5kc10uc2l6ZTsKICAgICB9CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gcjsKIH0KIApA
QCAtMTM0LDEwICsxMzQsMTAgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRBY3R1YWxTY3JvbGxQb3Np
dGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgTlNTY3JvbGxWaWV3ICp2aWV3
ID0gc3RhdGljX2Nhc3Q8TlNTY3JvbGxWaWV3ICo+KHBsYXRmb3JtV2lkZ2V0KCkpOwogCi0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltOU1Njcm9sbFZpZXcgY2xhc3NdXSkK
ICAgICAgICAgW3ZpZXcgc2V0QWN0dWFsU2Nyb2xsUG9zaXRpb246cG9zaXRpb25dOwotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
fQogCiBmbG9hdCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVRvcENvbnRlbnRJbnNldCgpIGNvbnN0CkBA
IC0xNTEsMjYgKzE1MSwyNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0VG9wQ29udGVu
dEluc2V0KGZsb2F0KQogCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnBsYXRmb3JtVmlzaWJsZUNvbnRl
bnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CiB7Ci0gICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlm
IChpbmNsdWRlU2Nyb2xsYmFycykgewogICAgICAgICBpZiAoTlNWaWV3KiBkb2N1bWVudFZpZXcg
PSB0aGlzLT5kb2N1bWVudFZpZXcoKSkKICAgICAgICAgICAgIHJldHVybiBlbmNsb3NpbmdJbnRS
ZWN0KFtkb2N1bWVudFZpZXcgdmlzaWJsZVJlY3RdKTsKICAgICB9CiAgICAgcmV0dXJuIGVuY2xv
c2luZ0ludFJlY3QoW3Njcm9sbFZpZXcoKSBkb2N1bWVudFZpc2libGVSZWN0XSk7Ci0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAg
ICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAogSW50U2l6ZSBTY3JvbGxWaWV3OjpwbGF0Zm9ybVZp
c2libGVDb250ZW50U2l6ZShib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdAogewotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICBpZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKICAgICAgICAgaWYgKE5TVmlldyogZG9j
dW1lbnRWaWV3ID0gdGhpcy0+ZG9jdW1lbnRWaWV3KCkpCiAgICAgICAgICAgICByZXR1cm4gSW50
U2l6ZShbZG9jdW1lbnRWaWV3IHZpc2libGVSZWN0XS5zaXplKTsKICAgICB9CiAKICAgICByZXR1
cm4gZXhwYW5kZWRJbnRTaXplKEZsb2F0U2l6ZShbc2Nyb2xsVmlldygpIGRvY3VtZW50VmlzaWJs
ZVJlY3RdLnNpemUpKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gSW50U2l6ZSgpOwogfQogCkBAIC0xOTAs
MTUgKzE5MCwxNSBAQCBMZWdhY3lUaWxlQ2FjaGUqIFNjcm9sbFZpZXc6OmxlZ2FjeVRpbGVDYWNo
ZSgpCiAgICAgLy8gdGhlIG1haW4gZnJhbWUgYW5kIHRoaXMgYXZvaWRzIGhhdmluZyB0byBhZGQg
cGFyZW50IGNoZWNrcyB0byBhbGwgY2FsbCBzaXRlcy4KICAgICBpZiAocGFyZW50KCkpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBXQUtTY3JvbGxWaWV3ICp2aWV3ID0gc3RhdGlj
X2Nhc3Q8V0FLU2Nyb2xsVmlldyAqPihwbGF0Zm9ybVdpZGdldCgpKTsKICAgICByZXR1cm4gW1t2
aWV3IHdpbmRvd10gdGlsZUNhY2hlXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNldENvbnRlbnRzU2l6ZSgpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGludCB3ID0gbV9jb250ZW50
c1NpemUud2lkdGgoKTsKICAgICBpbnQgaCA9IG1fY29udGVudHNTaXplLmhlaWdodCgpOwogI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjA4LDI0ICsyMDgsMjQgQEAgdm9pZCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNldENvbnRlbnRzU2l6ZSgpCiAjZW5kaWYKICAgICBOU1NpemUgdGVtcFNp
emUgPSB7IHN0YXRpY19jYXN0PENHRmxvYXQ+KG1heCgwLCB3KSksIHN0YXRpY19jYXN0PENHRmxv
YXQ+KG1heCgwLCBoKSkgfTsgLy8gd29ya2Fyb3VuZCBmb3IgNDIxMzMxNAogICAgIFtkb2N1bWVu
dFZpZXcoKSBzZXRCb3VuZHNTaXplOnRlbXBTaXplXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wgcmVwYWludE9uVW5zdXBw
cmVzcykKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgW3Njcm9sbFZpZXcoKSBzZXRTY3JvbGxCYXJzU3VwcHJl
c3NlZDptX3Njcm9sbGJhcnNTdXBwcmVzc2VkCiAgICAgICAgICAgICAgICAgICAgICAgcmVwYWlu
dE9uVW5zdXBwcmVzczpyZXBhaW50T25VbnN1cHByZXNzXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b2ludCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgTlNQb2ludCBmbG9hdFBvaW50ID0gc2Nyb2xsUG9pbnQ7
CiAgICAgTlNQb2ludCB0ZW1wUG9pbnQgPSB7IG1heCgtW3Njcm9sbFZpZXcoKSBzY3JvbGxPcmln
aW5dLngsIGZsb2F0UG9pbnQueCksIG1heCgtW3Njcm9sbFZpZXcoKSBzY3JvbGxPcmlnaW5dLnks
IGZsb2F0UG9pbnQueSkgfTsgIC8vIERvbid0IHVzZSBOU01ha2VQb2ludCB0byB3b3JrIGFyb3Vu
ZCA0MjEzMzE0LgogICAgIFtkb2N1bWVudFZpZXcoKSBzY3JvbGxQb2ludDp0ZW1wUG9pbnRdOwot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkpCkBAIC0yMzcsMzggKzIzNywzOCBAQCBib29sIFNjcm9sbFZp
ZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpCiAK
IHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJ
bnRSZWN0JiByZWN0KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIE5TVmlldyAqdmlldyA9IGRvY3VtZW50
VmlldygpOwogCiAgICAgW3ZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOyAgICAKIAot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiAvLyAiQ29udGFpbmluZyBXaW5kb3ciIG1lYW5zIHRoZSBOU1dpbmRvdydzIGNv
b3JkIHN5c3RlbSwgd2hpY2ggaXMgb3JpZ2luIGxvd2VyIGxlZnQKIAogSW50UmVjdCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybUNvbnRlbnRzVG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgaWYgKE5TVmlldyogZG9jdW1lbnRWaWV3ID0gdGhpcy0+ZG9jdW1l
bnRWaWV3KCkpIHsKICAgICAgICAgTlNSZWN0IHRlbXBSZWN0ID0gcmVjdDsKICAgICAgICAgdGVt
cFJlY3QgPSBbZG9jdW1lbnRWaWV3IGNvbnZlcnRSZWN0OnRlbXBSZWN0IHRvVmlldzpuaWxdOwog
ICAgICAgICB0ZW1wUmVjdC5vcmlnaW4gPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNvbnZlcnRC
YXNlVG9TY3JlZW46dGVtcFJlY3Qub3JpZ2luXTsKICAgICAgICAgcmV0dXJuIGVuY2xvc2luZ0lu
dFJlY3QodGVtcFJlY3QpOwogICAgIH0KLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQog
CiBJbnRQb2ludCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMoY29uc3QgSW50
UG9pbnQmIHBvaW50KSBjb25zdAogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBpZiAoTlNWaWV3KiBkb2N1bWVu
dFZpZXcgPSB0aGlzLT5kb2N1bWVudFZpZXcoKSkgewogICAgICAgICBOU1BvaW50IHdpbmRvd0Nv
b3JkID0gW1tkb2N1bWVudFZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOiBwb2ludF07
CiAgICAgICAgIHJldHVybiBJbnRQb2ludChbZG9jdW1lbnRWaWV3IGNvbnZlcnRQb2ludDp3aW5k
b3dDb29yZCBmcm9tVmlldzpuaWxdKTsKICAgICB9Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIEludFBvaW50
KCk7CiB9CiAKQEAgLTI4NSw5ICsyODUsOSBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSkKIAogdm9pZCBTY3Jv
bGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBi
b29sIHVwZGF0ZVBvc2l0aW9uQWxsLCBib29sIHVwZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseSkK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgW3Njcm9sbFZpZXcoKSBzZXRTY3JvbGxPcmlnaW46c3RhdGljX2Nh
c3Q8Q0dQb2ludD4ob3JpZ2luKSB1cGRhdGVQb3NpdGlvbkF0QWxsOnVwZGF0ZVBvc2l0aW9uQWxs
IGltbWVkaWF0ZWx5OnVwZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseV07Ci0gICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XaWRnZXRJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2lkZ2V0SU9TLm1tCmluZGV4IDRlMDdiZDc1MTY4
OWZjYTUyY2IzYTZjMWEwNjc5YzRmYTIwYzczNTkuLjJkNDQyYWFkMjE5NDVjMjYzYTE5OWU5OWY5
Mjg5ZTFjODE4YzA4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
aWRnZXRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dpZGdldElPUy5t
bQpAQCAtODksOSArODksOSBAQCB2b2lkIFdpZGdldDo6c2hvdygpCiAKICAgICBzZXRTZWxmVmlz
aWJsZSh0cnVlKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbZ2V0T3V0ZXJWaWV3KCkgc2V0SGlkZGVuOk5P
XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIH0KIAogdm9pZCBXaWRnZXQ6OmhpZGUoKQpAQCAtMTAxLDkgKzEwMSw5IEBAIHZv
aWQgV2lkZ2V0OjpoaWRlKCkKIAogICAgIHNldFNlbGZWaXNpYmxlKGZhbHNlKTsKIAotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICBbZ2V0T3V0ZXJWaWV3KCkgc2V0SGlkZGVuOllFU107Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIEludFJl
Y3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdApAQCAtMTExLDkgKzExMSw5IEBAIEludFJlY3Qg
V2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdAogICAgIGlmICghcGxhdGZvcm1XaWRnZXQoKSkKICAg
ICAgICAgcmV0dXJuIG1fZnJhbWU7CiAgICAgCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVybiBlbmNsb3Np
bmdJbnRSZWN0KFtnZXRPdXRlclZpZXcoKSBmcmFtZV0pOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIAogICAgIHJldHVy
biBtX2ZyYW1lOwogfQpAQCAtMTIyLDE0ICsxMjIsMTQgQEAgdm9pZCBXaWRnZXQ6OnNldEZyYW1l
UmVjdChjb25zdCBJbnRSZWN0ICZyZWN0KQogewogICAgIG1fZnJhbWUgPSByZWN0OwogICAgIAot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKICAgICBOU1ZpZXcgKnYgPSBnZXRPdXRlclZpZXcoKTsKICAgICBOU1JlY3QgZiA9
IHJlY3Q7CiAgICAgaWYgKCFOU0VxdWFsUmVjdHMoZiwgW3YgZnJhbWVdKSkgewogICAgICAgICBb
diBzZXRGcmFtZTpmXTsKICAgICAgICAgW3Ygc2V0TmVlZHNEaXNwbGF5OiBOT107CiAgICAgfQot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiBOU1ZpZXcqIFdpZGdldDo6Z2V0T3V0ZXJWaWV3KCkgY29uc3QKQEAgLTE2MCw5
ICsxNjAsOSBAQCB2b2lkIFdpZGdldDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBJ
bnRSZWN0JiByLCBTZWN1cml0eU9yaWdpblBhaW50UG9saQogICAgIE5TUmVjdCB2aWV3Qm91bmRz
ID0gW3ZpZXcgYm91bmRzXTsKICAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY2dDb250ZXh0LCB2
aWV3RnJhbWUub3JpZ2luLnggLSB2aWV3Qm91bmRzLm9yaWdpbi54LCB2aWV3RnJhbWUub3JpZ2lu
LnkgLSB2aWV3Qm91bmRzLm9yaWdpbi55KTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbdmlldyBkaXNwbGF5
UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVjdDpyIGZyb21WaWV3Olt2aWV3IHN1
cGVydmlld11dIGluQ29udGV4dDpjZ0NvbnRleHRdOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgQ0dDb250ZXh0UmVz
dG9yZUdTdGF0ZShjZ0NvbnRleHQpOwogfQpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgV2lkZ2V0
OjpzZXRJc1NlbGVjdGVkKGJvb2wgLyppc1NlbGVjdGVkKi8pCiAKIHZvaWQgV2lkZ2V0OjphZGRU
b1N1cGVydmlldyhOU1ZpZXcgKnZpZXcpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgQVNTRVJUKHZpZXcp
OwogICAgIE5TVmlldyAqc3VidmlldyA9IGdldE91dGVyVmlldygpOwpAQCAtMTg2LDE0ICsxODYs
MTQgQEAgdm9pZCBXaWRnZXQ6OmFkZFRvU3VwZXJ2aWV3KE5TVmlldyAqdmlldykKICAgICBpZiAo
W3N1YnZpZXcgc3VwZXJ2aWV3XSAhPSB2aWV3KQogICAgICAgICBbdmlldyBhZGRTdWJ2aWV3OnN1
YnZpZXddOwogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgV2lkZ2V0OjpyZW1vdmVGcm9tU3VwZXJ2aWV3KCkK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgc2FmZVJlbW92ZUZyb21TdXBlcnZpZXcoZ2V0T3V0ZXJWaWV3KCkp
OwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogfQogCiBJbnRSZWN0IFdpZGdldDo6Y29udmVydEZyb21Sb290VG9Db250YWluaW5n
V2luZG93KGNvbnN0IFdpZGdldCogcm9vdFdpZGdldCwgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAg
LTIwMSwxMyArMjAxLDEzIEBAIEludFJlY3QgV2lkZ2V0Ojpjb252ZXJ0RnJvbVJvb3RUb0NvbnRh
aW5pbmdXaW5kb3coY29uc3QgV2lkZ2V0KiByb290V2lkZ2V0LCBjb25zCiAgICAgaWYgKCFyb290
V2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKQogICAgICAgICByZXR1cm4gcmVjdDsKIAotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICBBU1NFUlQoW3Jvb3RXaWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkgaXNLaW5kT2ZDbGFz
czpbTlNTY3JvbGxWaWV3IGNsYXNzXV0pOwogICAgIFdBS1Njcm9sbFZpZXcgKnZpZXcgPSBzdGF0
aWNfY2FzdDxXQUtTY3JvbGxWaWV3ICo+KHJvb3RXaWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkpOwog
ICAgIGlmIChXQUtWaWV3ICpkb2N1bWVudFZpZXcgPSBbdmlldyBkb2N1bWVudFZpZXddKQogICAg
ICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbZG9jdW1lbnRWaWV3IGNvbnZlcnRSZWN0OnJl
Y3QgdG9WaWV3Om5pbF0pOwogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFt2aWV3IGNvbnZl
cnRSZWN0OnJlY3QgdG9WaWV3Om5pbF0pOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHJlY3Q7CiB9CkBA
IC0yMTcsMTMgKzIxNywxMyBAQCBJbnRSZWN0IFdpZGdldDo6Y29udmVydEZyb21Db250YWluaW5n
V2luZG93VG9Sb290KGNvbnN0IFdpZGdldCogcm9vdFdpZGdldCwgY29ucwogICAgIGlmICghcm9v
dFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIHJlY3Q7CiAKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgQVNTRVJUKFtyb290V2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpIGlzS2luZE9mQ2xh
c3M6W05TU2Nyb2xsVmlldyBjbGFzc11dKTsKICAgICBXQUtTY3JvbGxWaWV3ICp2aWV3ID0gc3Rh
dGljX2Nhc3Q8V0FLU2Nyb2xsVmlldyAqPihyb290V2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKTsK
ICAgICBpZiAoV0FLVmlldyAqZG9jdW1lbnRWaWV3ID0gW3ZpZXcgZG9jdW1lbnRWaWV3XSkKICAg
ICAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW2RvY3VtZW50VmlldyBjb252ZXJ0UmVjdDpy
ZWN0IGZyb21WaWV3Om5pbF0pOwogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFt2aWV3IGNv
bnZlcnRSZWN0OnJlY3QgZnJvbVZpZXc6bmlsXSk7Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gcmVjdDsK
IH0KQEAgLTIzMyw3ICsyMzMsNyBAQCBJbnRQb2ludCBXaWRnZXQ6OmNvbnZlcnRGcm9tUm9vdFRv
Q29udGFpbmluZ1dpbmRvdyhjb25zdCBXaWRnZXQqIHJvb3RXaWRnZXQsIGNvbgogICAgIGlmICgh
cm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIHBvaW50OwogCi0g
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogICAgIEFTU0VSVChbcm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSBpc0tpbmRP
ZkNsYXNzOltOU1Njcm9sbFZpZXcgY2xhc3NdXSk7CiAgICAgV0FLU2Nyb2xsVmlldyAqdmlldyA9
IHN0YXRpY19jYXN0PFdBS1Njcm9sbFZpZXcgKj4ocm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQo
KSk7CiAgICAgTlNQb2ludCBjb252ZXJ0ZWRQb2ludDsKQEAgLTI0Miw3ICsyNDIsNyBAQCBJbnRQ
b2ludCBXaWRnZXQ6OmNvbnZlcnRGcm9tUm9vdFRvQ29udGFpbmluZ1dpbmRvdyhjb25zdCBXaWRn
ZXQqIHJvb3RXaWRnZXQsIGNvbgogICAgIGVsc2UKICAgICAgICAgY29udmVydGVkUG9pbnQgPSBb
dmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQgdG9WaWV3Om5pbF07CiAgICAgcmV0dXJuIEludFBvaW50
KHJvdW5kZihjb252ZXJ0ZWRQb2ludC54KSwgcm91bmRmKGNvbnZlcnRlZFBvaW50LnkpKTsKLSAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKIAogICAgIHJldHVybiBwb2ludDsKIH0KQEAgLTI1Miw3ICsyNTIsNyBAQCBJbnRQb2ludCBX
aWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvd1RvUm9vdChjb25zdCBXaWRnZXQqIHJv
b3RXaWRnZXQsIGNvbgogICAgIGlmICghcm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkKICAg
ICAgICAgcmV0dXJuIHBvaW50OwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIEFTU0VSVChbcm9vdFdpZGdldC0+
cGxhdGZvcm1XaWRnZXQoKSBpc0tpbmRPZkNsYXNzOltOU1Njcm9sbFZpZXcgY2xhc3NdXSk7CiAg
ICAgV0FLU2Nyb2xsVmlldyAqdmlldyA9IHN0YXRpY19jYXN0PFdBS1Njcm9sbFZpZXcgKj4ocm9v
dFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSk7CiAgICAgTlNQb2ludCBjb252ZXJ0ZWRQb2ludDsK
QEAgLTI2MSw3ICsyNjEsNyBAQCBJbnRQb2ludCBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1dpbmRvd1RvUm9vdChjb25zdCBXaWRnZXQqIHJvb3RXaWRnZXQsIGNvbgogICAgIGVsc2UKICAg
ICAgICAgY29udmVydGVkUG9pbnQgPSBJbnRQb2ludChbdmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQg
ZnJvbVZpZXc6bmlsXSk7CiAgICAgcmV0dXJuIEludFBvaW50KHJvdW5kZihjb252ZXJ0ZWRQb2lu
dC54KSwgcm91bmRmKGNvbnZlcnRlZFBvaW50LnkpKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJldHVybiBwb2lu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCmluZGV4IDkzZDZh
OWE2NWM4YzZiMTVlOGQ1YWFhMGNhYzY3MjdmZjUzYzYxZWIuLmNhMDQ4MDk3OGM0MDRlYTBhZjNh
OTg0N2M2YjcyZDRmMDkzM2Y4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNv
ck1hYy5tbQpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNy
ZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAgICAg
YXV0byBuc0ltYWdlID0gaW1hZ2UtPnNuYXBzaG90TlNJbWFnZSgpOwogICAgIGlmICghbnNJbWFn
ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAjaWYgRU5BQkxFKE1PVVNF
X0NVUlNPUl9TQ0FMRSkKICAgICBOU1NpemUgc2l6ZSA9IE5TTWFrZVNpemUoaW1hZ2UtPndpZHRo
KCkgLyBzY2FsZSwgaW1hZ2UtPmhlaWdodCgpIC8gc2NhbGUpOwpAQCAtMjI4LDcgKzIyOCw3IEBA
IHN0YXRpYyBSZXRhaW5QdHI8TlNDdXJzb3I+IGNyZWF0ZUN1c3RvbUN1cnNvcihJbWFnZSogaW1h
Z2UsIGNvbnN0IEludFBvaW50JiBob3RTCiAjZW5kaWYKIAogICAgIHJldHVybiBhZG9wdE5TKFtb
TlNDdXJzb3IgYWxsb2NdIGluaXRXaXRoSW1hZ2U6bnNJbWFnZS5nZXQoKSBob3RTcG90OmhvdFNw
b3RdKTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICNlbmRpZiAvLyBFTkFCTEUoQ1VT
VE9NX0NVUlNPUl9TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDYxMThmNzZhMjIyM2NjOGYyOWVmY2ZlMDliY2UxYTlj
NDUxNWZkYjEuLjFlMjQzNTJiZmQ1MGZmZWYyYjM2MmNlODJmM2I3MjFmNDViZWU3MjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAg
LTQ0MCw5ICs0NDAsOSBAQCAtICh2b2lkKXNldEN1cnJlbnRQcm9ncmVzczooTlNUaW1lciAqKXRp
bWVyCiAKIC0gKHZvaWQpaW52YWxpZGF0ZQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbc2VsZiBzdG9wQW5p
bWF0aW9uXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKICAgICBfc2Nyb2xsYmFyID0gMDsKIH0KIApAQCAtNDg3LDEyICs0ODcs
MTIgQEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxiYXI6KFdlYkNvcmU6OlNjcm9sbGJhciopc2Nyb2xs
YmFyCiAKIC0gKHZvaWQpY2FuY2VsQW5pbWF0aW9ucwogewotICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbX2tub2JB
bHBoYUFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXTsKICAgICBbX3RyYWNrQWxwaGFBbmltYXRpb24g
c3RvcEFuaW1hdGlvbl07CiAgICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBzdG9wQW5p
bWF0aW9uXTsKICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25BbmltYXRpb24gc3RvcEFuaW1hdGlv
bl07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiB9CiAKIC0gKE5ha2VkUHRyPFNjcm9sbEFuaW1hdG9yTWFjPilzY3JvbGxBbmlt
YXRvcgpAQCAtNzEwLDEyICs3MTAsMTIgQEAgLSAodm9pZClzY3JvbGxlckltcDooTlNTY3JvbGxl
ckltcCAqKXNjcm9sbGVySW1wIG92ZXJsYXlTY3JvbGxlclN0YXRlQ2hhbmdlZFRvOigKIC0gKHZv
aWQpaW52YWxpZGF0ZQogewogICAgIF9zY3JvbGxiYXIgPSAwOwotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbX2tu
b2JBbHBoYUFuaW1hdGlvbiBpbnZhbGlkYXRlXTsKICAgICBbX3RyYWNrQWxwaGFBbmltYXRpb24g
aW52YWxpZGF0ZV07CiAgICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBpbnZhbGlkYXRl
XTsKICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25BbmltYXRpb24gaW52YWxpZGF0ZV07Ci0gICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiB9CiAKIEBlbmQKQEAgLTc0NSwxMyArNzQ1LDEzIEBAIFNjcm9sbEFuaW1hdG9yTWFjOjpTY3Jv
bGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAKIFNjcm9sbEFu
aW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9zY3Jv
bGxlckltcFBhaXJEZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKICAgICBbbV9zY3JvbGxlckltcFBhaXIg
c2V0RGVsZWdhdGU6bmlsXTsKICAgICBbbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBp
bnZhbGlkYXRlXTsKICAgICBbbV92ZXJ0aWNhbFNjcm9sbGVySW1wRGVsZWdhdGUgaW52YWxpZGF0
ZV07CiAgICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgaW52YWxpZGF0ZV07Ci0g
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CiAKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQppbmRleCAzMzQx
ZDRkYmU4YjUzNmVmYWE5Njg3OTVhNDY5NGI5NWE4MWVmNTI0Li5hMmFiODJjYjMyNWQzYjExNjI0
ZmRmZWY5MDU5NzAzNDZjYTIxNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsVmlld01hYy5tbQpAQCAtNTYsMTUgKzU2LDE1IEBAIGlubGluZSBOU1Njcm9sbFZpZXc8
V2ViQ29yZUZyYW1lU2Nyb2xsVmlldz4gKlNjcm9sbFZpZXc6OnNjcm9sbFZpZXcoKSBjb25zdAog
CiBOU1ZpZXcgKlNjcm9sbFZpZXc6OmRvY3VtZW50VmlldygpIGNvbnN0CiB7Ci0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIHJldHVybiBbc2Nyb2xsVmlldygpIGRvY3VtZW50Vmlld107Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJu
IG5pbDsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUFkZENoaWxkKFdpZGdldCogY2hp
bGQpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIE5TVmlldyAqcGFyZW50VmlldyA9IGRvY3VtZW50Vmlldygp
OwogICAgIE5TVmlldyAqY2hpbGRWaWV3ID0gY2hpbGQtPmdldE91dGVyVmlldygpOwogICAgIEFT
U0VSVCghW3BhcmVudFZpZXcgaXNEZXNjZW5kYW50T2Y6Y2hpbGRWaWV3XSk7CkBAIC03Niw3ICs3
Niw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1BZGRDaGlsZChXaWRnZXQqIGNoaWxkKQog
ICAgIGlmIChbY2hpbGRWaWV3IHN1cGVydmlld10gIT0gcGFyZW50VmlldykKICAgICAgICAgW3Bh
cmVudFZpZXcgYWRkU3VidmlldzpjaGlsZFZpZXddOwogICAgIFt3aW5kb3cgX3NldE5lZWRzVG9S
ZXNldERyYWdNYXJnaW5zOnJlc2V0RHJhZ01hcmdpbnNdOwotICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFNjcm9s
bFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkKQEAgLTg2LDI1ICs4Niwy
NSBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0KiBjaGlsZCkK
IAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNldFNjcm9sbGJhck1vZGVzKCkKIHsKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgW3Njcm9sbFZpZXcoKSBzZXRTY3JvbGxpbmdNb2RlczptX2hvcml6b250YWxTY3Jv
bGxiYXJNb2RlIHZlcnRpY2FsOm1fdmVydGljYWxTY3JvbGxiYXJNb2RlIGFuZExvY2s6Tk9dOwot
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsYmFyTW9kZXMoU2Nyb2xs
YmFyTW9kZSYgaG9yaXpvbnRhbCwgU2Nyb2xsYmFyTW9kZSYgdmVydGljYWwpIGNvbnN0CiB7Ci0g
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogICAgIFtzY3JvbGxWaWV3KCkgc2Nyb2xsaW5nTW9kZXM6Jmhvcml6b250YWwgdmVy
dGljYWw6JnZlcnRpY2FsXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNl
dENhbkJsaXRPblNjcm9sbChib29sIGNhbkJsaXRPblNjcm9sbCkKIHsKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBbW3Njcm9sbFZpZXcoKSBj
b250ZW50Vmlld10gc2V0Q29waWVzT25TY3JvbGw6Y2FuQmxpdE9uU2Nyb2xsXTsKICAgICBBTExP
V19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogYm9vbCBTY3JvbGxWaWV3
OjpwbGF0Zm9ybUNhbkJsaXRPblNjcm9sbCgpIGNvbnN0CkBAIC0xMTYsMTYgKzExNiwxNiBAQCBi
b29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtQ2FuQmxpdE9uU2Nyb2xsKCkgY29uc3QKIAogZmxvYXQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1Ub3BDb250ZW50SW5zZXQoKSBjb25zdAogewotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICByZXR1cm4gc2Nyb2xsVmlldygpLmNvbnRlbnRJbnNldHMudG9wOwotICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAg
cmV0dXJuIDA7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRUb3BDb250ZW50SW5z
ZXQoZmxvYXQgdG9wQ29udGVudEluc2V0KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBpZiAodG9wQ29udGVu
dEluc2V0KQogICAgICAgICBzY3JvbGxWaWV3KCkuYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50
SW5zZXRzID0gTk87CiAgICAgZWxzZQpAQCAtMTM0LDE5ICsxMzQsMTkgQEAgdm9pZCBTY3JvbGxW
aWV3OjpwbGF0Zm9ybVNldFRvcENvbnRlbnRJbnNldChmbG9hdCB0b3BDb250ZW50SW5zZXQpCiAg
ICAgTlNFZGdlSW5zZXRzIGNvbnRlbnRJbnNldHMgPSBzY3JvbGxWaWV3KCkuY29udGVudEluc2V0
czsKICAgICBjb250ZW50SW5zZXRzLnRvcCA9IHRvcENvbnRlbnRJbnNldDsKICAgICBzY3JvbGxW
aWV3KCkuY29udGVudEluc2V0cyA9IGNvbnRlbnRJbnNldHM7Ci0gICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIEludFJlY3Qg
U2Nyb2xsVmlldzo6cGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xs
YmFycykgY29uc3QKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qg
PSBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ09ic2N1cmVkQXJlYShpbmNsdWRl
U2Nyb2xsYmFycyk7CiAKICAgICB2aXNpYmxlQ29udGVudFJlY3QubW92ZShzY3JvbGxWaWV3KCku
Y29udGVudEluc2V0cy5sZWZ0LCBzY3JvbGxWaWV3KCkuY29udGVudEluc2V0cy50b3ApOwogICAg
IHZpc2libGVDb250ZW50UmVjdC5jb250cmFjdChzY3JvbGxWaWV3KCkuY29udGVudEluc2V0cy5s
ZWZ0ICsgc2Nyb2xsVmlldygpLmNvbnRlbnRJbnNldHMucmlnaHQsIHNjcm9sbFZpZXcoKS5jb250
ZW50SW5zZXRzLnRvcCArIHNjcm9sbFZpZXcoKS5jb250ZW50SW5zZXRzLmJvdHRvbSk7CiAKICAg
ICByZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0OwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIEludFJlY3Qo
KTsKIH0KQEAgLTE1OCw3ICsxNTgsNyBAQCBJbnRTaXplIFNjcm9sbFZpZXc6OnBsYXRmb3JtVmlz
aWJsZUNvbnRlbnRTaXplKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CiAKIEludFJlY3Qg
U2Nyb2xsVmlldzo6cGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdPYnNjdXJlZEFy
ZWEoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgSW50UmVj
dCB2aXNpYmxlQ29udGVudFJlY3RJbmNsdWRpbmdPYnNjdXJlZEFyZWEgPSBlbmNsb3NpbmdJbnRS
ZWN0KFtzY3JvbGxWaWV3KCkgZG9jdW1lbnRWaXNpYmxlUmVjdF0pOwogCiAgICAgaWYgKGluY2x1
ZGVTY3JvbGxiYXJzKSB7CkBAIC0xNjcsNyArMTY3LDcgQEAgSW50UmVjdCBTY3JvbGxWaWV3Ojpw
bGF0Zm9ybVZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ09ic2N1cmVkQXJlYShib29sIGluY2x1
ZGUKICAgICB9CiAKICAgICByZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nT2JzY3Vy
ZWRBcmVhOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KQEAgLTE4NCwyNSArMTg0
LDI1IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Vbm9ic2N1cmVkQ29udGVudFJlY3Qo
VmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvCiAKIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZv
cm1TZXRDb250ZW50c1NpemUoKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBpbnQgdyA9IG1fY29udGVudHNT
aXplLndpZHRoKCk7CiAgICAgaW50IGggPSBtX2NvbnRlbnRzU2l6ZS5oZWlnaHQoKTsKICAgICBM
T0coRnJhbWVzLCAiJXAgJUAgYXQgdyAlZCBoICVkXG4iLCBkb2N1bWVudFZpZXcoKSwgWyhpZClb
ZG9jdW1lbnRWaWV3KCkgY2xhc3NdIGNsYXNzTmFtZV0sIHcsIGgpOyAgICAgICAgICAgIAogICAg
IFtkb2N1bWVudFZpZXcoKSBzZXRGcmFtZVNpemU6TlNNYWtlU2l6ZShzdGQ6Om1heCgwLCB3KSwg
c3RkOjptYXgoMCwgaCkpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNl
dFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wgcmVwYWludE9uVW5zdXBwcmVzcykKIHsKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgW3Njcm9sbFZpZXcoKSBzZXRTY3JvbGxCYXJzU3VwcHJlc3NlZDptX3Njcm9sbGJh
cnNTdXBwcmVzc2VkCiAgICAgICAgICAgICAgICAgICAgICAgcmVwYWludE9uVW5zdXBwcmVzczpy
ZXBhaW50T25VbnN1cHByZXNzXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9y
bVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkKIHsKLSAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAgICAgTlNQb2ludCBmbG9hdFBvaW50ID0gc2Nyb2xsUG9pbnQ7CiAgICAgTlNQb2ludCB0
ZW1wUG9pbnQgPSB7IHN0ZDo6bWF4KC1bc2Nyb2xsVmlldygpIHNjcm9sbE9yaWdpbl0ueCwgZmxv
YXRQb2ludC54KSwgc3RkOjptYXgoLVtzY3JvbGxWaWV3KCkgc2Nyb2xsT3JpZ2luXS55LCBmbG9h
dFBvaW50LnkpIH07ICAvLyBEb24ndCB1c2UgTlNNYWtlUG9pbnQgdG8gd29yayBhcm91bmQgNDIx
MzMxNC4KIApAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRT
Y3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9pbnQpCiAgICAgdGVtcFBvaW50
LnkgPSB0ZW1wUG9pbnQueSAtIHNjcm9sbFZpZXcoKS5jb250ZW50SW5zZXRzLnRvcDsKIAogICAg
IFtkb2N1bWVudFZpZXcoKSBzY3JvbGxQb2ludDp0ZW1wUG9pbnRdOwotICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBib29s
IFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkpCkBAIC0yMjQsMTggKzIyNCwxOCBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Ny
b2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpCiAKIHZvaWQgU2Nyb2xsVmll
dzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0KQog
ewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKICAgICBOU1ZpZXcgKnZpZXcgPSBkb2N1bWVudFZpZXcoKTsKICAgICBbdmll
dyBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6cmVjdF07CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogLy8gIkNvbnRhaW5p
bmcgV2luZG93IiBtZWFucyB0aGUgTlNXaW5kb3cncyBjb29yZCBzeXN0ZW0sIHdoaWNoIGlzIG9y
aWdpbiBsb3dlciBsZWZ0CiAKIEludFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1Rv
U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmIChO
U1ZpZXcqIGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3VtZW50VmlldygpKSB7CiAgICAgICAgIE5T
UmVjdCB0ZW1wUmVjdCA9IHJlY3Q7CiAgICAgICAgIHRlbXBSZWN0ID0gW2RvY3VtZW50VmlldyBj
b252ZXJ0UmVjdDp0ZW1wUmVjdCB0b1ZpZXc6bmlsXTsKQEAgLTI0NCwyMCArMjQ0LDIwIEBAIElu
dFJlY3QgU2Nyb2xsVmlldzo6cGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKGNvbnN0IEludFJlY3Qm
IHJlY3QpIGNvbnN0CiAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiAgICAgfQotICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKIEludFBvaW50IFNjcm9sbFZpZXc6OnBsYXRmb3Jt
U2NyZWVuVG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIGlmIChOU1ZpZXcqIGRvY3VtZW50VmlldyA9IHRoaXMtPmRvY3VtZW50VmlldygpKSB7
CiAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIE5T
UG9pbnQgd2luZG93Q29vcmQgPSBbW2RvY3VtZW50VmlldyB3aW5kb3ddIGNvbnZlcnRTY3JlZW5U
b0Jhc2U6IHBvaW50XTsKICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgICAgIHJldHVybiBJbnRQb2ludChbZG9jdW1lbnRWaWV3IGNvbnZlcnRQb2ludDp3aW5k
b3dDb29yZCBmcm9tVmlldzpuaWxdKTsKICAgICB9Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIEludFBvaW50
KCk7CiB9CiAKQEAgLTI4NSw5ICsyODUsOSBAQCB2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSBvdmVybGF5UwogCiB2
b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiBv
cmlnaW4sIGJvb2wgdXBkYXRlUG9zaXRpb25BdEFsbCwgYm9vbCB1cGRhdGVQb3NpdGlvblN5bmNo
cm9ub3VzbHkpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFtzY3JvbGxWaWV3KCkgc2V0U2Nyb2xsT3JpZ2lu
Om9yaWdpbiB1cGRhdGVQb3NpdGlvbkF0QWxsOnVwZGF0ZVBvc2l0aW9uQXRBbGwgaW1tZWRpYXRl
bHk6dXBkYXRlUG9zaXRpb25TeW5jaHJvbm91c2x5XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tCmluZGV4IDZjZGMxZWRjMDQzZDVlOTIwNGI0OTViNzRhNjQwYjRkYzMwMGMwNmUu
LjdlYmU3NWQ2YTc2ZDk5MTAwMjUwYWU3NzhiZWYyOGIwZjQwNmE3OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTI0NSwxMSAr
MjQ1LDExIEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnByZWZlcmVuY2VzQ2hhbmdlZCgpCiAK
IGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplIGNvbnRyb2xTaXplLCBTY3JvbGxiYXJFeHBhbnNpb25TdGF0ZSBleHBhbnNpb25TdGF0
ZSkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJJbXAgPSBbTlNTY3Jv
bGxlckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpTY3JvbGxlclN0eWxlOjpyZWNvbW1lbmRlZFNj
cm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpzY3JvbGxiYXJDb250cm9sU2l6ZVRvTlNDb250cm9s
U2l6ZShjb250cm9sU2l6ZSkgaG9yaXpvbnRhbDpOTyByZXBsYWNpbmdTY3JvbGxlckltcDpuaWxd
OwogICAgIFtzY3JvbGxlckltcCBzZXRFeHBhbmRlZDooZXhwYW5zaW9uU3RhdGUgPT0gU2Nyb2xs
YmFyRXhwYW5zaW9uU3RhdGU6OkV4cGFuZGVkKV07CiAgICAgcmV0dXJuIFtzY3JvbGxlckltcCB0
cmFja0JveFdpZHRoXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6dXNlc092
ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIFNjcm9sbGJh
clRoZW1lTWFjOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnNDaGFuZ2VkKCkKIAogdm9pZCBTY3JvbGxi
YXJUaGVtZU1hYzo6dXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhciYgc2Nyb2xs
YmFyKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gcGFpbnRlckZv
clNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIHN3aXRjaCAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkpIHsKICAgICBjYXNlIFNjcm9sbGJhck92ZXJs
YXlTdHlsZURlZmF1bHQ6CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1h
Yzo6dXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhciYgc2Nyb2xsYmFyKQogICAg
ICAgICBbcGFpbnRlciBzZXRLbm9iU3R5bGU6TlNTY3JvbGxlcktub2JTdHlsZUxpZ2h0XTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50
IFNjcm9sbGJhclRoZW1lTWFjOjpidXR0b25zUGxhY2VtZW50KCkgY29uc3QKQEAgLTQzNyw5ICs0
MzcsOSBAQCBJbnRSZWN0IFNjcm9sbGJhclRoZW1lTWFjOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIsIGJvb2wgcGFpbnRpbmcpCiAKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6bWluaW11
bVRodW1iTGVuZ3RoKFNjcm9sbGJhciYgc2Nyb2xsYmFyKQogewotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1
cm4gW3Njcm9sbGJhck1hcCgpLmdldCgmc2Nyb2xsYmFyKSBrbm9iTWluTGVuZ3RoXTsKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogc3RhdGljIGJvb2wgc2hvdWxkQ2VudGVyT25UaHVtYihjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2dCkKQEAgLTQ5NiwxNCArNDk2LDE0IEBAIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6
c2Nyb2xsYmFyUGFydFRvSElQcmVzc2VkU3RhdGUoU2Nyb2xsYmFyUGFydCBwYXJ0KQogCiB2b2lk
IFNjcm9sbGJhclRoZW1lTWFjOjp1cGRhdGVFbmFibGVkU3RhdGUoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIFtzY3JvbGxiYXJNYXAoKS5nZXQoJnNjcm9sbGJhcikgc2V0
RW5hYmxlZDpzY3JvbGxiYXIuZW5hYmxlZCgpXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBTY3JvbGxiYXJU
aGVtZU1hYzo6c2V0UGFpbnRDaGFyYWN0ZXJpc3RpY3NGb3JTY3JvbGxiYXIoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBwYWlu
dGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAKICAgICBmbG9hdCB2YWx1ZTsKQEAgLTUxOCwx
MiArNTE4LDEyIEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFBhaW50Q2hhcmFjdGVyaXN0
aWNzRm9yU2Nyb2xsYmFyKFNjcm9sbGJhciYgc2Nyb2xsYmFyCiAgICAgW3BhaW50ZXIgc2V0UHJl
c2VudGF0aW9uVmFsdWU6dmFsdWVdOwogI2VuZGlmCiAgICAgW3BhaW50ZXIgc2V0S25vYlByb3Bv
cnRpb246cHJvcG9ydGlvbl07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHN0YXRpYyB2b2lkIHNjcm9sbGVySW1wUGFp
bnQoTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJJbXAsIGJvb2wgZW5hYmxlZCkKIHsKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgLy8gVXNlIHJlY3RGb3JQYXJ0OiBoZXJlOyBpdCB3aWxsIHRha2UgdGhlIGV4cGFuc2lv
biB0cmFuc2l0aW9uIHByb2dyZXNzIGludG8gYWNjb3VudC4KICAgICBOU1JlY3QgdHJhY2tSZWN0
ID0gW3Njcm9sbGVySW1wIHJlY3RGb3JQYXJ0Ok5TU2Nyb2xsZXJLbm9iU2xvdF07CiAgICAgW3Nj
cm9sbGVySW1wIGRyYXdLbm9iU2xvdEluUmVjdDp0cmFja1JlY3QgaGlnaGxpZ2h0Ok5PXTsKQEAg
LTUzMiw3ICs1MzIsNyBAQCBzdGF0aWMgdm9pZCBzY3JvbGxlckltcFBhaW50KE5TU2Nyb2xsZXJJ
bXAgKnNjcm9sbGVySW1wLCBib29sIGVuYWJsZWQpCiAgICAgLy8gY2FsbCBkcmF3S25vYi4KICAg
ICBpZiAoZW5hYmxlZCkKICAgICAgICAgW3Njcm9sbGVySW1wIGRyYXdLbm9iXTsKLSAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0K
IAogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKQEAgLTU3
MywxMCArNTczLDEwIEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gbGluZW5CYWNrZ3Jv
dW5kQ29sb3IoKQogewogICAgIE5TSW1hZ2UgKmltYWdlID0gbmlsOwogICAgIENHSW1hZ2VSZWYg
Y2dJbWFnZSA9IG51bGxwdHI7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGltYWdlID0gW05TQ29sb3IgX2xpbmVu
UGF0dGVybkltYWdlXTsKICAgICBjZ0ltYWdlID0gW2ltYWdlIENHSW1hZ2VGb3JQcm9wb3NlZFJl
Y3Q6TlVMTCBjb250ZXh0Ok5VTEwgaGludHM6bmlsXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKICAgICBpZiAoIWNn
SW1hZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9XaWRnZXRNYWMubW0KaW5kZXggMzgyNDgzNWE0ZDU5YmY3NDI0YWRhMDY0ZWJhNjg4ZmZkNzE0
YjljZC4uN2MyY2IxMGJmNjNhODAyYTgxYmZlZTEzZjkxMzAxNTk1ZDJmMDkwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2lkZ2V0TWFjLm1tCkBAIC05NSwxNCArOTUsMTQgQEAgdm9p
ZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBpZiAoIWZyYW1lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgCiAgICAgLy8gQ2FsbCB0aGlzIGV2ZW4gd2hlbiB0aGVy
ZSBpcyBubyBwbGF0Zm9ybVdpZGdldCgpLiBXSzIgd2lsbCBmb2N1cyBvbiB0aGUgd2lkZ2V0IGlu
IHRoZSBVSVByb2Nlc3MuCiAgICAgTlNWaWV3ICp2aWV3ID0gW3BsYXRmb3JtV2lkZ2V0KCkgX3dl
YmNvcmVfZWZmZWN0aXZlRmlyc3RSZXNwb25kZXJdOwogICAgIGlmIChQYWdlKiBwYWdlID0gZnJh
bWUtPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+Y2hyb21lKCkuZm9jdXNOU1ZpZXcodmlldyk7CiAK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogdm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikK
QEAgLTEyMCw5ICsxMjAsOSBAQCB2b2lkIFdpZGdldDo6c2hvdygpCiAKICAgICBzZXRTZWxmVmlz
aWJsZSh0cnVlKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbZ2V0T3V0ZXJWaWV3KCkgc2V0SGlkZGVuOk5P
XTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIH0KIAogdm9pZCBXaWRnZXQ6OmhpZGUoKQpAQCAtMTMyLDkgKzEzMiw5IEBAIHZv
aWQgV2lkZ2V0OjpoaWRlKCkKIAogICAgIHNldFNlbGZWaXNpYmxlKGZhbHNlKTsKIAotICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlMKICAgICBbZ2V0T3V0ZXJWaWV3KCkgc2V0SGlkZGVuOllFU107Ci0gICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIEludFJl
Y3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdApAQCAtMTQyLDkgKzE0Miw5IEBAIEludFJlY3Qg
V2lkZ2V0OjpmcmFtZVJlY3QoKSBjb25zdAogICAgIGlmICghcGxhdGZvcm1XaWRnZXQoKSkKICAg
ICAgICAgcmV0dXJuIG1fZnJhbWU7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIGVuY2xvc2luZ0lu
dFJlY3QoW2dldE91dGVyVmlldygpIGZyYW1lXSk7Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgCiAgICAgcmV0dXJuIG1f
ZnJhbWU7CiB9CkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBXaWRnZXQ6OnNldEZyYW1lUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIG1fZnJhbWUgPSByZWN0OwogCi0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
CiAgICAgTlNWaWV3ICpvdXRlclZpZXcgPSBnZXRPdXRlclZpZXcoKTsKICAgICBpZiAoIW91dGVy
VmlldykKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0
IEludFJlY3QmIHJlY3QpCiAgICAgICAgIG91dGVyVmlldy5uZWVkc0Rpc3BsYXkgPSBOTzsKICAg
ICB9CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKIH0KIAogTlNWaWV3ICpXaWRnZXQ6OmdldE91dGVyVmlldygpIGNvbnN0CkBA
IC0yMTIsOSArMjEyLDkgQEAgdm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgcCwg
Y29uc3QgSW50UmVjdCYgciwgU2VjdXJpdHlPcmlnaW5QYWludFBvbGkKICAgICBpZiAoY3VycmVu
dENvbnRleHQgPT0gW1t2aWV3IHdpbmRvd10gZ3JhcGhpY3NDb250ZXh0XSB8fCAhW2N1cnJlbnRD
b250ZXh0IGlzRHJhd2luZ1RvU2NyZWVuXSkgewogICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICAgICAgLy8gVGhpcyBpcyB0aGUgY29tbW9uIGNhc2Ugb2YgZHJh
d2luZyBpbnRvIGEgd2luZG93IG9yIGFuIGluY2x1c2l2ZSBsYXllciwgb3IgcHJpbnRpbmcuCi0g
ICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgICAgIFt2aWV3IGRpc3BsYXlSZWN0SWdub3JpbmdPcGFjaXR5
Olt2aWV3IGNvbnZlcnRSZWN0OnIgZnJvbVZpZXc6W3ZpZXcgc3VwZXJ2aWV3XV1dOwotICAgICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI1MSwxMiArMjUxLDEyIEBAIHZv
aWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IEludFJlY3QmIHIsIFNl
Y3VyaXR5T3JpZ2luUGFpbnRQb2xpCiAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4
dCwgdmlld0ZyYW1lLm9yaWdpbi54IC0gdmlld0JvdW5kcy5vcmlnaW4ueCwgdmlld0ZyYW1lLm9y
aWdpbi55ICsgdmlld0ZyYW1lLnNpemUuaGVpZ2h0ICsgdmlld0JvdW5kcy5vcmlnaW4ueSk7CiAg
ICAgQ0dDb250ZXh0U2NhbGVDVE0oY2dDb250ZXh0LCAxLCAtMSk7CiAKLSAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
ewogICAgICAgICBOU0dyYXBoaWNzQ29udGV4dCAqbnNDb250ZXh0ID0gW05TR3JhcGhpY3NDb250
ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhDR0NvbnRleHQ6Y2dDb250ZXh0IGZsaXBwZWQ6Tk9dOwog
ICAgICAgICBbdmlldyBkaXNwbGF5UmVjdElnbm9yaW5nT3BhY2l0eTpbdmlldyBjb252ZXJ0UmVj
dDpyIGZyb21WaWV3Olt2aWV3IHN1cGVydmlld11dIGluQ29udGV4dDpuc0NvbnRleHRdOwogICAg
IH0KLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKIApAQCAt
MjY4LDE5ICsyNjgsMTkgQEAgdm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCBpc1NlbGVj
dGVkKQogewogICAgIE5TVmlldyAqdmlldyA9IHBsYXRmb3JtV2lkZ2V0KCk7CiAKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgaWYgKFt2aWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUGx1Z0luU2V0
SXNTZWxlY3RlZDopXSkKICAgICAgICAgW3ZpZXcgd2ViUGx1Z0luU2V0SXNTZWxlY3RlZDppc1Nl
bGVjdGVkXTsKICAgICBlbHNlIGlmIChbdmlldyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNldElzU2VsZWN0ZWQ6KV0pCiAgICAgICAgIFt2aWV3IHNldElzU2VsZWN0ZWQ6aXNTZWxlY3Rl
ZF07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiB9CiAKIHZvaWQgV2lkZ2V0OjpyZW1vdmVGcm9tU3VwZXJ2aWV3KCkKIHsKLSAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAgICAgc2FmZVJlbW92ZUZyb21TdXBlcnZpZXcoZ2V0T3V0ZXJWaWV3KCkpOwotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogfQogCiAvLyBUaGVzZSBhcmUgaGVyZSB0byBkZWFsIHdpdGggZmxpcHBlZCBjb29yZHMgb24g
TWFjLgpAQCAtMjg5LDkgKzI4OSw5IEBAIEludFJlY3QgV2lkZ2V0Ojpjb252ZXJ0RnJvbVJvb3RU
b0NvbnRhaW5pbmdXaW5kb3coY29uc3QgV2lkZ2V0KiByb290V2lkZ2V0LCBjb25zCiAgICAgaWYg
KCFyb290V2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKQogICAgICAgICByZXR1cm4gcmVjdDsKIAot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbcm9vdFdpZGdldC0+cGxhdGZv
cm1XaWRnZXQoKSBjb252ZXJ0UmVjdDpyZWN0IHRvVmlldzpuaWxdKTsKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIHJl
dHVybiByZWN0OwogfQpAQCAtMzAxLDkgKzMwMSw5IEBAIEludFJlY3QgV2lkZ2V0Ojpjb252ZXJ0
RnJvbUNvbnRhaW5pbmdXaW5kb3dUb1Jvb3QoY29uc3QgV2lkZ2V0KiByb290V2lkZ2V0LCBjb25z
CiAgICAgaWYgKCFyb290V2lkZ2V0LT5wbGF0Zm9ybVdpZGdldCgpKQogICAgICAgICByZXR1cm4g
cmVjdDsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdChbcm9vdFdpZGdl
dC0+cGxhdGZvcm1XaWRnZXQoKSBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3Om5pbF0pOwotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogCiAgICAgcmV0dXJuIHJlY3Q7CiB9CkBAIC0zMTMsOSArMzEzLDkgQEAgSW50UG9pbnQgV2lk
Z2V0Ojpjb252ZXJ0RnJvbVJvb3RUb0NvbnRhaW5pbmdXaW5kb3coY29uc3QgV2lkZ2V0KiByb290
V2lkZ2V0LCBjb24KICAgICBpZiAoIXJvb3RXaWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkpCiAgICAg
ICAgIHJldHVybiBwb2ludDsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICByZXR1cm4gSW50UG9pbnQoW3Jvb3RX
aWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCkgY29udmVydFBvaW50OnBvaW50IHRvVmlldzpuaWxdKTsK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICByZXR1cm4gcG9pbnQ7CiB9CiAKQEAgLTMyNCw5ICszMjQsOSBAQCBJbnRQb2lu
dCBXaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvd1RvUm9vdChjb25zdCBXaWRnZXQq
IHJvb3RXaWRnZXQsIGNvbgogICAgIGlmICghcm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSkK
ICAgICAgICAgcmV0dXJuIHBvaW50OwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVybiBJbnRQb2ludChb
cm9vdFdpZGdldC0+cGxhdGZvcm1XaWRnZXQoKSBjb252ZXJ0UG9pbnQ6cG9pbnQgZnJvbVZpZXc6
bmlsXSk7Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKICAgICByZXR1cm4gcG9pbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb25Db2NvYS5tbQppbmRleCBkY2E0YTc0YzRmODhhYzg3ZGE2NTUyNWJmMTdkZWY4ZDQ4
NzQ1MGFmLi42YTUyM2QwOTE0NmMzYzQ1OTIyNmIyYmI1ZTBkNDlmZmE3ZGE2NjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KQEAgLTU2LDkgKzU2LDkgQEAgdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKIHsK
ICAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nl
c3NSYXdDb29raWVzKSB8fCBtX2lzSW5NZW1vcnlDb29raWVTdG9yZSk7CiAKLSAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAg
ICAgW25zQ29va2llU3RvcmFnZSgpIHNldENvb2tpZTooTlNIVFRQQ29va2llICopY29va2llXTsK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXMoY29uc3Qg
VmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIG1haW5E
b2N1bWVudFVSTCkKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldENvb2tpZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMsIGNvbnN0IFVSTCYKICAg
ICAgICAgcmV0dXJuIGNvb2tpZTsKICAgICB9KTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbnNDb29raWVT
dG9yYWdlKCkgc2V0Q29va2llczpuc0Nvb2tpZXMuZ2V0KCkgZm9yVVJMOihOU1VSTCAqKXVybCBt
YWluRG9jdW1lbnRVUkw6KE5TVVJMICopbWFpbkRvY3VtZW50VVJMXTsKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlbGV0ZUNvb2tpZShjb25zdCBDb29raWUmIGNvb2tp
ZSkKQEAgLTEzNSwxMyArMTM1LDEzIEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRB
bGxDb29raWVzVG9TYW1lU2l0ZVN0cmljdChjb25zdCBSZWdpc3RyYWJsZURvbWFpCiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgZm9yIChOU0hUVFBDb29raWUgKm9sZENvb2tpZSBp
biBvbGRDb29raWVzVG9EZWxldGUuZ2V0KCkpCiAgICAgICAgIGRlbGV0ZUhUVFBDb29raWUoY29v
a2llU3RvcmFnZSgpLmdldCgpLCBvbGRDb29raWUpOwogCiAgICAgZm9yIChOU0hUVFBDb29raWUg
Km5ld0Nvb2tpZSBpbiBuZXdDb29raWVzVG9BZGQuZ2V0KCkpCiAgICAgICAgIFtuc0Nvb2tpZVN0
b3JhZ2UoKSBzZXRDb29raWU6bmV3Q29va2llXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGRvbWFpbik7CiAjZW5kaWYKQEAgLTM1OSw3ICszNTksNyBAQCBzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IFVS
TCYgZmlycwogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxl
Z2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpIHx8IG1faXNJbk1lbW9yeUNvb2tpZVN0b3JlKTsKIAot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIAogICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBjb29raWVzRm9yVVJMKGZpcnN0UGFy
dHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHNob3VsZEFza0lUUCwgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpOwogICAgIGlmICghW2Nvb2tpZXMgY291
bnRdKQpAQCAtMzg5LDcgKzM4OSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvclNlc3Npb24oY29uc3QgVVJMJiBmaXJzCiAgICAgfQog
ICAgIHJldHVybiB7IGNvb2tpZXNCdWlsZGVyLnRvU3RyaW5nKCksIGRpZEFjY2Vzc1NlY3VyZUNv
b2tpZXMgfTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIHJldHVybiB7IFN0cmluZygpLCBmYWxzZSB9OwogfQogCkBA
IC00MzAsNyArNDMwLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNG
cm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKIHsKICAgICBBU1NFUlQo
aGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVz
KSB8fCBtX2lzSW5NZW1vcnlDb29raWVTdG9yZSk7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzaG91bGRBc2tJVFAgPT0gU2hvdWxk
QXNrSVRQOjpZZXMgJiYgc2hvdWxkQmxvY2tDb29raWVzKGZpcnN0UGFydHksIHVybCwgZnJhbWVJ
RCwgcGFnZUlELCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZykpCkBAIC00Njgs
NyArNDY4LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVMKIAogICAgIHNldEhUVFBDb29raWVz
Rm9yVVJMKGNvb2tpZVN0b3JhZ2UoKS5nZXQoKSwgZmlsdGVyZWRDb29raWVzLmdldCgpLCBjb29r
aWVVUkwsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbyk7CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogc3RhdGljIE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwQ29va2llQWNjZXB0UG9saWN5KENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKQEAgLTQ4MywxMCArNDgzLDEwIEBAIHN0YXRpYyBO
U0hUVFBDb29raWVBY2NlcHRQb2xpY3kgaHR0cENvb2tpZUFjY2VwdFBvbGljeShDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIGNvCiAKIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpjb29raWVBY2NlcHRQb2xpY3koKSBjb25zdAogewotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBhdXRv
IHBvbGljeSA9IGh0dHBDb29raWVBY2NlcHRQb2xpY3koY29va2llU3RvcmFnZSgpLmdldCgpKTsK
ICAgICByZXR1cm4gdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSk7Ci0gICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAg
ICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeTo6TmV2ZXI7CiB9CkBAIC00OTQsNyArNDk0
LDcgQEAgSFRUUENvb2tpZUFjY2VwdFBvbGljeSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tp
ZUFjY2VwdFBvbGljeSgpIGNvbnN0CiBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTaG91bGRBc2tJVFAgc2hvdWxkQXNr
SVRQLCBTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZywgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7
CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIE5TQXJyYXkgKmNvb2tp
ZXMgPSBjb29raWVzRm9yVVJMKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIHNob3VsZEFza0lUUCwgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcpOwogICAgIE5TVUludGVnZXIgY291bnQgPSBbY29va2llcyBjb3VudF07CkBAIC01MDQsNyAr
NTA0LDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUkKICAgICAgICAgcmF3Q29va2llcy51bmNo
ZWNrZWRBcHBlbmQoeyBjb29raWUgfSk7CiAgICAgfQogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVs
ZXRlQ29va2llKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbQogewogICAg
IEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jh
d0Nvb2tpZXMpKTsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIFJldGFpblB0cjxDRkhUVFBDb29raWVTdG9y
YWdlUmVmPiBjb29raWVTdG9yYWdlID0gdGhpcy0+Y29va2llU3RvcmFnZSgpOwogICAgIE5TQXJy
YXkgKmNvb2tpZXMgPSBodHRwQ29va2llc0ZvclVSTChjb29raWVTdG9yYWdlLmdldCgpLCBuaWws
IFdURjo6bnVsbG9wdCwgdXJsKTsKQEAgLTUyNiwxMiArNTI2LDEyIEBAIHZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
Y29va2llTmFtCiAgICAgICAgICAgICBkZWxldGVIVFRQQ29va2llKGNvb2tpZVN0b3JhZ2UuZ2V0
KCksIGNvb2tpZSk7CiAgICAgfQogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKICAgICBOU0FycmF5ICpjb29raWVzID0gaHR0cENvb2tpZXMoY29va2ll
U3RvcmFnZSgpLmdldCgpKTsKICAgICAKQEAgLTU0Miw3ICs1NDIsNyBAQCB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJpbmc+JiBo
b3N0bmFtZXMpCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAg
Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVBbGxDb29raWVz
KCkKQEAgLTU1OSw3ICs1NTksNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdAogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpIHx8IG1faXNJbk1lbW9yeUNvb2tpZVN0b3JlKTsKIAotICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIFJl
dGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlID0gdGhpcy0+Y29v
a2llU3RvcmFnZSgpOwogICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBodHRwQ29va2llcyhjb29raWVT
dG9yYWdlLmdldCgpKTsKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9z
dAogCiAgICAgW25zQ29va2llU3RvcmFnZSgpIF9zYXZlQ29va2llc107CiAKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAog
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNl
KFdhbGxUaW1lIHRpbWVQb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUVycm9yTWFjLm1tCmluZGV4IDFjZTY3MGMxNTM5ZmY0YzNm
MmEzYjRmNWQ5ZDE5YmQ0OGRkZTQwYTMuLjM3MWVkZDYwYmFhOTkzN2JiZDlkNTJkZWEyN2RlYjM4
NTJiMjAwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlRXJyb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VFcnJvck1hYy5tbQpAQCAtMTY1LDkgKzE2NSw5IEBAIHZvaWQgUmVzb3Vy
Y2VFcnJvcjo6cGxhdGZvcm1MYXp5SW5pdCgpCiAgICAgICAgIG1fZmFpbGluZ1VSTCA9IFVSTCgo
TlNVUkwgKilbW21fcGxhdGZvcm1FcnJvci5nZXQoKSB1c2VySW5mb10gdmFsdWVGb3JLZXk6QCJO
U0Vycm9yRmFpbGluZ1VSTEtleSJdKTsKICAgICAvLyBXb3JrYXJvdW5kIGZvciA8cmRhcjovL3By
b2JsZW0vNjU1NDA2Nz4KICAgICBtX2xvY2FsaXplZERlc2NyaXB0aW9uID0gbV9mYWlsaW5nVVJM
LnN0cmluZygpOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBtX2xvY2FsaXplZERlc2NyaXB0aW9uID0gW21fcGxh
dGZvcm1FcnJvci5nZXQoKSBfd2ViX2xvY2FsaXplZERlc2NyaXB0aW9uXTsKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAg
IG1fZGF0YUlzVXBUb0RhdGUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBlZTYwM2Q3
MjJmNDFkMGQ2ZjdjNDZiOTA2ZmI3YTU1MTA1MjBmMzdlLi5kMWU4YzAyYTM5MGZmZGYzMGE3NWNk
NjQ3MjY4NWRlMDc3YmI3NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjMxLDcgKzIzMSw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICBpZiAoIWQtPm1fY29udGV4dCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwor
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgLy8gSWYgTmV0d29ya2luZ0Nv
bnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdl
LAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBl
dmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgpAQCAtMjc1LDcgKzI3NSw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCmluZGV4IDg4YWU3MjcwMzViM2ExOTVjODE2MDdjYjE2
NjFlNDEwYzQ0NTljZmIuLjg5OTQzMDQzZjc1NTQ5YzlkMGJjZTQwM2M4MDBmNGYwZWE3NDE5MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0x
NTksNyArMTU5LDcgQEAgU3RyaW5nIFJlbmRlclRoZW1lQ29jb2E6Om1lZGlhQ29udHJvbHNGb3Jt
YXR0ZWRTdHJpbmdGb3JEdXJhdGlvbihjb25zdCBkb3VibGUgZHUKICAgICBpZiAoIXN0ZDo6aXNm
aW5pdGUoZHVyYXRpb25JblNlY29uZHMpKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygi
aW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmlu
aXRlIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSIpOwogCi0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmICgh
bV9kdXJhdGlvbkZvcm1hdHRlcikgewogICAgICAgICBtX2R1cmF0aW9uRm9ybWF0dGVyID0gYWRv
cHROUyhbTlNEYXRlQ29tcG9uZW50c0Zvcm1hdHRlciBuZXddKTsKICAgICAgICAgbV9kdXJhdGlv
bkZvcm1hdHRlci5nZXQoKS51bml0c1N0eWxlID0gTlNEYXRlQ29tcG9uZW50c0Zvcm1hdHRlclVu
aXRzU3R5bGVGdWxsOwpAQCAtMTY4LDcgKzE2OCw3IEBAIFN0cmluZyBSZW5kZXJUaGVtZUNvY29h
OjptZWRpYUNvbnRyb2xzRm9ybWF0dGVkU3RyaW5nRm9yRHVyYXRpb24oY29uc3QgZG91YmxlIGR1
CiAgICAgICAgIG1fZHVyYXRpb25Gb3JtYXR0ZXIuZ2V0KCkubWF4aW11bVVuaXRDb3VudCA9IDI7
CiAgICAgfQogICAgIHJldHVybiBbbV9kdXJhdGlvbkZvcm1hdHRlci5nZXQoKSBzdHJpbmdGcm9t
VGltZUludGVydmFsOmR1cmF0aW9uSW5TZWNvbmRzXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogRm9udENhc2NhZGVE
ZXNjcmlwdGlvbiYgUmVuZGVyVGhlbWVDb2NvYTo6Y2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9u
KENTU1ZhbHVlSUQgdmFsdWVJRCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0FyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9Bcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IDI4OTM0Y2JmZTNlZTA3ZWJhNGNiNTgy
ZjViYThmZGM1YzdhNTgwMTkuLjdkMmRlNzYzYWQ4ZTQ1ZmZlYWQzMTVhMGYyZGU0NjQ3OGMwNjBi
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FyZ3VtZW50Q29kZXJz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQXJndW1lbnRDb2RlcnND
b2NvYS5tbQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBPcHRpb25hbDxSZXRhaW5QdHI8aWQ+
PiBkZWNvZGVGb250SW50ZXJuYWwoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWRlY29kZShk
ZWNvZGVyLCBmb250QXR0cmlidXRlcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
LSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAKICAgICByZXR1cm4geyBXZWJLaXQ6OmZvbnRXaXRoQXR0cmlidXRlcyhmb250
QXR0cmlidXRlcy5nZXQoKSwgMCkgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvQ29yZVRleHRIZWxwZXJzLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
Q29yZVRleHRIZWxwZXJzLm1tCmluZGV4IGFhZjVlNWM5YjljNmIzZjE0OGEyNTI4ZTdmYjRlMjEz
MGNiZjkwM2UuLjA3NzEyZTc3YWY4NTc3NTU4YzE1NjkyNTA5NTBlZTY0YTc1ZGQ3OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0NvcmVUZXh0SGVscGVycy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Db3JlVGV4dEhlbHBlcnMubW0KQEAgLTMzLDcg
KzMzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIENvY29hRm9udCAqZm9udFdpdGhBdHRyaWJ1
dGVzKE5TRGljdGlvbmFyeSAqYXR0cmlidXRlcywgQ0dGbG9hdCBzaXplKQogewotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogI2lmIEhBVkUoTlNGT05UX1dJVEhfT1BUSUNBTF9TSVpJTkdfQlVHKQogICAgIGF1dG8gbXV0
YWJsZURpY3Rpb25hcnkgPSBhZG9wdE5TKFthdHRyaWJ1dGVzIG11dGFibGVDb3B5XSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQppbmRleCA0MzU4ODU3ODQwZmVi
NjcyZDk1ZjUxNzZmYTUyOGZlMGJkMGQyNGQ2Li5hNWZmODdjZDFkZWE0NjVhMTk3MjhiYmMwMjJi
ODg5MjQ1NGE3OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIu
bW0KQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
cjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgUmVtbwogCiB2b2lkIFJl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzKFJlbW90ZUxheWVy
VHJlZU5vZGUmIG5vZGUsIFJlbW90ZUxheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QsIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMs
IGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycywgUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmU6OkxheWVyQ29udGVudHNUeXBlIGxheWVyQ29udGVudHNUeXBlKQogewotICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IAogICAgIGFwcGx5UHJvcGVydGllc1RvTGF5ZXIobm9kZS5sYXllcigpLCBsYXllclRyZWVIb3N0
LCBwcm9wZXJ0aWVzLCBsYXllckNvbnRlbnRzVHlwZSk7CiAgICAgdXBkYXRlQ2hpbGRyZW4obm9k
ZSwgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7CkBAIC0yODQsNyArMjg0LDcgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhSZW1vdGVMYXll
clRyZWVOb2RlJiBub2RlLAogICAgIGFwcGx5UHJvcGVydGllc1RvVUlWaWV3KG5vZGUudWlWaWV3
KCksIHByb3BlcnRpZXMsIHJlbGF0ZWRMYXllcnMpOwogI2VuZGlmCiAKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9p
ZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OnVwZGF0ZUNoaWxkcmVuKFJlbW90ZUxh
eWVyVHJlZU5vZGUmIG5vZGUsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
clByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExh
eWVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggMTQ4NDBmZGM5OGM5N2FlYmIyZTI3ZDg2OWI5YWI2ZTQxZWRlMTVhMy4uNjRiN2ZkNGE3MmNj
Yzc2YWJmZTU2YjgxODJhMzhhN2VkYWFlNzVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI4ODIsNyArMjg4Miw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKQogICAgICAgICBpZiAoZXJyb3IgIT0g
Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogCiAgICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cmlidXRlRGljdGlvbmFyeSA9
IChfX2JyaWRnZSBOU0RpY3Rpb25hcnkgKilmb250SW5mby5mb250QXR0cmlidXRlRGljdGlvbmFy
eS5nZXQoKTsKICAgICAgICAgaWYgKCFhdHRyaWJ1dGVEaWN0aW9uYXJ5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxlck1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9tYWMvU2Nyb2xsZXJN
YWMubW0KaW5kZXggOGI5MjFlMTc1NTI1MDUxZTUwMjI2OTA2OTM1NGIxOTdkZGJmODliNy4uMjUz
MDZkYzFiOGNjMDY3OGUzZjUyNDM2MjljOGFkOThmYjU1OWY2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9TY3JvbGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1Njcm9sbGVyTWFj
Lm1tCkBAIC0xMTYsOSArMTE2LDkgQEAgLSAodm9pZClzZXRDdXJyZW50UHJvZ3Jlc3M6KE5TQW5p
bWF0aW9uUHJvZ3Jlc3MpcHJvZ3Jlc3MKIAogLSAodm9pZClpbnZhbGlkYXRlCiB7Ci0gICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogICAgIFtzZWxmIHN0b3BBbmltYXRpb25dOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIF9zY3JvbGxlciA9IG51bGxw
dHI7CiB9CiAKQEAgLTE1MCwxMiArMTUwLDEyIEBAIC0gKGlkKWluaXRXaXRoU2Nyb2xsZXI6KFdl
YktpdDo6U2Nyb2xsZXJNYWMqKXNjcm9sbGVyCiAKIC0gKHZvaWQpY2FuY2VsQW5pbWF0aW9ucwog
ewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKICAgICBbX2tub2JBbHBoYUFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXTsKICAg
ICBbX3RyYWNrQWxwaGFBbmltYXRpb24gc3RvcEFuaW1hdGlvbl07CiAgICAgW191aVN0YXRlVHJh
bnNpdGlvbkFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXTsKICAgICBbX2V4cGFuc2lvblRyYW5zaXRp
b25BbmltYXRpb24gc3RvcEFuaW1hdGlvbl07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIC0gKE5TUmVjdCljb252ZXJ0
UmVjdFRvQmFja2luZzooTlNSZWN0KWFSZWN0CkBAIC0zMDMsMTIgKzMwMywxMiBAQCAtICh2b2lk
KXNjcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgb3ZlcmxheVNjcm9sbGVy
U3RhdGVDaGFuZ2VkVG86KAogLSAodm9pZClpbnZhbGlkYXRlCiB7CiAgICAgX3Njcm9sbGVyID0g
bmlsOwotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKICAgICBbX2tub2JBbHBoYUFuaW1hdGlvbiBpbnZhbGlkYXRlXTsKICAg
ICBbX3RyYWNrQWxwaGFBbmltYXRpb24gaW52YWxpZGF0ZV07CiAgICAgW191aVN0YXRlVHJhbnNp
dGlvbkFuaW1hdGlvbiBpbnZhbGlkYXRlXTsKICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25Bbmlt
YXRpb24gaW52YWxpZGF0ZV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIEBlbmQKQEAgLTM1NSw3ICszNTUsNyBAQCB2
b2lkIFNjcm9sbGVyTWFjOjp1cGRhdGVWYWx1ZXMoKQogewogICAgIGF1dG8gdmFsdWVzID0gbV9w
YWlyLnZhbHVlc0Zvck9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOwogCi0gICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAg
ICAgW21fc2Nyb2xsZXJJbXAgc2V0RW5hYmxlZDohIW1faG9zdExheWVyXTsKICAgICBbbV9zY3Jv
bGxlckltcCBzZXRCb3VuZHNTaXplOk5TU2l6ZUZyb21DR1NpemUoW21faG9zdExheWVyIGJvdW5k
c10uc2l6ZSldOwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgU2Nyb2xsZXJNYWM6OnVwZGF0ZVZh
bHVlcygpCiAgICAgW21fc2Nyb2xsZXJJbXAgc2V0UHJlc2VudGF0aW9uVmFsdWU6dmFsdWVzLnZh
bHVlXTsKICAgICBbbV9zY3JvbGxlckltcCBzZXRLbm9iUHJvcG9ydGlvbjp2YWx1ZXMucHJvcG9y
dGlvbl07CiAKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIH0KIAogV2ViQ29yZTo6RmxvYXRQb2ludCBTY3JvbGxlck1hYzo6Y29u
dmVydEZyb21Db250ZW50KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvaW50KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggOGJmYTIxMzQwZTkzYzhjOTk1Y2E1OGI2NzA2MDUyMjI5ZGM4Mzg4
ZC4uNzJkYzc4MDVlMjI0ODc2ZTdlYjYyOWQ5NTNjMWY1NjdlOTJmMDZjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC05MTI0LDcgKzkxMjQsNyBAQCAtICh2b2lkKWFzc2lnbkxlZ2FjeURhdGFGb3JDb250
ZXh0TWVudUludGVyYWN0aW9uCiAgICAgICAgIC8vIGFuZCBjcmVhdGUgb25lLiBXZSBuZWVkIHRv
IHJlcGxpY2F0ZSB0aGlzIGNvZGUgZm9yIHRoZSBuZXcgQVBJLgogICAgICAgICBpZiAoIXByZXZp
ZXdWaWV3Q29udHJvbGxlciB8fCBbKE5TVVJMICopdXJsIGlUdW5lc1N0b3JlVVJMXSkgewogICAg
ICAgICAgICAgYXV0byBkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgPSBnZXRERENvbnRleHRNZW51
QWN0aW9uQ2xhc3MoKTsKLSAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
KyAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICAgICAgTlNE
aWN0aW9uYXJ5ICpjb250ZXh0ID0gW3NlbGYgZGF0YURldGVjdGlvbkNvbnRleHRGb3JQb3NpdGlv
bkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKICAgICAgICAgICAgIFJldGFpblB0
cjxVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbj4gZGF0YURldGVjdG9yc1Jlc3VsdCA9IFtkZENv
bnRleHRNZW51QWN0aW9uQ2xhc3MgY29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yVVJMOnVybCBp
ZGVudGlmaWVyOl9wb3NpdGlvbkluZm9ybWF0aW9uLmRhdGFEZXRlY3RvcklkZW50aWZpZXIgc2Vs
ZWN0ZWRUZXh0OnNlbGYuc2VsZWN0ZWRUZXh0IHJlc3VsdHM6X3Bvc2l0aW9uSW5mb3JtYXRpb24u
ZGF0YURldGVjdG9yUmVzdWx0cy5nZXQoKSBpblZpZXc6c2VsZiBjb250ZXh0OmNvbnRleHQgbWVu
dUlkZW50aWZpZXI6bmlsXTsKICAgICAgICAgICAgIGlmIChfc2hvd0xpbmtQcmV2aWV3cyAmJiBk
YXRhRGV0ZWN0b3JzUmVzdWx0ICYmIGRhdGFEZXRlY3RvcnNSZXN1bHQuZ2V0KCkucHJldmlld1By
b3ZpZGVyKQpAQCAtOTEzMyw3ICs5MTMzLDcgQEAgLSAodm9pZClhc3NpZ25MZWdhY3lEYXRhRm9y
Q29udGV4dE1lbnVJbnRlcmFjdGlvbgogICAgICAgICAgICAgICAgIGF1dG8gbWVudUVsZW1lbnRz
ID0gbWVudUVsZW1lbnRzRnJvbURlZmF1bHRBY3Rpb25zKGRlZmF1bHRBY3Rpb25zRnJvbUFzc2lz
dGFudCwgZWxlbWVudEluZm8pOwogICAgICAgICAgICAgICAgIF9jb250ZXh0TWVudUxlZ2FjeU1l
bnUgPSBkYXRhRGV0ZWN0b3JzUmVzdWx0LmdldCgpLmFjdGlvblByb3ZpZGVyKG1lbnVFbGVtZW50
cyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgICAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKQEAgLTkzODAsNyArOTM4MCw3IEBAIC0gKHZvaWQpY29udGludWVD
b250ZXh0TWVudUludGVyYWN0aW9uOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9u
ICopKWNvCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogLSAodm9pZCljb250aW51ZUNvbnRl
eHRNZW51SW50ZXJhY3Rpb25XaXRoRGF0YURldGVjdG9yczoodm9pZCheKShVSUNvbnRleHRNZW51
Q29uZmlndXJhdGlvbiAqKSljb250aW51ZVdpdGhDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24KIHsK
LSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAgICAgYXV0byBkZENvbnRleHRNZW51QWN0aW9uQ2xhc3MgPSBnZXRERENvbnRl
eHRNZW51QWN0aW9uQ2xhc3MoKTsKICAgICBVUkwgbGlua1VSTCA9IF9wb3NpdGlvbkluZm9ybWF0
aW9uLnVybDsKICAgICBOU0RpY3Rpb25hcnkgKmNvbnRleHQgPSBbc2VsZiBkYXRhRGV0ZWN0aW9u
Q29udGV4dEZvclBvc2l0aW9uSW5mb3JtYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb25dOwpAQCAt
OTM4OCw3ICs5Mzg4LDcgQEAgLSAodm9pZCljb250aW51ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25X
aXRoRGF0YURldGVjdG9yczoodm9pZCheKShVSUNvbnRleHRNZW51Q28KICAgICBfY29udGV4dE1l
bnVBY3Rpb25Qcm92aWRlckRlbGVnYXRlTmVlZHNPdmVycmlkZSA9IFlFUzsKICAgICBfcGFnZS0+
c3RhcnRJbnRlcmFjdGlvbldpdGhQb3NpdGlvbkluZm9ybWF0aW9uKF9wb3NpdGlvbkluZm9ybWF0
aW9uKTsKICAgICBjb250aW51ZVdpdGhDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbkZyb21ERCk7Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDNjYzBkZjA1ZmRkMjU3
NjM1NmRiMDBlMzdiYmI2ZWQ0ZWNmOWI5MTguLjUzYzI0NDBmMzVmMWRjNzllNDNhN2YzZjZlZjE4
ZmM4MjAzY2YxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJQ
b3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdlYlBvcHVwTWVu
dVByb3h5TWFjOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rp
b24gdGV4dAogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6
OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAgIE5TRm9udCAqZm9udDsKIAot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKIAogICAgIGlmIChOU0RpY3Rpb25hcnkgKmZvbnRBdHRyaWJ1dGVzID0gc3RhdGlj
X2Nhc3Q8TlNEaWN0aW9uYXJ5ICo+KGRhdGEuZm9udEluZm8uZm9udEF0dHJpYnV0ZURpY3Rpb25h
cnkuZ2V0KCkpKQogICAgICAgICBmb250ID0gZm9udFdpdGhBdHRyaWJ1dGVzKGZvbnRBdHRyaWJ1
dGVzLCAoKHBhZ2VTY2FsZUZhY3RvciAhPSAxKSA/IFtmb250QXR0cmlidXRlc1tOU0ZvbnRTaXpl
QXR0cmlidXRlXSBmbG9hdFZhbHVlXSAqIHBhZ2VTY2FsZUZhY3RvciA6IDApKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0
Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KaW5kZXggYjM5
ZDc5MzU1M2M0ODllNTU0OGZkNDVjMTczOTA3ZDA3M2RlYTYxYy4uZjJhMTQ2Y2NlNzc1MDc4YTZk
YmFjZjNkZTYzN2U3ZWQ2ZTYwNGZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Bs
YXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KQEAgLTgwNyw3ICs4MDcsNyBAQCBzdGF0aWMgdm9p
ZCBhZGRBbmltYXRpb25Ub0xheWVyKENBTGF5ZXIgKmxheWVyLCBSZW1vdGVMYXllclRyZWVIb3N0
KiBsYXllclRyZWVIbwogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OnVwZGF0ZUxh
eWVyQW5pbWF0aW9ucyhDQUxheWVyICpsYXllciwgUmVtb3RlTGF5ZXJUcmVlSG9zdCogbGF5ZXJU
cmVlSG9zdCwgY29uc3QgQW5pbWF0aW9uc0xpc3QmIGFuaW1hdGlvbnNUb0FkZCwgY29uc3QgSGFz
aFNldDxTdHJpbmc+JiBhbmltYXRpb25zVG9SZW1vdmUpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgZm9y
IChjb25zdCBhdXRvJiB2YWx1ZSA6IGFuaW1hdGlvbnNUb1JlbW92ZSkKICAgICAgICAgW2xheWVy
IHJlbW92ZUFuaW1hdGlvbkZvcktleTp2YWx1ZV07CkBAIC04MTUsNyArODE1LDcgQEAgdm9pZCBQ
bGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlOjp1cGRhdGVMYXllckFuaW1hdGlvbnMoQ0FMYXllciAq
bGF5ZXIsIFJlbW90ZUxheWUKICAgICBmb3IgKGNvbnN0IGF1dG8mIGtleUFuaW1hdGlvblBhaXIg
OiBhbmltYXRpb25zVG9BZGQpCiAgICAgICAgIGFkZEFuaW1hdGlvblRvTGF5ZXIobGF5ZXIsIGxh
eWVyVHJlZUhvc3QsIGtleUFuaW1hdGlvblBhaXIuZmlyc3QsIGtleUFuaW1hdGlvblBhaXIuc2Vj
b25kKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mdHMs
IGNvbnN0IFBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGU6OktleWZyYW1lVmFsdWUmIHZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUN1c3RvbVhQYXRoTlNS
ZXNvbHZlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01DdXN0b21YUGF0aE5T
UmVzb2x2ZXIubW0KaW5kZXggMTU4ZDBlNjY4YmM5ZWFiNTg2YzI4MTViYTVhMDkzYjIzYTc1MDA2
Mi4uNGNhODBiNTg4ZDVlNTEwMzMxNmUzNDFmMTlmYTQ0NzA4OTZiMzE1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
Lm1tCkBAIC00MSw5ICs0MSw5IEBAIFN0cmluZyBET01DdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxv
b2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKIHsKICAgICBOU1N0cmluZyAq
bmFtZXNwYWNlVVJJID0gbmlsOwogICAgIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBuYW1lc3BhY2VVUkkgPSBb
bV9jdXN0b21SZXNvbHZlciBsb29rdXBOYW1lc3BhY2VVUkk6cHJlZml4XTsKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAK
ICAgICByZXR1cm4gbmFtZXNwYWNlVVJJOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51TWFjLm1tCmluZGV4IDYyYjc0OGJjNDRl
MjgyMGM3Y2MxMmQ3ZTYzNTU4ZjIwY2ZmZjVlOWIuLjNkZWIxMjVmNzkzZDhjMjZiOGU4MGIzZjgz
N2I0ZjZjMDNiZWRjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1BvcHVwTWVudU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVNYWMubW0KQEAgLTE5Miw5ICsxOTIsOSBAQCB2b2lkIFBv
cHVwTWVudU1hYzo6c2hvdyhjb25zdCBJbnRSZWN0JiByLCBGcmFtZVZpZXcqIHYsIGludCBzZWxl
Y3RlZEluZGV4KQogICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkgewog
ICAgICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0ga2l0KHBhZ2UpOwotICAgICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgICAgICBDYWxsVUlEZWxlZ2F0ZSh3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzp3aWxsUG9w
dXBNZW51OiksIG1lbnUpOwotICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgfQogCiAgICAgTlNDb250cm9sU2l6
ZSBjb250cm9sU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAwN2NkOWZmMTcyMzQ4OGVlMGQ1
OWU1YTliNjU4MzEzMmNiMzlmZmY4Li4wYjA5NDVlYjZkOWE3NjlkMWQ4YjQxNjlhMzY1MzBiOTY2
ZjZjMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC02ODgsMTMgKzY4OCwxMyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBXZWJTZWN1cml0
eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRo
V2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
XTsKICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1l
OmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOiksIGtpdCgm
ZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7CiAgICAgW3dlYk9y
aWdpbiByZWxlYXNlXTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hl
ZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQpAQCAtNzA0LDEzICs3MDQsMTMg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBz
cGFjZU5lZWRlZCkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNl
TmVlZGVkKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4g
PSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmln
aW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3VyaXR5T3JpZ2lu
OnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPih0
b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIAotICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCkBAIC03NjIsNyArNzYyLDcgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKCkKIAogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJiBjaG9vc2VyKQogewotICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICBCT09MIGFsbG93TXVsdGlwbGVGaWxlcyA9IGNob29zZXIuc2V0dGluZ3MoKS5h
bGxvd3NNdWx0aXBsZUZpbGVzOwogICAgIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyICpsaXN0
ZW5lciA9IFtbV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2hvb3Nl
cjpjaG9vc2VyXTsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CkBA
IC03NzMsNyArNzczLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFt
ZSYsIEZpbGVDaG9vc2VyJiBjaG9vc2VyKQogICAgIGVsc2UKICAgICAgICAgW2xpc3RlbmVyIGNh
bmNlbF07CiAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpCkBAIC04MjUsMjcgKzgyNSwyNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wgaGlkZGVuVW50
aWxNb3VzZU1vdmVzKQogCiBLZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGllbnQ6OmtleWJvYXJk
VUlNb2RlKCkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIFttX3dlYlZpZXcgX2tleWJvYXJkVUlN
b2RlXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKICAgICByZXR1cm4gS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0OwogfQogCiBOU1Jl
c3BvbmRlciAqV2ViQ2hyb21lQ2xpZW50OjpmaXJzdFJlc3BvbmRlcigpCiB7Ci0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlld0ZpcnN0
UmVzcG9uZGVyOm1fd2ViVmlld107Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgcmV0dXJuIG5pbDsKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqcmVzcG9uZGVy
KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKICAgICBbbV93ZWJWaWV3IF9wdXNoUGVyZm9ybWluZ1Byb2dyYW1tYXRp
Y0ZvY3VzXTsKICAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzpt
X3dlYlZpZXcgbWFrZUZpcnN0UmVzcG9uZGVyOnJlc3BvbmRlcl07CiAgICAgW21fd2ViVmlldyBf
cG9wUGVyZm9ybWluZ1Byb2dyYW1tYXRpY0ZvY3VzXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKQEAgLTkxOCw3ICs5MTgsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1l
LCBHcmFwaGljc0xheWVyKiBncmFwaAogICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CiAgICAgVU5V
U0VEX1BBUkFNKGdyYXBoaWNzTGF5ZXIpOwogI2Vsc2UKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBOU1ZpZXcg
KmRvY3VtZW50VmlldyA9IFtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwog
ICAgIGlmICghW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11d
KSB7CkBAIC05MzIsNyArOTMyLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGgKICAgICAgICAg
W3dlYkhUTUxWaWV3IGF0dGFjaFJvb3RMYXllcjpncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVy
KCldOwogICAgIGVsc2UKICAgICAgICAgW3dlYkhUTUxWaWV3IGRldGFjaFJvb3RMYXllcl07Ci0g
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiAjZW5kaWYKIH0KIApAQCAtOTQzLDE2ICs5NDMsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKikKIAogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKICAgICBbbV93ZWJWaWV3IF9zZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uOllFU107Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hl
ZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX3dlYlZpZXcgX3NjaGVk
dWxlVXBkYXRlUmVuZGVyaW5nXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAogI2lmIEVOQUJMRShWSURFTykKQEAgLTk3
NywzMiArOTc3LDMyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChzdGFuZGJ5LCAhc3RhbmRieSk7CiAgICAgQVNTRVJUKG1vZGUgIT0gSFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSk7Ci0gICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIGlmICht
X21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQogICAgICAgICB2aWRlb0VsZW1lbnQu
ZGlkQmVjb21lRnVsbHNjcmVlbkVsZW1lbnQoKTsKICAgICBlbHNlCiAgICAgICAgIFttX3dlYlZp
ZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OiZ2aWRlb0VsZW1lbnQgbW9k
ZTptb2RlXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19P
QkpDX0VYQ0VQVElPTlMKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVt
ZW50KQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKICAgICBpZiAobV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZCkKICAgICAgICAgdmlkZW9FbGVtZW50LmRpZFN0b3BCZWluZ0Z1bGxzY3JlZW5FbGVtZW50
KCk7CiAgICAgZWxzZQogICAgICAgICBbbV93ZWJWaWV3IF9leGl0VmlkZW9GdWxsc2NyZWVuXTsK
LSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOyAgICAKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TICAgIAogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNj
cmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50
LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkK
IHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQp
CiAgICAgICAgIHZpZGVvRWxlbWVudC5kaWRTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwog
ICAgIGVsc2UKICAgICAgICAgW21fd2ViVmlldyBfZXhpdFZpZGVvRnVsbHNjcmVlbl07Ci0gICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDNjNWY1ZmVhNWNhYWE3NDAzZWI4MDg1ZjI3ZjM1YWYz
NzAyZWQzYTguLmM5OWUxNDlmMjVmYzQxMjI1NzJjZDhiZGZkMGMyNmE5ZWVjZTgxZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xNjE2LDcgKzE2MTYsNyBAQCBib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdAogCiBSZWZQdHI8V2ViQ29yZTo6
RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBTdHJpbmcmIG5h
bWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50KQogewotICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICAKICAgICBBU1NFUlQobV93ZWJGcmFtZSk7CiAgICAgCkBAIC0xNjM2LDE0ICsx
NjM2LDE0IEBAIFJlZlB0cjxXZWJDb3JlOjpGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZUZyYW1lKGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViCiAgCiAgICAgcmV0dXJuIHJlc3VsdDsK
IAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFdlYkNvcmU6Ok9iamVjdENvbnRl
bnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBTdHJpbmcg
dHlwZSA9IG1pbWVUeXBlOwogCkBAIC0xNjc5LDcgKzE2NzksNyBAQCBXZWJDb3JlOjpPYmplY3RD
b250ZW50VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUoY29uc3Qg
VVJMJiB1cgogICAgIAogICAgIHJldHVybiBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZTo6Tm9u
ZTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRUeXBlOjpOb25l
OwogfQpAQCAtMTg1NSwxNSArMTg1NSwxNSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgc3dp
dGNoIChub3RpZmljYXRpb24pIHsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpXaWxsUGFpbnRGbGF0
dGVuZWQ6IHsKLSAgICAgICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICAg
ICAgICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgICAgICAgICAgWyhXZWJCYXNl
TmV0c2NhcGVQbHVnaW5WaWV3ICopcGxhdGZvcm1XaWRnZXQoKSBjYWNoZVNuYXBzaG90XTsKLSAg
ICAgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgICAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpZFBhaW50RmxhdHRlbmVkOiB7Ci0gICAgICAgICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICAgICAgICAgIFsoV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyAqKXBsYXRmb3Jt
V2lkZ2V0KCkgY2xlYXJDYWNoZWRTbmFwc2hvdF07Ci0gICAgICAgICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgICAgICAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTg5Miw3ICsxODkyLDcg
QEAgc3RhdGljIGJvb2wgc2hvdWxkQmxvY2tQbHVnaW4oV2ViQmFzZVBsdWdpblBhY2thZ2UgKnBs
dWdpblBhY2thZ2UpCiBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50JiBlbGVtZW50LCBjb25zdCBVUkwmIHVybCwKICAgICBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVz
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxseSkKIHsKLSAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAKICAgICBBU1NFUlQocGFyYW1OYW1lcy5zaXplKCkgPT0gcGFyYW1WYWx1ZXMuc2l6ZSgpKTsK
IApAQCAtMjAxMCwxNCArMjAxMCwxNCBAQCBSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpegogICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUGx1Z2luV2lkZ2V0KHZpZXcpKTsKICNlbmRpZgogCi0gICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVk
aXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0JiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogCiAgICAgV2ViSFRNTFJlcHJlc2VudGF0aW9uICpyZXByZXNlbnRhdGlvbiA9IChXZWJI
VE1MUmVwcmVzZW50YXRpb24gKilbW21fd2ViRnJhbWUuZ2V0KCkgX2RhdGFTb3VyY2VdIHJlcHJl
c2VudGF0aW9uXTsKIApAQCAtMjAzNCwxMyArMjAzNCwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmIHBsdWdpbldpZGdl
dCkKICAgICAgICAgW3JlcHJlc2VudGF0aW9uIF9yZWRpcmVjdERhdGFUb01hbnVhbExvYWRlcjpb
ZG9jdW1lbnRWaWV3IF9wbHVnaW5Db250cm9sbGVyXSBmb3JQbHVnaW5WaWV3OnBsdWdpblZpZXdd
OwogICAgIH0KIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQogICAgIAogUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVS
TCYgYmFzZVVSTCwKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIE5TVmlldyAq
dmlldyA9IG5pbDsKIApAQCAtMjA4Nyw3ICsyMDg3LDcgQEAgUmVmUHRyPFdlYkNvcmU6OldpZGdl
dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgV2Vi
Q28KICAgICAgICAgfQogICAgIH0KIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDJmM2E2ZTg0MzdiZmMxYzU0ODRjODM2NzM4NjRjMTBl
YjQ5ZGNmMjkuLmJkYTE0YjRhMjZiYmJhNzcwNGJmNTZkZTExNGYwOWFjNTI4OGI0ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC05NywxNSArOTcsMTUgQEAgdm9pZCBXZWJHZW9s
b2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
dm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wgd2Fu
dHNIaWdoQWNjdXJhY3kpCiB7Ci0gICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlv
blByb3ZpZGVyXSBzZXRFbmFibGVIaWdoQWNjdXJhY3k6d2FudHNIaWdoQWNjdXJhY3ldOwotICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogfQogI2VuZGlmCiAKIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKEdlb2xvY2F0aW9uJiBnZW9sb2NhdGlvbikKIHsKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKICAgICBTRUwgc2Vs
ZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVl
c3RGcm9tT3JpZ2luOmZyYW1lOmxpc3RlbmVyOik7CiAgICAgaWYgKCFbW21fd2ViVmlldyBVSURl
bGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7CkBAIC0xMzIsNyArMTMyLDcg
QEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRp
b24mIGdlb2xvY2F0aW9uKQogICAgIFJldGFpblB0cjxXZWJHZW9sb2NhdGlvblByb3ZpZGVySW5p
dGlhbGl6YXRpb25MaXN0ZW5lcj4gbGlzdGVuZXIgPSBhZG9wdE5TKFtbV2ViR2VvbG9jYXRpb25Q
cm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoR2VvbG9jYXRpb246
Z2VvbG9jYXRpb25dKTsKICAgICBbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gaW5p
dGlhbGl6ZUdlb2xvY2F0aW9uRm9yV2ViVmlldzptX3dlYlZpZXcgbGlzdGVuZXI6bGlzdGVuZXIu
Z2V0KCldOwogI2VuZGlmCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIE9wdGlvbmFsPEdlb2xvY2F0aW9uUG9zaXRpb25E
YXRhPiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKQEAgLTIxOSw3ICsyMTks
NyBAQCAtIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2NhdGlvbj4pZ2Vv
bG9jYXRpb24KIAogLSAodm9pZClpbml0aWFsaXphdGlvbkFsbG93ZWRXZWJWaWV3OihXZWJWaWV3
ICopd2ViVmlldwogewotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogICAgIEZyYW1lKiBmcmFtZSA9IG1fZ2VvbG9jYXRp
b24tPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTIzMSw3ICsyMzEsNyBAQCAtICh2b2lk
KWluaXRpYWxpemF0aW9uQWxsb3dlZFdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3CiAgICAgW3dl
Yk9yaWdpbiByZWxlYXNlXTsKICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAKLSAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIAog
LSAodm9pZClpbml0aWFsaXphdGlvbkRlbmllZFdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KaW5kZXggODIxYTZmZDRiZDRjZDM5ODRjM2QzMjgz
MGMwMGY0MTUxNTBkOGU2Ny4uYWIxMjM4OTc3MjM5YTI0ZDdmMzBkYjY1OGU4M2EyNjk1YzQ3YWJj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpAQCAtMTQ2LDExICsxNDYsMTEgQEAg
Ym9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Omhhc1BlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIAogdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7Ci0gICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICpsaXN0ZW5lciA9IFtbV2ViTm90aWZp
Y2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6V1RGTW92ZShjYWxs
YmFjayldOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGxpc3RlbmVyKTsKICAgICBb
bGlzdGVuZXIgcmVsZWFzZV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CiAKIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbiBXZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IGEx
YWFiNzMwNjY0NzgzZGVjMGQxNmI3ODljNWFkZTg2ZTQ3NWU1MzguLjM2ZmU2NmY4YmZhNWExZjNh
OThjMjA4NDk4NDUzOTYxNWI2Mzk5YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0K
QEAgLTU4LDcgKzU4LDcgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IFdlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWcKIHsKICAgICBWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gcGx1Z2luczsKIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIAogCiAgICAgLy8gV2Vi
S2l0MSBoYXMgbm8gYXBwbGljYXRpb24gcGx1Zy1pbnMsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRk
IHRoZW0gaGVyZS4KQEAgLTY4LDcgKzY4LDcgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWcKICAg
ICBmb3IgKFdlYlBsdWdpblBhY2thZ2UgKnBsdWdpbiBpbiBbV2ViUGx1Z2luRGF0YWJhc2Ugc2hh
cmVkRGF0YWJhc2VdLnBsdWdpbnMpCiAgICAgICAgIHBsdWdpbnMuYXBwZW5kKHBsdWdpbi5wbHVn
aW5JbmZvKTsKIAotICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJuIHBsdWdpbnM7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3Jl
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExp
bmtTdG9yZS5tbQppbmRleCA5MTBjOGRhYzQxYmE1YTJkNjI1YzNmNjI1NTdjNzUyNzFiOWY4ZjMw
Li5lNDJjMzE1ZWYzYTUyM2Y5YzExZjJmZTYxMGQ2MmI1YTZlZGZhNDdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0
ZWRMaW5rU3RvcmUubW0KQEAgLTEzOSw5ICsxMzksOSBAQCB2b2lkIFdlYlZpc2l0ZWRMaW5rU3Rv
cmU6OnBvcHVsYXRlVmlzaXRlZExpbmtzSWZOZWVkZWQoUGFnZSYgcGFnZSkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRI
aXN0b3J5XSBfYWRkVmlzaXRlZExpbmtzVG9WaXNpdGVkTGlua1N0b3JlOip0aGlzXTsKLSAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
IH0KIAogdm9pZCBXZWJWaXNpdGVkTGlua1N0b3JlOjphZGRWaXNpdGVkTGlua0hhc2goU2hhcmVk
U3RyaW5nSGFzaCBsaW5rSGFzaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCmluZGV4IGQ5MzhlNzY1OTc4NTI4NzNhY2I2YTNhZDRkODc0MWEyNGIz
NDQ4NDcuLjExMWNmOGJkYzI5ZGM2MWUyOGY4MjJlOTU3YjkzODgyYTQyNzk5YTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtNjg0OCw3
ICs2ODQ4LDcgQEAgc3RhdGljIENHSW1hZ2VSZWYgaW1hZ2VGcm9tUmVjdChXZWJDb3JlOjpGcmFt
ZSogZnJhbWUsIENHUmVjdCByZWN0KQogICAgIE9wdGlvblNldDxXZWJDb3JlOjpQYWludEJlaGF2
aW9yPiBvbGRQYWludEJlaGF2aW9yID0gZnJhbWUtPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpOwog
ICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3Iob2xkUGFpbnRCZWhhdmlvciB8IFdl
YkNvcmU6OlBhaW50QmVoYXZpb3I6OkZsYXR0ZW5Db21wb3NpdGluZ0xheWVycyB8IFdlYkNvcmU6
OlBhaW50QmVoYXZpb3I6OlNuYXBzaG90dGluZyk7CiAKLSAgICBCRUdJTl9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgCiAgICAgQ0dS
ZWN0IGJvdW5kcyA9IFt2aWV3IGJvdW5kc107CiAgICAgCkBAIC02ODkyLDcgKzY4OTIsNyBAQCBz
dGF0aWMgQ0dJbWFnZVJlZiBpbWFnZUZyb21SZWN0KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgQ0dS
ZWN0IHJlY3QpCiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdEltYWdlLmF1dG9yZWxlYXNlKCk7CiAg
ICAgCi0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TCiAKICAgICBmcmFtZS0+dmlldygpLT5zZXRQYWludEJlaGF2aW9yKG9sZFBhaW50
QmVoYXZpb3IpOwogICAgIHJldHVybiBuaWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>