<?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>216711</bug_id>
          
          <creation_ts>2020-09-18 12:16:46 -0700</creation_ts>
          <short_desc>[LFC][IFC] Do not use Display::Line geometry in layout</short_desc>
          <delta_ts>2020-09-18 19:53:17 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689901</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-18 12:16:46 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689920</commentid>
    <comment_count>1</comment_count>
      <attachid>409165</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-18 12:40:48 -0700</bug_when>
    <thetext>Created attachment 409165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690011</commentid>
    <comment_count>2</comment_count>
      <attachid>409185</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-18 18:20:53 -0700</bug_when>
    <thetext>Created attachment 409185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690029</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-18 19:52:54 -0700</bug_when>
    <thetext>Committed r267308: &lt;https://trac.webkit.org/changeset/267308&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409185.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690030</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-18 19:53:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/69190918&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409165</attachid>
            <date>2020-09-18 12:40:48 -0700</date>
            <delta_ts>2020-09-18 18:20:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216711-20200918124047.patch</filename>
            <type>text/plain</type>
            <size>37099</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ViNzU0MTFlMGNkZmUz
MDA0OGFjMjU0MTI2MTkwYWQ4ZjI0OTAzNS4uOGE1MWYxYzYzMDA4ODU4YzlkMjYwYmY5ZTc1ZDAz
Yjk0ZDFkMzM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTA5LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEbyBub3Qg
dXNlIERpc3BsYXk6OkxpbmUgZ2VvbWV0cnkgaW4gbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY3MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTGF5b3V0
OjpMaW5lR2VvbWV0cnkuCisgICAgICAgIExpbmVHZW9tZXRyeSBpcyB1c2VkIHRvIGhvbGQgdGhl
IGxvZ2ljYWwgZ2VvbWV0cnkgb2YgbGluZSBhbmQgaXQgaXMgaW5wdXQgdG8gc3Vic2VxdWVudCBs
YXlvdXRzLgorICAgICAgICBUaGlzIHBhdGNoIGlzIGFsc28gaW4gcHJlcGFyYXRpb24gZm9yIG1v
dmluZyBvdXQgdGhlICJkaXNwbGF5SW5saW5lSXRlbSIgY29uc3RydWN0aW9uIGZyb20gTGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6Y29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6Cisg
ICAgICAgICogbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6Om91dHB1dE1pc21hdGNoaW5nQ29tcGxleExpbmVJbmZvcm1hdGlvbklmTmVlZGVkKToKKyAg
ICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodEFuZE1hcmdpbik6CisgICAgICAg
ICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9kaXNw
bGF5dHJlZS9EaXNwbGF5TGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6
cmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpzY3JvbGxhYmxl
T3ZlcmZsb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6aW5rT3Zl
cmZsb3cgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6YmFzZWxpbmUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6TGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpsZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnJpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpib3R0b20gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6TGluZTo6d2lkdGggY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6TGluZTo6aGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6Om1vdmVWZXJ0aWNhbGx5KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpsaW5lTGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVHZW9t
ZXRyeUZvckxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6OmludmFsaWRhdGVGb3JtYXR0aW5nU3RhdGUpOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0SW5s
aW5lQm94ZXMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
U3RhdGU6OmxpbmVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9y
bWF0dGluZ1N0YXRlOjpsaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdTdGF0ZTo6YWRkTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUZvcm1hdHRpbmdTdGF0ZTo6Y2xlYXJMaW5lQW5kUnVucyk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZTo6c2hyaW5rRGlzcGxheUlubGluZUNvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OmNsZWFy
RGlzcGxheUlubGluZUNvbnRlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVHZW9tZXRyeS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lTGluZUdlb21ldHJ5Ojpsb2dpY2FsTGVmdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxpbmVHZW9tZXRyeTo6bG9naWNhbFJpZ2h0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGluZUdlb21ldHJ5Ojpsb2dpY2Fs
VG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGluZUdlb21ldHJ5
Ojpsb2dpY2FsQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
TGluZUdlb21ldHJ5Ojpsb2dpY2FsV2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVMaW5lR2VvbWV0cnk6OmxvZ2ljYWxIZWlnaHQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMaW5lR2VvbWV0cnk6OmxvZ2ljYWxSZWN0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGluZUdlb21ldHJ5OjpsaW5lQm94TG9n
aWNhbFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMaW5lR2Vv
bWV0cnk6OmJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
TGluZUdlb21ldHJ5Ojptb3ZlVmVydGljYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZUxpbmVHZW9tZXRyeTo6SW5saW5lTGluZUdlb21ldHJ5KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oOgorICAgICAgICAqIGxheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0
OjpsaW5lQ291bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OkxpbmVMYXlvdXQ6OmZpcnN0TGluZUJhc2VsaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpsYXN0TGluZUJhc2VsaW5lIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpwYWludCk6
CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpvdXRwdXRJbmxpbmVSdW5zKToKKyAgICAgICAgKiBsYXlv
dXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpzZXRVc2VkR2VvbWV0cnlG
b3JDZWxscyk6CisgICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRp
bmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6dXNlZEJhc2VsaW5lRm9yQ2VsbCk6CisKIDIwMjAt
MDktMTggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJ
RkNdIE1vdmUgY29tcHV0ZWRMaW5lTG9naWNhbFJlY3QgdG8gSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTVmNDRhZTNmNGY5Mjg2Mzk3NGM5ZDU1MjhhNjM4YTFiZDg1MDNj
Mi4uODdiMzVkOGMwYThjZTYyZDNkZmZmMTMxNTYwMjdhNzk0Mzc3NTA3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA2Miw2
ICsyMDYyLDcgQEAKIAkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjc3ODY4
NzIzNDkxQUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIg
LyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8q
IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxp
bmVHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGOTVERTREMjM3
Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjk1REU0QjIzN0I4ODlCMDBFNTE3RTEgLyog
SW52YWxpZGF0aW9uQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGOTVERTRFMjM3Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25T
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5
NURFNEMyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvblN0YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5OTVBMTYxQTcwNzU2MjAw
QTczNUY0IC8qIFdlYkdMU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkY5OTVBMTQxQTcwNzU2MjAwQTczNUY0IC8qIFdlYkdMU3luYy5oICovOyB9
OwpAQCAtOTU4Nyw2ICs5NTg4LDcgQEAKIAkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY4RjQ2MDEy
MUIwM0JCNDAwNDFBQzNBIC8qIEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkY4RjQ2MDMyMUIwM0JDNjAwNDFBQzNBIC8qIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nQ29udGV4
dFF1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGOTE0MjBGMjUxNTIx
MzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lTGluZUdlb21ldHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGOTVERTRCMjM3Qjg4OUIwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludmFsaWRhdGlvbkNvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5NURFNEMyMzdCODg5QzAwRTUxN0UxIC8q
IEludmFsaWRhdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
dmFsaWRhdGlvblN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGOTk1QTA5
MUE3MDcwRTYwMEE3MzVGNCAvKiBXZWJHTFF1ZXJ5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJHTFF1ZXJ5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTA2LDYg
KzE3NTA4LDcgQEAKIAkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRp
bmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTZGOTE0
MjBGMjUxNTIxMzcwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCAqLywKIAkJCQk2RkU3
RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKIAkJCQk2RjdDQTNDOTIwOEMyQjJFMDAy
RjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NBM0M4MjA4
QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLApAQCAtMzE3OTcs
NiArMzE4MDAsNyBAQAogCQkJCTZGOTVERTREMjM3Qjg4OUMwMEU1MTdFMSAvKiBJbnZhbGlkYXRp
b25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2Rjk1REU0RTIzN0I4ODlDMDBFNTE3RTEg
LyogSW52YWxpZGF0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMEI0QUFCMThEQTFD
Q0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGOTE0MjExMjUx
NTIxMzgwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFDMjFFNTdEMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDVGRjQ5OTIxNjJFMkJFMDA0QkQ4NkYgLyogSVNPQm94LmggaW4gSGVhZGVycyAq
LywKIAkJCQlDRDcyMEI0RjIyNjhCNTEzMDAwNDdGREUgLyogSVNPRmFpclBsYXlTdHJlYW1pbmdQ
c3NoQm94LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCA0MDQ0MmJiZDJiYmExMDQ1NmNhZmQ4
YjUwYjQ3MjQyMDFlMzMzZDRjLi41MzcwNTk3NjU5ZWQ1YmE2NTA1ZGI5ODVhMWQwODUzMDk5NThh
ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwCkBAIC0xOTQsMTYgKzE5NCwxNyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6Y29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChj
bwogICAgIGF1dG8gYm90dG9tID0gYm9yZGVyQW5kUGFkZGluZ1RvcDsKICAgICBhdXRvJiBmb3Jt
YXR0aW5nUm9vdENvbnRhaW5lciA9IGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KTsK
ICAgICBpZiAoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCgpKSB7Ci0gICAgICAgIGF1dG8mIGxpbmVzID0gbGF5b3V0U3RhdGUuZXN0YWJs
aXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIpLmRpc3Bs
YXlJbmxpbmVDb250ZW50KCktPmxpbmVzOworICAgICAgICBhdXRvJiBsaW5lcyA9IGxheW91dFN0
YXRlLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdSb290Q29udGFp
bmVyKS5saW5lcygpOwogICAgICAgICAvLyBFdmVuIGVtcHR5IGNvbnRhaW5lcnMgZ2VuZXJhdGUg
b25lIGxpbmUuIAogICAgICAgICBBU1NFUlQoIWxpbmVzLmlzRW1wdHkoKSk7Ci0gICAgICAgIHRv
cCA9IGxpbmVzLmZpcnN0KCkudG9wKCk7Ci0gICAgICAgIGJvdHRvbSA9IGxpbmVzLmxhc3QoKS5i
b3R0b20oKTsKKyAgICAgICAgdG9wID0gbGluZXMuZmlyc3QoKS5sb2dpY2FsVG9wKCk7CisgICAg
ICAgIGJvdHRvbSA9IGxpbmVzLmxhc3QoKS5sb2dpY2FsQm90dG9tKCk7CiAgICAgfSBlbHNlIGlm
IChmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5lc3RhYmxpc2hlc0ZsZXhGb3JtYXR0aW5nQ29udGV4
dCgpKSB7CiAgICAgICAgIGF1dG8mIGxpbmVzID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGbGV4
Rm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdSb290Q29udGFpbmVyKS5saW5lcygpOwogICAgICAg
ICBBU1NFUlQoIWxpbmVzLmlzRW1wdHkoKSk7Ci0gICAgICAgIHRvcCA9IGxpbmVzLmZpcnN0KCku
dG9wKCk7Ci0gICAgICAgIGJvdHRvbSA9IGxpbmVzLmxhc3QoKS5ib3R0b20oKTsKKyAgICAgICAg
Ly8gRklYTUU6IE1vdmUgZmxleCBvdmVyIHRvIGxheW91dCBnZW9tZXRyeS4KKyAgICAgICAgdG9w
ID0gbGluZXMuZmlyc3QoKS5yZWN0KCkueSgpOworICAgICAgICBib3R0b20gPSBsaW5lcy5sYXN0
KCkucmVjdCgpLm1heFkoKTsKICAgICB9IGVsc2UgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVy
LmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGZvcm1hdHRpbmdSb290Q29u
dGFpbmVyLmVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIHx8IGZvcm1hdHRpbmdS
b290Q29udGFpbmVyLmlzRG9jdW1lbnRCb3goKSkgewogICAgICAgICBpZiAoZm9ybWF0dGluZ1Jv
b3RDb250YWluZXIuaGFzSW5GbG93Q2hpbGQoKSkgewogICAgICAgICAgICAgYXV0byYgZmlyc3RC
b3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpmb3JtYXR0aW5n
Um9vdENvbnRhaW5lci5maXJzdEluRmxvd0NoaWxkKCksIEVzY2FwZVJlYXNvbjo6TmVlZHNHZW9t
ZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L1ZlcmlmaWNhdGlvbi5jcHAKaW5kZXggYmRmNTc2MzdmOWMwYThlYWQyM2Q3YTY2YWFhMDJjY2Qx
MDE2ZmMyMS4uZjE2ZTM3MWMwNmVkY2QwODE0OGQ1ZDRiZGVkYmViNjllNmEyZDJlMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L1ZlcmlmaWNhdGlvbi5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0
aWMgYm9vbCBvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5lSW5mb3JtYXRpb25JZk5lZWRlZChU
ZXh0U3RyZWFtJiBzdHJlYW0sCiAgICAgZm9yICh1bnNpZ25lZCBpbmxpbmVCb3hJbmRleCA9IDA7
IGlubGluZUJveEluZGV4IDwgaW5saW5lQm94ZXMuc2l6ZSgpICYmIHJ1bkluZGV4IDwgZGlzcGxh
eVJ1bnMuc2l6ZSgpOyArK2lubGluZUJveEluZGV4KSB7CiAgICAgICAgIGF1dG8mIGRpc3BsYXlS
dW4gPSBkaXNwbGF5UnVuc1tydW5JbmRleF07CiAgICAgICAgIGF1dG8qIGlubGluZUJveCA9IGlu
bGluZUJveGVzW2lubGluZUJveEluZGV4XTsKLSAgICAgICAgYXV0byogaW5saW5lVGV4dEJveCA9
IGlzPElubGluZVRleHRCb3g+KGlubGluZUJveCkgPyBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pihp
bmxpbmVCb3gpIDogbnVsbHB0cjsKKyAgICAgICAgYXV0byogaW5saW5lVGV4dEJveCA9IGlzPFdl
YkNvcmU6OklubGluZVRleHRCb3g+KGlubGluZUJveCkgPyBkb3duY2FzdDxXZWJDb3JlOjpJbmxp
bmVUZXh0Qm94PihpbmxpbmVCb3gpIDogbnVsbHB0cjsKICAgICAgICAgYm9vbCBtYXRjaGluZ1J1
bnMgPSBpbmxpbmVUZXh0Qm94ID8gY2hlY2tGb3JNYXRjaGluZ1RleHRSdW5zKGRpc3BsYXlSdW4s
ICppbmxpbmVUZXh0Qm94KSA6IGNoZWNrRm9yTWF0Y2hpbmdOb25UZXh0UnVucyhkaXNwbGF5UnVu
LCAqaW5saW5lQm94KTsKIAogICAgICAgICBpZiAoIW1hdGNoaW5nUnVucykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IGVmMjE0YjdjYTBhMTE3
MWZkZTkzNmI2NzE1N2VkM2FkNDRmM2MyNTMuLmMyMWU1MjQzZjI4ZGQyZTJjZDQ0NGFkZWY5ZDMy
Nzg5ODUxYTg5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKQEAgLTc3LDEwICs3NywxMCBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZEhlaWdodAogICAgICAg
ICAvLyAxLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGxhc3QgbGluZSBib3gsIGlmIHRoZSBib3gg
ZXN0YWJsaXNoZXMgYSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IHdpdGggb25lIG9yIG1vcmUg
bGluZXMKICAgICAgICAgYXV0byYgbGF5b3V0Q29udGFpbmVyID0gZG93bmNhc3Q8Q29udGFpbmVy
Qm94PihsYXlvdXRCb3gpOwogICAgICAgICBpZiAobGF5b3V0Q29udGFpbmVyLmVzdGFibGlzaGVz
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSkgewotICAgICAgICAgICAgYXV0byYgbGluZXMgPSBs
YXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGxheW91dENvbnRh
aW5lcikuZGlzcGxheUlubGluZUNvbnRlbnQoKS0+bGluZXM7CisgICAgICAgICAgICBhdXRvJiBs
aW5lcyA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUobGF5
b3V0Q29udGFpbmVyKS5saW5lcygpOwogICAgICAgICAgICAgLy8gRXZlbiBlbXB0eSBjb250YWlu
ZXJzIGdlbmVyYXRlIG9uZSBsaW5lLiAKICAgICAgICAgICAgIEFTU0VSVCghbGluZXMuaXNFbXB0
eSgpKTsKLSAgICAgICAgICAgIHJldHVybiB7IHRvTGF5b3V0VW5pdChsaW5lcy5sYXN0KCkuYm90
dG9tKCkpIC0gYm9yZGVyQW5kUGFkZGluZ1RvcCwgbm9uQ29sbGFwc2VkTWFyZ2luIH07CisgICAg
ICAgICAgICByZXR1cm4geyB0b0xheW91dFVuaXQobGluZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20o
KSkgLSBib3JkZXJBbmRQYWRkaW5nVG9wLCBub25Db2xsYXBzZWRNYXJnaW4gfTsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIDIuIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgYm90dG9tIChwb3NzaWJs
eSBjb2xsYXBzZWQpIG1hcmdpbiBvZiBpdHMgbGFzdCBpbi1mbG93IGNoaWxkLCBpZiB0aGUgY2hp
bGQncyBib3R0b20gbWFyZ2luLi4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCA4OTlj
YTk3YzU1NTYwZGExYWM3YTk1YTMzYWE1NjBiYjU3ZTFmOWU2Li5lMDI0MzliNmEyOTAyZjJiMDRj
MWVhMzRlMzM4MzI1OTFkYjQ1YTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTQw
NiwxMSArNDA2LDExIEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29uc3QgQm94JiBsCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBhdXRvIGlzQ29uc2lkZXJlZEVtcHR5ID0gWyZd
IHsKLSAgICAgICAgICAgICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5l
c3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb250YWluZXJCb3gpOwotICAgICAgICAg
ICAgICAgIGlmIChhdXRvKiBpbmxpbmVDb250ZW50ID0gZm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlJ
bmxpbmVDb250ZW50KCk7IGlubGluZUNvbnRlbnQgJiYgIWlubGluZUNvbnRlbnQtPmxpbmVzLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVGb3JtYXR0aW5nU3RhdGUgPSBs
YXlvdXRTdGF0ZS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShjb250YWluZXJCb3gp
OworICAgICAgICAgICAgICAgIGlmICghaW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCkuaXNF
bXB0eSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgLy8gQW55IGZsb2F0IGJveCBpbiB0aGlzIGZvcm1hdHRpbmcgY29udGV4dCBwcmV2ZW50cyBj
b2xsYXBzaW5nIHRocm91Z2guCi0gICAgICAgICAgICAgICAgYXV0byYgZmxvYXRzID0gZm9ybWF0
dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKS5mbG9hdHMoKTsKKyAgICAgICAgICAgICAgICBhdXRv
JiBmbG9hdHMgPSBpbmxpbmVGb3JtYXR0aW5nU3RhdGUuZmxvYXRpbmdTdGF0ZSgpLmZsb2F0cygp
OwogICAgICAgICAgICAgICAgIGZvciAoYXV0byYgZmxvYXRJdGVtIDogZmxvYXRzKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChmbG9hdEl0ZW0uaXNJbkZvcm1hdHRpbmdDb250ZXh0T2YoY29u
dGFpbmVyQm94KSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKaW5kZXggODFm
NDRmZTRiOTNiYjQzZjMxMWIzYTc2OGE4MDU2NmMyMjhhNjAzOC4uMTAwZDA0Zjk2MGJiMmNmNDBh
ODY1OTc0Njg3NDMxOGVmMDk2Mzk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShM
QVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiSW5saW5lUmVjdC5oIgorI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgRGlz
cGxheSB7CkBAIC0zNSwzMiArMzUsMjEgQEAgbmFtZXNwYWNlIERpc3BsYXkgewogY2xhc3MgTGlu
ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgTGluZShjb25z
dCBMYXlvdXQ6OklubGluZVJlY3QmLCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIHNjcm9sbGFi
bGVPdmVyZmxvdywgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgSW5saW5l
TGF5b3V0VW5pdCBiYXNlbGluZSk7CisgICAgTGluZShjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBG
bG9hdFJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdywgY29uc3QgRmxvYXRSZWN0JiBpbmtPdmVyZmxv
dywgZmxvYXQgYmFzZWxpbmUpOwogCi0gICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9Ci0gICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0
JiBzY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVPdmVyZmxv
dzsgfQotICAgIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7
IHJldHVybiBtX2lua092ZXJmbG93OyB9Ci0KLSAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBj
b25zdCB7IHJldHVybiBtX3JlY3QubGVmdCgpOyB9Ci0gICAgSW5saW5lTGF5b3V0VW5pdCByaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5yaWdodCgpOyB9Ci0gICAgSW5saW5lTGF5b3V0VW5p
dCB0b3AoKSBjb25zdCB7IHJldHVybiBtX3JlY3QudG9wKCk7IH0KLSAgICBJbmxpbmVMYXlvdXRV
bml0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5ib3R0b20oKTsgfQotCi0gICAgSW5s
aW5lTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpOyB9Ci0g
ICAgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QuaGVpZ2h0
KCk7IH0KLQotICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5pdCk7Ci0KLSAg
ICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsg
fQorICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQor
ICAgIGNvbnN0IEZsb2F0UmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxhYmxlT3ZlcmZsb3c7IH0KKyAgICBjb25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93
KCkgY29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQorICAgIGZsb2F0IGJhc2VsaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsgfQogCiBwcml2YXRlOgotICAgIExheW91dDo6SW5s
aW5lUmVjdCBtX3JlY3Q7Ci0gICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1fc2Nyb2xsYWJsZU92ZXJm
bG93OwotICAgIExheW91dDo6SW5saW5lUmVjdCBtX2lua092ZXJmbG93OwotICAgIElubGluZUxh
eW91dFVuaXQgbV9iYXNlbGluZSB7IDAgfTsKKyAgICBGbG9hdFJlY3QgbV9yZWN0OworICAgIEZs
b2F0UmVjdCBtX3Njcm9sbGFibGVPdmVyZmxvdzsKKyAgICBGbG9hdFJlY3QgbV9pbmtPdmVyZmxv
dzsKKyAgICBmbG9hdCBtX2Jhc2VsaW5lIHsgMCB9OwogfTsKIAotaW5saW5lIExpbmU6OkxpbmUo
Y29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3Qm
IHNjcm9sbGFibGVPdmVyZmxvdywgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxv
dywgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSkKK2lubGluZSBMaW5lOjpMaW5lKGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0
IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3csIGZsb2F0IGJhc2VsaW5lKQogICAgIDogbV9yZWN0KHJl
Y3QpCiAgICAgLCBtX3Njcm9sbGFibGVPdmVyZmxvdyhzY3JvbGxhYmxlT3ZlcmZsb3cpCiAgICAg
LCBtX2lua092ZXJmbG93KGlua092ZXJmbG93KQpAQCAtNjgsMTIgKzU3LDYgQEAgaW5saW5lIExp
bmU6OkxpbmUoY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0LCBjb25zdCBMYXlvdXQ6Oklu
bGluZVJlY3QmIHNjcm8KIHsKIH0KIAotaW5saW5lIHZvaWQgTGluZTo6bW92ZVZlcnRpY2FsbHko
SW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpCi17Ci0gICAgbV9yZWN0Lm1vdmVWZXJ0aWNhbGx5KG9m
ZnNldCk7Ci0gICAgbV9pbmtPdmVyZmxvdy5tb3ZlVmVydGljYWxseShvZmZzZXQpOwotfQotCiB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNw
bGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eVBhaW50ZXIuY3BwCmluZGV4IDhiMzZiNWMxMDcyOTRjYjE0MThkYjY4NDI3MTdmNTQxOTA4ZDA3
MjEuLjczZjJlMGEyMDliZDEwYzljZDcyZjI3Zjc0YThhZTIxYWU2MzViZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcApA
QCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRpYyB2b2lkIHBhaW50SW5saW5lQ29udGVudChHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIExheW91dFBvaW50IGFic29sdXRlT2ZmCiAgICAgICAgICAgICBh
dXRvJiBsaW5lID0gZGlzcGxheUlubGluZUNvbnRlbnQtPmxpbmVGb3JSdW4ocnVuKTsKICAgICAg
ICAgICAgIGF1dG8gYmFzZWxpbmUgPSBhYnNvbHV0ZU9mZnNldC55KCkgKyBydW4udG9wKCkgKyBz
dHlsZS5mb250TWV0cmljcygpLmFzY2VudCgpOwogICAgICAgICAgICAgYXV0byBleHBhbnNpb24g
PSBydW4uZXhwYW5zaW9uKCk7Ci0gICAgICAgICAgICBhdXRvIHRleHRSdW4gPSBUZXh0UnVuIHsg
dGV4dENvbnRlbnQtPmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmUubGVmdCgpLCBleHBhbnNp
b24uaG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9yIH07CisgICAgICAgICAg
ICBhdXRvIHRleHRSdW4gPSBUZXh0UnVuIHsgdGV4dENvbnRlbnQtPmNvbnRlbnQoKSwgcnVuLmxl
ZnQoKSAtIGxpbmUucmVjdCgpLngoKSwgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4
cGFuc2lvbi5iZWhhdmlvciB9OwogICAgICAgICAgICAgdGV4dFJ1bi5zZXRUYWJTaXplKCFzdHls
ZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICAgICAgICAgIGNv
bnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwgdGV4dFJ1biwgeyBhYnNvbHV0ZUxl
ZnQsIGJhc2VsaW5lIH0pOwogICAgICAgICB9IGVsc2UgaWYgKGF1dG8qIGNhY2hlZEltYWdlID0g
cnVuLmltYWdlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBh
Mjg5ODJiNjIyYzgwZDI3OTIwODhlMWUxYzhhZGQyM2QxZWVjZTcwLi4zYjdhNDNkYjNmYzc0Mjgy
NTkzYTU1NWEzMDVlOTJiYjdkYzZhMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
bGluZUxheW91dChJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsIExpbmVCdWlsZGVyOjoKICAgICB9
OwogICAgIE9wdGlvbmFsPFByZXZpb3VzTGluZT4gcHJldmlvdXNMaW5lOwogICAgIGF1dG8gZmxv
YXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgcm9vdCgpLCAqdGhpcywgZm9ybWF0dGlu
Z1N0YXRlKCkuZmxvYXRpbmdTdGF0ZSgpIH07Ci0gICAgYXV0byBpc0ZpcnN0TGluZSA9ICFmb3Jt
YXR0aW5nU3RhdGUoKS5kaXNwbGF5SW5saW5lQ29udGVudCgpIHx8IGZvcm1hdHRpbmdTdGF0ZSgp
LmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVzLmlzRW1wdHkoKTsKKyAgICBhdXRvIGlzRmly
c3RMaW5lID0gZm9ybWF0dGluZ1N0YXRlKCkubGluZXMoKS5pc0VtcHR5KCk7CiAKICAgICBhdXRv
IGxpbmVCdWlsZGVyID0gTGluZUJ1aWxkZXIgeyAqdGhpcywgZmxvYXRpbmdDb250ZXh0LCByb290
KCksIGlubGluZUl0ZW1zIH07CiAgICAgd2hpbGUgKCFuZWVkc0xheW91dFJhbmdlLmlzRW1wdHko
KSkgewpAQCAtMzk5LDggKzM5OSwxNCBAQCBJbmxpbmVSZWN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbAogICAgIGF1
dG8gbGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0ID0gZ2VvbWV0cnkuY29tcHV0ZWRMaW5lTG9naWNh
bFJlY3QobGluZUJveCwgcm9vdCgpLnN0eWxlKCksIGxpbmVDb250ZW50KTsKICAgICBhdXRvIGxp
bmVMb2dpY2FsUmVjdCA9IGxpbmVSZWN0QW5kTGluZUJveE9mZnNldC5sb2dpY2FsUmVjdDsKICAg
ICBhdXRvIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCA9IGxpbmVSZWN0QW5kTGluZUJveE9mZnNldC5s
aW5lQm94VmVydGljYWxPZmZzZXQ7Ci0gICAgYXV0byBzY3JvbGxhYmxlT3ZlcmZsb3cgPSBJbmxp
bmVSZWN0IHsgbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgc3RkOjptYXgobGluZUxvZ2ljYWxS
ZWN0LndpZHRoKCksIGxpbmVCb3gubG9naWNhbFdpZHRoKCkpLCBzdGQ6Om1heChsaW5lTG9naWNh
bFJlY3QuaGVpZ2h0KCksIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCArIGxpbmVCb3gubG9naWNhbEhl
aWdodCgpKSB9OwogCisgICAgYXV0byBjb25zdHJ1Y3RMaW5lR2VvbWV0cnkgPSBbJl0geworICAg
ICAgICBhdXRvIGxpbmVCb3hMb2dpY2FsUmVjdCA9IElubGluZVJlY3QgeyBsaW5lTG9naWNhbFJl
Y3QudG9wKCkgKyBsaW5lQm94VmVydGljYWxPZmZzZXQsIGxpbmVMb2dpY2FsUmVjdC5sZWZ0KCkg
KyBsaW5lQm94Lmhvcml6b250YWxBbGlnbm1lbnRPZmZzZXQoKS52YWx1ZU9yKElubGluZUxheW91
dFVuaXQgeyB9KSwgbGluZUJveC5sb2dpY2FsV2lkdGgoKSwgbGluZUJveC5sb2dpY2FsSGVpZ2h0
KCkgfTsKKyAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmUoeyBsaW5lTG9naWNhbFJlY3Qs
IGxpbmVCb3hMb2dpY2FsUmVjdCwgbGluZUJveFZlcnRpY2FsT2Zmc2V0ICsgbGluZUJveC5hbGln
bm1lbnRCYXNlbGluZSgpIH0pOworICAgIH07CisgICAgY29uc3RydWN0TGluZUdlb21ldHJ5KCk7
CisKKyAgICBhdXRvIHNjcm9sbGFibGVPdmVyZmxvdyA9IElubGluZVJlY3QgeyBsaW5lTG9naWNh
bFJlY3QudG9wTGVmdCgpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJlY3Qud2lkdGgoKSwgbGluZUJv
eC5sb2dpY2FsV2lkdGgoKSksIHN0ZDo6bWF4KGxpbmVMb2dpY2FsUmVjdC5oZWlnaHQoKSwgbGlu
ZUJveFZlcnRpY2FsT2Zmc2V0ICsgbGluZUJveC5sb2dpY2FsSGVpZ2h0KCkpIH07CiAgICAgaWYg
KCFsaW5lQ29udGVudC5mbG9hdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZmxvYXRpbmdD
b250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgcm9vdCgpLCAqdGhpcywgZm9ybWF0dGluZ1N0YXRl
LmZsb2F0aW5nU3RhdGUoKSB9OwogICAgICAgICAvLyBNb3ZlIGZsb2F0cyB0byB0aGVpciBmaW5h
bCBwb3NpdGlvbi4KQEAgLTQ5Miw3ICs0OTgsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250
ZXh0OjppbnZhbGlkYXRlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEludmFsaWRhdGlvblN0YXRlJgog
ewogICAgIC8vIEZpbmQgb3V0IHdoYXQgd2UgbmVlZCB0byBpbnZhbGlkYXRlLiBUaGlzIGlzIHdo
ZXJlIHdlIGFkZCBzb21lIHNtYXJ0cyB0byBkbyBwYXJ0aWFsIGxpbmUgbGF5b3V0LgogICAgIC8v
IEZvciBub3cgbGV0J3MganVzdCBjbGVhciB0aGUgcnVucy4KLSAgICBmb3JtYXR0aW5nU3RhdGUo
KS5jbGVhckRpc3BsYXlJbmxpbmVDb250ZW50KCk7CisgICAgZm9ybWF0dGluZ1N0YXRlKCkuY2xl
YXJMaW5lQW5kUnVucygpOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFsc28gd2hlcmUgd2Ugd291
bGQgZGVsZXRlIGlubGluZSBpdGVtcyBpZiB0aGVpciBjb250ZW50IGNoYW5nZWQuCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggNjIx
MmJlODEyMzMwZDNmNzc2ZTMyZDllZGE1MDJhOTQ4ZDQzMzU3Zi4uOTk0YjliYmM5YjkxMjhlNzBi
Y2YxZmIxZTIxMmQ4NzU3NDExMTZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTI0NCw4ICsyNDQsOCBAQCB2b2lkIExpbmVCb3hCdWls
ZGVyOjpjb25zdHJ1Y3RJbmxpbmVCb3hlcyhMaW5lQm94JiBsaW5lQm94LCBjb25zdCBMaW5lOjpS
dW5MaXN0JgogICAgICAgICAgICAgICAgIC8vICAgICAtLS0tLXwtfC18LS0tLS0tLS0tLSA8LSBi
YXNlbGluZQogICAgICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0
dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0
ZShkb3duY2FzdDxDb250YWluZXJCb3g+KGlubGluZUxldmVsQm94KSk7Ci0gICAgICAgICAgICAg
ICAgYXV0byYgbGFzdExpbmUgPSBmb3JtYXR0aW5nU3RhdGUuZGlzcGxheUlubGluZUNvbnRlbnQo
KS0+bGluZXMubGFzdCgpOwotICAgICAgICAgICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGlu
ZSA9IGxhc3RMaW5lLnRvcCgpICsgbGFzdExpbmUuYmFzZWxpbmUoKTsKKyAgICAgICAgICAgICAg
ICBhdXRvJiBsYXN0TGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lcygpLmxhc3QoKTsKKyAgICAg
ICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZS5sb2dpY2FsVG9w
KCkgKyBsYXN0TGluZS5iYXNlbGluZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gaW5s
aW5lTGV2ZWxCb3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSArIGlubGluZUxldmVsQm94R2VvbWV0
cnkuYm9yZGVyVG9wKCkgKyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1
ZU9yKDApICsgaW5saW5lQmxvY2tCYXNlbGluZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGF1dG8gcmVjdCA9IElubGluZVJlY3QgeyB7IH0sIGxvZ2ljYWxMZWZ0LCBydW4ubG9naWNhbFdp
ZHRoKCksIGxvZ2ljYWxIZWlnaHQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKaW5kZXgg
MmQ5N2QwMGY0OTZmOTBjMDcwM2I2NGY2MmFjN2UzOWRmMDc5ZDE5Ny4uNjJkZjA4NmJhN2U3NjQy
YzhlOWM5NDE2YzZkMDJlMGIzZDY1OGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgK
QEAgLTMwLDEyICszMCwxNCBAQAogI2luY2x1ZGUgIkRpc3BsYXlJbmxpbmVDb250ZW50LmgiCiAj
aW5jbHVkZSAiRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlbS5oIgorI2lu
Y2x1ZGUgIklubGluZUxpbmVHZW9tZXRyeS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKIHVzaW5nIElubGlu
ZUl0ZW1zID0gVmVjdG9yPElubGluZUl0ZW0+OwordXNpbmcgSW5saW5lTGluZXMgPSBWZWN0b3I8
SW5saW5lTGluZUdlb21ldHJ5PjsKIAogLy8gSW5saW5lRm9ybWF0dGluZ1N0YXRlIGhvbGRzIHRo
ZSBzdGF0ZSBmb3IgYSBwYXJ0aWN1bGFyIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgdHJlZS4K
IGNsYXNzIElubGluZUZvcm1hdHRpbmdTdGF0ZSA6IHB1YmxpYyBGb3JtYXR0aW5nU3RhdGUgewpA
QCAtNDgsMTUgKzUwLDIwIEBAIHB1YmxpYzoKICAgICBjb25zdCBJbmxpbmVJdGVtcyYgaW5saW5l
SXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUl0ZW1zOyB9CiAgICAgdm9pZCBhZGRJbmxp
bmVJdGVtKElubGluZUl0ZW0mJiBpbmxpbmVJdGVtKSB7IG1faW5saW5lSXRlbXMuYXBwZW5kKFdU
Rk1vdmUoaW5saW5lSXRlbSkpOyB9CiAKKyAgICBjb25zdCBJbmxpbmVMaW5lcyYgbGluZXMoKSBj
b25zdCB7IHJldHVybiBtX2xpbmVzOyB9CisgICAgSW5saW5lTGluZXMmIGxpbmVzKCkgeyByZXR1
cm4gbV9saW5lczsgfQorICAgIHZvaWQgYWRkTGluZShjb25zdCBJbmxpbmVMaW5lR2VvbWV0cnkm
IGxpbmUpIHsgbV9saW5lcy5hcHBlbmQobGluZSk7IH0KKwogICAgIGNvbnN0IERpc3BsYXk6Oklu
bGluZUNvbnRlbnQqIGRpc3BsYXlJbmxpbmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5SW5saW5lQ29udGVudC5nZXQoKTsgfQogICAgIERpc3BsYXk6OklubGluZUNvbnRlbnQmIGVu
c3VyZURpc3BsYXlJbmxpbmVDb250ZW50KCk7CiAKLSAgICB2b2lkIGNsZWFyRGlzcGxheUlubGlu
ZUNvbnRlbnQoKSB7IG1fZGlzcGxheUlubGluZUNvbnRlbnQgPSBudWxscHRyOyB9CisgICAgdm9p
ZCBjbGVhckxpbmVBbmRSdW5zKCk7CiAgICAgdm9pZCBzaHJpbmtEaXNwbGF5SW5saW5lQ29udGVu
dCgpOwogCiBwcml2YXRlOgogICAgIC8vIENhY2hlYWJsZSBpbnB1dCB0byBsaW5lIGxheW91dC4K
ICAgICBJbmxpbmVJdGVtcyBtX2lubGluZUl0ZW1zOworICAgIElubGluZUxpbmVzIG1fbGluZXM7
CiAKICAgICBSZWZQdHI8RGlzcGxheTo6SW5saW5lQ29udGVudD4gbV9kaXNwbGF5SW5saW5lQ29u
dGVudDsKIH07CkBAIC02OCw4ICs3NSwxNSBAQCBpbmxpbmUgRGlzcGxheTo6SW5saW5lQ29udGVu
dCYgSW5saW5lRm9ybWF0dGluZ1N0YXRlOjplbnN1cmVEaXNwbGF5SW5saW5lQ29udGVudAogICAg
IHJldHVybiAqbV9kaXNwbGF5SW5saW5lQ29udGVudDsKIH0KIAoraW5saW5lIHZvaWQgSW5saW5l
Rm9ybWF0dGluZ1N0YXRlOjpjbGVhckxpbmVBbmRSdW5zKCkgCit7IAorICAgIG1fZGlzcGxheUlu
bGluZUNvbnRlbnQgPSBudWxscHRyOworICAgIG1fbGluZXMuY2xlYXIoKTsKK30KKwogaW5saW5l
IHZvaWQgSW5saW5lRm9ybWF0dGluZ1N0YXRlOjpzaHJpbmtEaXNwbGF5SW5saW5lQ29udGVudCgp
CiB7CisgICAgbV9saW5lcy5zaHJpbmtUb0ZpdCgpOwogICAgIGlmICghbV9kaXNwbGF5SW5saW5l
Q29udGVudCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZGlzcGxheUlubGluZUNvbnRlbnQtPnJ1
bnMuc2hyaW5rVG9GaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCBjZmY1ZmYwYjM3
ZTIyZmIyODVhMDg1ZWRjM2RjNWYwMzA5YzEwYWM0Li5iZWE1YmEzYWUyOGZkOGE1OTdhODg5Y2My
ZDQ2YjU1NTZmNWJlMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJMYXlv
dXRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgorI2luY2x1ZGUgIkxheW91
dFN0YXRlLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlRleHRVdGlsLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IDU2ZDBmMDUzZTU5YmVjMDhi
NmQwNjNkNDkzYTg0YzM4Yzc2MTRmNmMuLjdkZjk4ZDk2YzE1Zjk5ZTRlNjEwYWU3YTgxMWIzYjky
MmU3ZmY2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJJbmxpbmVMaW5lLmgiCiAjaW5jbHVkZSAiSW5saW5l
TGluZUJyZWFrZXIuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUdlb21ldHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lR2VvbWV0cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjhmZDc1
NTFkZDEzZTA4OTMyOThhZGMzNzAxMjk0ZjUyYjgzZjIyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUdlb21ldHJ5LmgK
QEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFzcyBJbmxpbmVM
aW5lR2VvbWV0cnkgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IElubGluZUxpbmVHZW9tZXRyeShjb25zdCBJbmxpbmVSZWN0JiBsaW5lTG9naWNhbFJlY3QsIGNv
bnN0IElubGluZVJlY3QmIGxpbmVCb3hMb2dpY2FsUmVjdCwgSW5saW5lTGF5b3V0VW5pdCBhbGln
bWVudEJhc2VsaW5lKTsKKworICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25z
dCB7IHJldHVybiBsb2dpY2FsUmVjdCgpLmxlZnQoKTsgfTsKKyAgICBJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxSZWN0KCkucmlnaHQoKTsgfTsK
KworICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGxvZ2lj
YWxSZWN0KCkudG9wKCk7IH07CisgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKCkg
Y29uc3QgeyByZXR1cm4gbG9naWNhbFJlY3QoKS5ib3R0b20oKTsgfTsKKworICAgIElubGluZUxh
eW91dFVuaXQgbG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbG9naWNhbFJlY3QoKS53aWR0
aCgpOyB9OworICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGxvZ2ljYWxSZWN0KCkuaGVpZ2h0KCk7IH07CisKKyAgICBjb25zdCBJbmxpbmVSZWN0JiBs
b2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3Q7IH0KKyAgICBjb25zdCBJ
bmxpbmVSZWN0JiBsaW5lQm94TG9naWNhbFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2xpbmVCb3hM
b2dpY2FsUmVjdDsgfQorCisgICAgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYWxpZ21lbnRCYXNlbGluZTsgfQorCisgICAgdm9pZCBtb3ZlVmVydGljYWxseShJ
bmxpbmVMYXlvdXRVbml0IG9mZnNldCkgeyBtX2xvZ2ljYWxSZWN0Lm1vdmVWZXJ0aWNhbGx5KG9m
ZnNldCk7IH0KKworcHJpdmF0ZToKKyAgICBJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CisgICAg
SW5saW5lUmVjdCBtX2xpbmVCb3hMb2dpY2FsUmVjdDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IG1f
YWxpZ21lbnRCYXNlbGluZSB7IDAgfTsKK307CisKK2lubGluZSBJbmxpbmVMaW5lR2VvbWV0cnk6
OklubGluZUxpbmVHZW9tZXRyeShjb25zdCBJbmxpbmVSZWN0JiBsaW5lTG9naWNhbFJlY3QsIGNv
bnN0IElubGluZVJlY3QmIGxpbmVCb3hMb2dpY2FsUmVjdCwgSW5saW5lTGF5b3V0VW5pdCBhbGln
bWVudEJhc2VsaW5lKQorICAgIDogbV9sb2dpY2FsUmVjdChsaW5lTG9naWNhbFJlY3QpCisgICAg
LCBtX2xpbmVCb3hMb2dpY2FsUmVjdChsaW5lQm94TG9naWNhbFJlY3QpCisgICAgLCBtX2FsaWdt
ZW50QmFzZWxpbmUoYWxpZ21lbnRCYXNlbGluZSkKK3sKK30KKworfQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRl
eHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVU
ZXh0SXRlbS5oCmluZGV4IDc0MTE4OWVlMjRkODA4NmY1NzZhMTZhY2Y0NTZmNjcwY2I3ZjhiNDcu
LmVmMTlmZGQ5ZTRlN2Y1YjkwMzI0NWQ3Mjg5ZDZmZjRkYmI5MmVhZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0u
aApAQCAtMjcsMTMgKzI3LDE0IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKIAotI2luY2x1ZGUgIklubGluZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklu
bGluZUl0ZW0uaCIKICNpbmNsdWRlICJMYXlvdXRJbmxpbmVUZXh0Qm94LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCit1c2luZyBJbmxpbmVJdGVtcyA9IFZl
Y3RvcjxJbmxpbmVJdGVtPjsKKwogY2xhc3MgSW5saW5lVGV4dEl0ZW0gOiBwdWJsaWMgSW5saW5l
SXRlbSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1z
KElubGluZUl0ZW1zJiwgY29uc3QgSW5saW5lVGV4dEJveCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmNwcAppbmRleCBlMjkyMWEyZTNiMThjZDAzM2IwN2FjZDBkYzNhZWI5ZGY5ODVk
OWE2Li41ZGJkYWUwNGE4Mjk0Mjc4ODc5NDI2Mzk2NTQ4YTM3M2I4MmZjZjI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcApAQCAtMTU2LDQyICsxNTYsMzcgQEAgdm9pZCBMaW5l
TGF5b3V0OjpwcmVwYXJlRmxvYXRpbmdTdGF0ZSgpCiAKIExheW91dFVuaXQgTGluZUxheW91dDo6
Y29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdAogewotICAgIGF1dG8mIGxpbmVzID0gZGlzcGxh
eUlubGluZUNvbnRlbnQoKS0+bGluZXM7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBsaW5lcy5s
YXN0KCkuYm90dG9tKCkgLSBsaW5lcy5maXJzdCgpLnRvcCgpIH07CisgICAgYXV0byYgbGluZXMg
PSBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOworICAgIHJldHVybiBMYXlvdXRVbml0
IHsgbGluZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKSAtIGxpbmVzLmZpcnN0KCkubG9naWNhbFRv
cCgpIH07CiB9CiAKIHNpemVfdCBMaW5lTGF5b3V0OjpsaW5lQ291bnQoKSBjb25zdAogewotICAg
IGF1dG8qIGlubGluZUNvbnRlbnQgPSBkaXNwbGF5SW5saW5lQ29udGVudCgpOwotICAgIGlmICgh
aW5saW5lQ29udGVudCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKGlubGluZUNvbnRlbnQt
PnJ1bnMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gaW5saW5lQ29u
dGVudC0+bGluZXMuc2l6ZSgpOworICAgIHJldHVybiBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5s
aW5lcygpLnNpemUoKTsKIH0KIAogTGF5b3V0VW5pdCBMaW5lTGF5b3V0OjpmaXJzdExpbmVCYXNl
bGluZSgpIGNvbnN0CiB7Ci0gICAgYXV0byogaW5saW5lQ29udGVudCA9IGRpc3BsYXlJbmxpbmVD
b250ZW50KCk7Ci0gICAgaWYgKCFpbmxpbmVDb250ZW50KSB7CisgICAgYXV0byYgbGluZXMgPSBt
X2lubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOworICAgIGlmIChsaW5lcy5pc0VtcHR5KCkp
IHsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiAwX2x1Owog
ICAgIH0KIAotICAgIGF1dG8mIGZpcnN0TGluZSA9IGlubGluZUNvbnRlbnQtPmxpbmVzLmZpcnN0
KCk7Ci0gICAgcmV0dXJuIExheW91dDo6dG9MYXlvdXRVbml0KGZpcnN0TGluZS50b3AoKSArIGZp
cnN0TGluZS5iYXNlbGluZSgpKTsKKyAgICBhdXRvJiBmaXJzdExpbmUgPSBsaW5lcy5maXJzdCgp
OworICAgIHJldHVybiBMYXlvdXQ6OnRvTGF5b3V0VW5pdChmaXJzdExpbmUubG9naWNhbFRvcCgp
ICsgZmlyc3RMaW5lLmJhc2VsaW5lKCkpOwogfQogCiBMYXlvdXRVbml0IExpbmVMYXlvdXQ6Omxh
c3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewotICAgIGF1dG8qIGlubGluZUNvbnRlbnQgPSBkaXNw
bGF5SW5saW5lQ29udGVudCgpOwotICAgIGlmICghaW5saW5lQ29udGVudCkgeworICAgIGF1dG8m
IGxpbmVzID0gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKTsKKyAgICBpZiAobGluZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1
cm4gMF9sdTsKICAgICB9CiAKLSAgICBhdXRvJiBsYXN0TGluZSA9IGlubGluZUNvbnRlbnQtPmxp
bmVzLmxhc3QoKTsKLSAgICByZXR1cm4gTGF5b3V0Ojp0b0xheW91dFVuaXQobGFzdExpbmUudG9w
KCkgKyBsYXN0TGluZS5iYXNlbGluZSgpKTsKKyAgICBhdXRvJiBsYXN0TGluZSA9IGxpbmVzLmxh
c3QoKTsKKyAgICByZXR1cm4gTGF5b3V0Ojp0b0xheW91dFVuaXQobGFzdExpbmUubG9naWNhbFRv
cCgpICsgbGFzdExpbmUuYmFzZWxpbmUoKSk7CiB9CiAKIHZvaWQgTGluZUxheW91dDo6Y29sbGVj
dE92ZXJmbG93KFJlbmRlckJsb2NrRmxvdyYgZmxvdykKQEAgLTMwMCwxMyArMjk1LDEzIEBAIHZv
aWQgTGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8mIGxpbmUgPSBpbmxp
bmVDb250ZW50LmxpbmVGb3JSdW4ocnVuKTsKLSAgICAgICAgYXV0byBiYXNlbGluZSA9IHBhaW50
T2Zmc2V0LnkoKSArIGxpbmUudG9wKCkgKyBsaW5lLmJhc2VsaW5lKCk7CisgICAgICAgIGF1dG8g
YmFzZWxpbmUgPSBwYWludE9mZnNldC55KCkgKyBsaW5lLnJlY3QoKS55KCkgKyBsaW5lLmJhc2Vs
aW5lKCk7CiAgICAgICAgIGF1dG8gZXhwYW5zaW9uID0gcnVuLmV4cGFuc2lvbigpOwogCiAgICAg
ICAgIFN0cmluZyB0ZXh0V2l0aEh5cGhlbjsKICAgICAgICAgaWYgKHRleHRDb250ZW50Lm5lZWRz
SHlwaGVuKCkpCiAgICAgICAgICAgICB0ZXh0V2l0aEh5cGhlbiA9IG1ha2VTdHJpbmcodGV4dENv
bnRlbnQuY29udGVudCgpLCBzdHlsZS5oeXBoZW5TdHJpbmcoKSk7Ci0gICAgICAgIFRleHRSdW4g
dGV4dFJ1biB7ICF0ZXh0V2l0aEh5cGhlbi5pc0VtcHR5KCkgPyB0ZXh0V2l0aEh5cGhlbiA6IHRl
eHRDb250ZW50LmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmUubGVmdCgpLCBleHBhbnNpb24u
aG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uLmJlaGF2aW9yIH07CisgICAgICAgIFRleHRS
dW4gdGV4dFJ1biB7ICF0ZXh0V2l0aEh5cGhlbi5pc0VtcHR5KCkgPyB0ZXh0V2l0aEh5cGhlbiA6
IHRleHRDb250ZW50LmNvbnRlbnQoKSwgcnVuLmxlZnQoKSAtIGxpbmUucmVjdCgpLngoKSwgZXhw
YW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4cGFuc2lvbi5iZWhhdmlvciB9OwogICAgICAg
ICB0ZXh0UnVuLnNldFRhYlNpemUoIXN0eWxlLmNvbGxhcHNlV2hpdGVTcGFjZSgpLCBzdHlsZS50
YWJTaXplKCkpOwogICAgICAgICBGbG9hdFBvaW50IHRleHRPcmlnaW4geyByZWN0LngoKSArIHBh
aW50T2Zmc2V0LngoKSwgcm91bmRUb0RldmljZVBpeGVsKGJhc2VsaW5lLCBkZXZpY2VTY2FsZUZh
Y3RvcikgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuY3BwCmluZGV4IDE5NWRiNWI1MzkwYTcwZmQ2OGM0ZTI4ZTBhMmE0
ZTAwNTUwNGEzNWUuLmY1OTAxOWRjNTM4MzRhMDQyOGRkOGIzZTcwOTM3YmQ3MjI5YzllNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVl
QnVpbGRlci5jcHAKQEAgLTM4Niw3ICszODYsNyBAQCBzdGF0aWMgdm9pZCBvdXRwdXRJbmxpbmVS
dW5zKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLAog
ICAgICAgICByZXR1cm47CiAKICAgICBhdXRvJiBkaXNwbGF5UnVucyA9IGRpc3BsYXlJbmxpbmVD
b250ZW50LT5ydW5zOwotICAgIGF1dG8mIGxpbmVzID0gZGlzcGxheUlubGluZUNvbnRlbnQtPmxp
bmVzOworICAgIGF1dG8mIGxpbmVzID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCk7CiAK
ICAgICB1bnNpZ25lZCBwcmludGVkQ2hhcmFjdGVycyA9IDA7CiAgICAgd2hpbGUgKCsrcHJpbnRl
ZENoYXJhY3RlcnMgPD0gZGVwdGggKiAyKQpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyB2b2lk
IG91dHB1dElubGluZVJ1bnMoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBMYXlvdXRTdGF0ZSYg
bGF5b3V0U3RhdGUsCiAKICAgICBzdHJlYW0gPDwgImxpbmVzIGFyZSAtPiAiOwogICAgIGZvciAo
YXV0byYgbGluZSA6IGxpbmVzKQotICAgICAgICBzdHJlYW0gPDwgIlsiIDw8IGxpbmUubGVmdCgp
IDw8ICIsIiA8PCBsaW5lLnRvcCgpIDw8ICIgIiA8PCBsaW5lLndpZHRoKCkgPDwgIngiIDw8IGxp
bmUuaGVpZ2h0KCkgPDwgIl1bYmFzZWxpbmU6ICIgPDwgbGluZS5iYXNlbGluZSgpIDw8ICJdIjsK
KyAgICAgICAgc3RyZWFtIDw8ICJbIiA8PCBsaW5lLmxvZ2ljYWxMZWZ0KCkgPDwgIiwiIDw8IGxp
bmUubG9naWNhbFRvcCgpIDw8ICIgIiA8PCBsaW5lLmxvZ2ljYWxXaWR0aCgpIDw8ICJ4IiA8PCBs
aW5lLmxvZ2ljYWxIZWlnaHQoKSA8PCAiXVtiYXNlbGluZTogIiA8PCBsaW5lLmJhc2VsaW5lKCkg
PDwgIl0iOwogICAgIHN0cmVhbS5uZXh0TGluZSgpOwogCiAgICAgZm9yIChhdXRvJiBkaXNwbGF5
UnVuIDogZGlzcGxheVJ1bnMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4
IDExYjUxM2RiZWM0N2MwYjUxNzQ1ZGUwMmEwZWE2N2JhN2M3MzEyOTkuLjIzNWY0MGU4MDBlYTkx
YzVjMTA4ZGEyNDM4ZWNlNTNhOTgzY2JkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0
LmNwcApAQCAtMTI5LDEwICsxMjksMTEgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpz
ZXRVc2VkR2VvbWV0cnlGb3JDZWxscyhMYXlvdXRVbml0IGF2YWlsYWJsZUhvcml6b24KICAgICAg
ICAgICAgICAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmJveEdlb21ldHJ5KCpjaGlsZCkubW92ZVZl
cnRpY2FsbHkoaW50cmluc2ljUGFkZGluZ1RvcCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGlmIChjZWxsQm94LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQo
KSkgewotICAgICAgICAgICAgICAgICAgICBhdXRvJiBkaXNwbGF5Q29udGVudCA9IGxheW91dFN0
YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY2VsbEJveCkuZW5zdXJlRGlz
cGxheUlubGluZUNvbnRlbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lRm9y
bWF0dGluZ1N0YXRlZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5n
U3RhdGUoY2VsbEJveCk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGRpc3BsYXlDb250ZW50
ID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlZS5lbnN1cmVEaXNwbGF5SW5saW5lQ29udGVudCgpOwog
ICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHJ1biA6IGRpc3BsYXlDb250ZW50LnJ1bnMp
CiAgICAgICAgICAgICAgICAgICAgICAgICBydW4ubW92ZVZlcnRpY2FsbHkoaW50cmluc2ljUGFk
ZGluZ1RvcCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoYXV0byYgbGluZSA6IGRpc3BsYXlD
b250ZW50LmxpbmVzKQorICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGxpbmUgOiBpbmxp
bmVGb3JtYXR0aW5nU3RhdGVlLmxpbmVzKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
Lm1vdmVWZXJ0aWNhbGx5KGludHJpbnNpY1BhZGRpbmdUb3ApOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKaW5kZXggMWEwYjkyYjkyNmFhZGFmNWQzMDIxYWQ1MmU5OGViYmY3YjQxMGYyZC4uNzAy
MWMyYjU3MjVhYjc4YjE4OWNiZmIxM2M0ZTBmZDhjY2M3YmRiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFi
bGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTQ2LDcgKzE0Niw3IEBAIElubGlu
ZUxheW91dFVuaXQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnVzZWRCYXNlbGlu
ZUZvckNlbGwoY29uc3QgQ29uCiAgICAgLy8gb3IgdGhlIGZpcnN0IGluLWZsb3cgdGFibGUtcm93
IGluIHRoZSBjZWxsLCB3aGljaGV2ZXIgY29tZXMgZmlyc3QuCiAgICAgLy8gSWYgdGhlcmUgaXMg
bm8gc3VjaCBsaW5lIGJveCwgdGhlIGJhc2VsaW5lIGlzIHRoZSBib3R0b20gb2YgY29udGVudCBl
ZGdlIG9mIHRoZSBjZWxsIGJveC4KICAgICBpZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZv
cm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFibGlz
aGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpLmRpc3BsYXlJbmxpbmVDb250ZW50KCkt
PmxpbmVzWzBdLmJhc2VsaW5lKCk7CisgICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFi
bGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpLmxpbmVzKClbMF0uYmFzZWxpbmUo
KTsKICAgICBmb3IgKGF1dG8mIGNlbGxEZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8Q29u
dGFpbmVyQm94PihjZWxsQm94KSkgewogICAgICAgICBpZiAoY2VsbERlc2NlbmRhbnQuZXN0YWJs
aXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CiAgICAgICAgICAgICBhdXRvKiBkaXNw
bGF5SW5saW5lQ29udGVudCA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0
aW5nU3RhdGUoY2VsbERlc2NlbmRhbnQpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409185</attachid>
            <date>2020-09-18 18:20:53 -0700</date>
            <delta_ts>2020-09-18 19:52:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216711-20200918182052.patch</filename>
            <type>text/plain</type>
            <size>37718</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDdkYTAyM2U2ZGY2MjZl
ODQyNGE5ZjA1MzE5OTM3MTBhMDZlNGZjMi4uYzQ2NjI1YTc2M2QyZmI3ODg1YzJkODViZThlMDAy
NWZiMDkyYTMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDIwLTA5LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBEbyBub3Qg
dXNlIERpc3BsYXk6OkxpbmUgZ2VvbWV0cnkgaW4gbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY3MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIExheW91dDo6
TGluZUdlb21ldHJ5LgorICAgICAgICBMaW5lR2VvbWV0cnkgaXMgdXNlZCB0byBob2xkIHRoZSBs
b2dpY2FsIGdlb21ldHJ5IG9mIGxpbmUgYW5kIGl0IGlzIGlucHV0IHRvIHN1YnNlcXVlbnQgbGF5
b3V0cy4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBhbHNvIGluIHByZXBhcmF0aW9uIGZvciBtb3Zp
bmcgb3V0IHRoZSAiZGlzcGxheUlubGluZUl0ZW0iIGNvbnN0cnVjdGlvbiBmcm9tIExheW91dDo6
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QgY29uc3QpOgorICAg
ICAgICAqIGxheW91dC9WZXJpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpvdXRwdXRNaXNtYXRjaGluZ0NvbXBsZXhMaW5lSW5mb3JtYXRpb25JZk5lZWRlZCk6CisgICAg
ICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAq
IGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjptYXJnaW5zQ29sbGFwc2VUaHJvdWdoIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnJl
Y3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6c2Nyb2xsYWJsZU92
ZXJmbG93IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6Omlua092ZXJm
bG93IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OmJhc2VsaW5lIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OkxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheTo6TGluZTo6bGVmdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpyaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjp0b3AgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6TGluZTo6Ym90dG9tIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkxpbmU6OndpZHRoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXk6OkxpbmU6OmhlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjptb3ZlVmVydGljYWxseSk6IERlbGV0ZWQuCisgICAgICAg
ICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXk6OnBhaW50SW5saW5lQ29udGVudCk6CisgICAgICAgICogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGluZUxheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0
cnlGb3JMaW5lQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdDb250ZXh0OjppbnZhbGlkYXRlRm9ybWF0dGluZ1N0YXRlKToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGlu
ZUJveGVzKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nU3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0
YXRlOjpsaW5lcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1h
dHRpbmdTdGF0ZTo6bGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nU3RhdGU6OmFkZExpbmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nU3RhdGU6OmNsZWFyTGluZUFuZFJ1bnMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OnNocmlua0Rpc3BsYXlJbmxpbmVDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlOjpjbGVhckRp
c3BsYXlJbmxpbmVDb250ZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHA6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lR2VvbWV0cnkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZUxpbmVHZW9tZXRyeTo6bG9naWNhbExlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVMaW5lR2VvbWV0cnk6OmxvZ2ljYWxSaWdodCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxpbmVHZW9tZXRyeTo6bG9naWNhbFRv
cCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxpbmVHZW9tZXRyeTo6
bG9naWNhbEJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxp
bmVHZW9tZXRyeTo6bG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lTGluZUdlb21ldHJ5Ojpsb2dpY2FsSGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lTGluZUdlb21ldHJ5Ojpsb2dpY2FsUmVjdCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxpbmVHZW9tZXRyeTo6bGluZUJveExvZ2lj
YWxSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lTGluZUdlb21l
dHJ5OjpiYXNlbGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUxp
bmVHZW9tZXRyeTo6bW92ZVZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVMaW5lR2VvbWV0cnk6OklubGluZUxpbmVHZW9tZXRyeSk6CisgICAgICAgICogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaDoKKyAgICAgICAgKiBsYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6
bGluZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpM
aW5lTGF5b3V0OjpmaXJzdExpbmVCYXNlbGluZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6bGFzdExpbmVCYXNlbGluZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6cGFpbnQpOgor
ICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0SW5saW5lUnVucyk6CisgICAgICAgICogbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNlZEdlb21ldHJ5Rm9y
Q2VsbHMpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnVzZWRCYXNlbGluZUZvckNlbGwpOgorCiAyMDIwLTA5
LTE4ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBEYXRl
L3RpbWUgaW5wdXRzIHNob3VsZCBub3QgdXNlIHVzZXItc3BlY2lmaWVkIGZvcm1hdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
NWY0NGFlM2Y0ZjkyODYzOTc0YzlkNTUyOGE2MzhhMWJkODUwM2MyLi5kYTlhOWEyOTNlMjU0MThj
YjJjZGZjYjk4MDAyMDdjYTg4ODQzMzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDYyLDYgKzIwNjIsNyBAQAogCQk2Rjc3
ODY4ODIzNDkxQUQ4MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAv
KiBEaXNwbGF5UGFpbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTZGN0NBM0M2MjA4QzI5NTcwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzQyMDhD
Mjk1NjAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQ0EyMDhDMkIyRTAwMkYyOUFCIC8qIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk2RjkxNDIxMTI1MTUyMTM4MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjkxNDIwRjI1MTUyMTM3
MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5NURFNEQyMzdCODg5QzAwRTUxN0UxIC8qIElu
dmFsaWRhdGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGOTVERTRCMjM3Qjg4OUIwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5
NURFNEUyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvblN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjk1REU0QzIzN0I4ODlDMDBFNTE3
RTEgLyogSW52YWxpZGF0aW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk2Rjk5NUExNjFBNzA3NTYyMDBBNzM1RjQgLyogV2ViR0xTeW5j
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjk5NUEx
NDFBNzA3NTYyMDBBNzM1RjQgLyogV2ViR0xTeW5jLmggKi87IH07CkBAIC05NTg3LDYgKzk1ODgs
NyBAQAogCQk2RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjhGNDYwMTIxQjAzQkI0MDA0MUFDM0EgLyog
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGlu
Z0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjhGNDYw
MzIxQjAzQkM2MDA0MUFDM0EgLyogQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGlu
ZUxpbmVHZW9tZXRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVM
aW5lR2VvbWV0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5NURFNEIyMzdC
ODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9uU3RhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5OTVBMDkxQTcwNzBFNjAwQTczNUY0IC8q
IFdlYkdMUXVlcnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdMUXVlcnkuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc1MjMsNiArMTc1MjUsNyBAQAogCQkJCTZG
RTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVMaW5lQnJlYWtlci5oICovLAogCQkJCTZG
MjVCMjAwMjIwQTg1QUIwMDAwMDExQiAvKiBJbmxpbmVMaW5lQnVpbGRlci5jcHAgKi8sCiAJCQkJ
NkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggKi8sCisJCQkJ
NkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovLAogCQkJ
CTZGNDBEQTgxMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggKi8sCiAJCQkJNkYzNjBF
NEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8sCiAJCQkJ
NkYxQ0MxREMyMjVGOEI0MTAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmNwcCAqLywKQEAgLTMx
NzI4LDYgKzMxNzMxLDcgQEAKIAkJCQk2RkIyNDAwNTIzREZGMTI4MDA3OTY0NTggLyogSW5saW5l
TGluZUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8q
IElubGluZUxpbmVCcmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjI2RUI0ODIzNDAwNEE1
MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGOTE0
MjExMjUxNTIxMzgwMDRFNEZFQSAvKiBJbmxpbmVMaW5lR2VvbWV0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY0NTc3NUNFMjQxNDM3RDUwMDJERjFBMCAvKiBJbmxpbmVQYXRoRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkY0MERBODIyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTZGMzYwRTUwMjM5OTk0MjEwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0
TGluZUJyZWFrSXRlbS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggNDA0NDJiYmQyYmJhMTA0
NTZjYWZkOGI1MGI0NzI0MjAxZTMzM2Q0Yy4uNTM3MDU5NzY1OWVkNWJhNjUwNWRiOTg1YTFkMDg1
MzA5OTU4YWQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTk0LDE2ICsxOTQsMTcgQEAgTGF5b3V0VW5pdCBGb3Jt
YXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4
dFJvb3QoY28KICAgICBhdXRvIGJvdHRvbSA9IGJvcmRlckFuZFBhZGRpbmdUb3A7CiAgICAgYXV0
byYgZm9ybWF0dGluZ1Jvb3RDb250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXJCb3g+KGxheW91
dEJveCk7CiAgICAgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQoKSkgewotICAgICAgICBhdXRvJiBsaW5lcyA9IGxheW91dFN0YXRl
LmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGZvcm1hdHRpbmdSb290Q29udGFpbmVy
KS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lczsKKyAgICAgICAgYXV0byYgbGluZXMgPSBs
YXlvdXRTdGF0ZS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9v
dENvbnRhaW5lcikubGluZXMoKTsKICAgICAgICAgLy8gRXZlbiBlbXB0eSBjb250YWluZXJzIGdl
bmVyYXRlIG9uZSBsaW5lLiAKICAgICAgICAgQVNTRVJUKCFsaW5lcy5pc0VtcHR5KCkpOwotICAg
ICAgICB0b3AgPSBsaW5lcy5maXJzdCgpLnRvcCgpOwotICAgICAgICBib3R0b20gPSBsaW5lcy5s
YXN0KCkuYm90dG9tKCk7CisgICAgICAgIHRvcCA9IGxpbmVzLmZpcnN0KCkubG9naWNhbFRvcCgp
OworICAgICAgICBib3R0b20gPSBsaW5lcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOwogICAgIH0g
ZWxzZSBpZiAoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZXN0YWJsaXNoZXNGbGV4Rm9ybWF0dGlu
Z0NvbnRleHQoKSkgewogICAgICAgICBhdXRvJiBsaW5lcyA9IGxheW91dFN0YXRlLmVzdGFibGlz
aGVkRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9vdENvbnRhaW5lcikubGluZXMoKTsK
ICAgICAgICAgQVNTRVJUKCFsaW5lcy5pc0VtcHR5KCkpOwotICAgICAgICB0b3AgPSBsaW5lcy5m
aXJzdCgpLnRvcCgpOwotICAgICAgICBib3R0b20gPSBsaW5lcy5sYXN0KCkuYm90dG9tKCk7Cisg
ICAgICAgIC8vIEZJWE1FOiBNb3ZlIGZsZXggb3ZlciB0byBsYXlvdXQgZ2VvbWV0cnkuCisgICAg
ICAgIHRvcCA9IGxpbmVzLmZpcnN0KCkucmVjdCgpLnkoKTsKKyAgICAgICAgYm90dG9tID0gbGlu
ZXMubGFzdCgpLnJlY3QoKS5tYXhZKCk7CiAgICAgfSBlbHNlIGlmIChmb3JtYXR0aW5nUm9vdENv
bnRhaW5lci5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSB8fCBmb3JtYXR0aW5n
Um9vdENvbnRhaW5lci5lc3RhYmxpc2hlc1RhYmxlRm9ybWF0dGluZ0NvbnRleHQoKSB8fCBmb3Jt
YXR0aW5nUm9vdENvbnRhaW5lci5pc0RvY3VtZW50Qm94KCkpIHsKICAgICAgICAgaWYgKGZvcm1h
dHRpbmdSb290Q29udGFpbmVyLmhhc0luRmxvd0NoaWxkKCkpIHsKICAgICAgICAgICAgIGF1dG8m
IGZpcnN0Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqZm9y
bWF0dGluZ1Jvb3RDb250YWluZXIuZmlyc3RJbkZsb3dDaGlsZCgpLCBFc2NhcGVSZWFzb246Ok5l
ZWRzR2VvbWV0cnlGcm9tRXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IGJkZjU3NjM3ZjljMGE4ZWFkMjNkN2E2NmFh
YTAyY2NkMTAxNmZjMjEuLmYxNmUzNzFjMDZlZGNkMDgxNDhkNWQ0YmRlZGJlYjY5ZTZhMmQyZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCkBAIC0xODgsNyArMTg4LDcg
QEAgc3RhdGljIGJvb2wgb3V0cHV0TWlzbWF0Y2hpbmdDb21wbGV4TGluZUluZm9ybWF0aW9uSWZO
ZWVkZWQoVGV4dFN0cmVhbSYgc3RyZWFtLAogICAgIGZvciAodW5zaWduZWQgaW5saW5lQm94SW5k
ZXggPSAwOyBpbmxpbmVCb3hJbmRleCA8IGlubGluZUJveGVzLnNpemUoKSAmJiBydW5JbmRleCA8
IGRpc3BsYXlSdW5zLnNpemUoKTsgKytpbmxpbmVCb3hJbmRleCkgewogICAgICAgICBhdXRvJiBk
aXNwbGF5UnVuID0gZGlzcGxheVJ1bnNbcnVuSW5kZXhdOwogICAgICAgICBhdXRvKiBpbmxpbmVC
b3ggPSBpbmxpbmVCb3hlc1tpbmxpbmVCb3hJbmRleF07Ci0gICAgICAgIGF1dG8qIGlubGluZVRl
eHRCb3ggPSBpczxJbmxpbmVUZXh0Qm94PihpbmxpbmVCb3gpID8gZG93bmNhc3Q8SW5saW5lVGV4
dEJveD4oaW5saW5lQm94KSA6IG51bGxwdHI7CisgICAgICAgIGF1dG8qIGlubGluZVRleHRCb3gg
PSBpczxXZWJDb3JlOjpJbmxpbmVUZXh0Qm94PihpbmxpbmVCb3gpID8gZG93bmNhc3Q8V2ViQ29y
ZTo6SW5saW5lVGV4dEJveD4oaW5saW5lQm94KSA6IG51bGxwdHI7CiAgICAgICAgIGJvb2wgbWF0
Y2hpbmdSdW5zID0gaW5saW5lVGV4dEJveCA/IGNoZWNrRm9yTWF0Y2hpbmdUZXh0UnVucyhkaXNw
bGF5UnVuLCAqaW5saW5lVGV4dEJveCkgOiBjaGVja0Zvck1hdGNoaW5nTm9uVGV4dFJ1bnMoZGlz
cGxheVJ1biwgKmlubGluZUJveCk7CiAKICAgICAgICAgaWYgKCFtYXRjaGluZ1J1bnMpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCBlZjIxNGI3
Y2EwYTExNzFmZGU5MzZiNjcxNTdlZDNhZDQ0ZjNjMjUzLi5jMjFlNTI0M2YyOGRkMmUyY2Q0NDRh
ZGVmOWQzMjc4OTg1MWE4OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
R2VvbWV0cnkuY3BwCkBAIC03NywxMCArNzcsMTAgQEAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRIZWlnaHQK
ICAgICAgICAgLy8gMS4gdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBsYXN0IGxpbmUgYm94LCBpZiB0
aGUgYm94IGVzdGFibGlzaGVzIGEgaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCB3aXRoIG9uZSBv
ciBtb3JlIGxpbmVzCiAgICAgICAgIGF1dG8mIGxheW91dENvbnRhaW5lciA9IGRvd25jYXN0PENv
bnRhaW5lckJveD4obGF5b3V0Qm94KTsKICAgICAgICAgaWYgKGxheW91dENvbnRhaW5lci5lc3Rh
Ymxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAgIGF1dG8mIGxp
bmVzID0gbGF5b3V0U3RhdGUoKS5lc3RhYmxpc2hlZElubGluZUZvcm1hdHRpbmdTdGF0ZShsYXlv
dXRDb250YWluZXIpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVzOworICAgICAgICAgICAg
YXV0byYgbGluZXMgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0
YXRlKGxheW91dENvbnRhaW5lcikubGluZXMoKTsKICAgICAgICAgICAgIC8vIEV2ZW4gZW1wdHkg
Y29udGFpbmVycyBnZW5lcmF0ZSBvbmUgbGluZS4gCiAgICAgICAgICAgICBBU1NFUlQoIWxpbmVz
LmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICByZXR1cm4geyB0b0xheW91dFVuaXQobGluZXMubGFz
dCgpLmJvdHRvbSgpKSAtIGJvcmRlckFuZFBhZGRpbmdUb3AsIG5vbkNvbGxhcHNlZE1hcmdpbiB9
OworICAgICAgICAgICAgcmV0dXJuIHsgdG9MYXlvdXRVbml0KGxpbmVzLmxhc3QoKS5sb2dpY2Fs
Qm90dG9tKCkpIC0gYm9yZGVyQW5kUGFkZGluZ1RvcCwgbm9uQ29sbGFwc2VkTWFyZ2luIH07CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyAyLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGJvdHRvbSAo
cG9zc2libHkgY29sbGFwc2VkKSBtYXJnaW4gb2YgaXRzIGxhc3QgaW4tZmxvdyBjaGlsZCwgaWYg
dGhlIGNoaWxkJ3MgYm90dG9tIG1hcmdpbi4uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5k
ZXggODk5Y2E5N2M1NTU2MGRhMWFjN2E5NWEzM2FhNTYwYmI1N2UxZjllNi4uZTAyNDM5YjZhMjkw
MmYyYjA0YzFlYTM0ZTMzODMyNTkxZGI0NWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3Bw
CkBAIC00MDYsMTEgKzQwNiwxMSBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjptYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJveCYgbAogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgYXV0byBpc0NvbnNpZGVyZWRFbXB0
eSA9IFsmXSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0
U3RhdGUuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29udGFpbmVyQm94KTsKLSAg
ICAgICAgICAgICAgICBpZiAoYXV0byogaW5saW5lQ29udGVudCA9IGZvcm1hdHRpbmdTdGF0ZS5k
aXNwbGF5SW5saW5lQ29udGVudCgpOyBpbmxpbmVDb250ZW50ICYmICFpbmxpbmVDb250ZW50LT5s
aW5lcy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYXV0byYgaW5saW5lRm9ybWF0dGluZ1N0
YXRlID0gbGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY29udGFp
bmVyQm94KTsKKyAgICAgICAgICAgICAgICBpZiAoIWlubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5l
cygpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgICAgIC8vIEFueSBmbG9hdCBib3ggaW4gdGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcHJl
dmVudHMgY29sbGFwc2luZyB0aHJvdWdoLgotICAgICAgICAgICAgICAgIGF1dG8mIGZsb2F0cyA9
IGZvcm1hdHRpbmdTdGF0ZS5mbG9hdGluZ1N0YXRlKCkuZmxvYXRzKCk7CisgICAgICAgICAgICAg
ICAgYXV0byYgZmxvYXRzID0gaW5saW5lRm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKS5m
bG9hdHMoKTsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGZsb2F0SXRlbSA6IGZsb2F0cykg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoZmxvYXRJdGVtLmlzSW5Gb3JtYXR0aW5nQ29udGV4
dE9mKGNvbnRhaW5lckJveCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxp
bmUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCmlu
ZGV4IDgxZjQ0ZmU0YjkzYmI0M2YzMTFiM2E3NjhhODA1NjZjMjI4YTYwMzguLjEwMGQwNGY5NjBi
YjJjZjQwYTg2NTk3NDY4NzQzMThlZjA5NjM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUgIklubGluZVJlY3Qu
aCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIERpc3BsYXkgewpAQCAtMzUsMzIgKzM1LDIxIEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIGNs
YXNzIExpbmUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExp
bmUoY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBz
Y3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3cs
IElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpOworICAgIExpbmUoY29uc3QgRmxvYXRSZWN0Jiwg
Y29uc3QgRmxvYXRSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IEZsb2F0UmVjdCYgaW5r
T3ZlcmZsb3csIGZsb2F0IGJhc2VsaW5lKTsKIAotICAgIGNvbnN0IExheW91dDo6SW5saW5lUmVj
dCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IExheW91dDo6SW5s
aW5lUmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxl
T3ZlcmZsb3c7IH0KLSAgICBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93KCkg
Y29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQotCi0gICAgSW5saW5lTGF5b3V0VW5pdCBs
ZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxlZnQoKTsgfQotICAgIElubGluZUxheW91dFVu
aXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QucmlnaHQoKTsgfQotICAgIElubGluZUxh
eW91dFVuaXQgdG9wKCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LnRvcCgpOyB9Ci0gICAgSW5saW5l
TGF5b3V0VW5pdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX3JlY3QuYm90dG9tKCk7IH0KLQot
ICAgIElubGluZUxheW91dFVuaXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgo
KTsgfQotICAgIElubGluZUxheW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0
LmhlaWdodCgpOyB9Ci0KLSAgICB2b2lkIG1vdmVWZXJ0aWNhbGx5KElubGluZUxheW91dFVuaXQp
OwotCi0gICAgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFz
ZWxpbmU7IH0KKyAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Jl
Y3Q7IH0KKyAgICBjb25zdCBGbG9hdFJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdygpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsYWJsZU92ZXJmbG93OyB9CisgICAgY29uc3QgRmxvYXRSZWN0JiBpbmtP
dmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5rT3ZlcmZsb3c7IH0KKyAgICBmbG9hdCBiYXNl
bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmU7IH0KIAogcHJpdmF0ZToKLSAgICBMYXlv
dXQ6OklubGluZVJlY3QgbV9yZWN0OwotICAgIExheW91dDo6SW5saW5lUmVjdCBtX3Njcm9sbGFi
bGVPdmVyZmxvdzsKLSAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9pbmtPdmVyZmxvdzsKLSAgICBJ
bmxpbmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07CisgICAgRmxvYXRSZWN0IG1fcmVjdDsK
KyAgICBGbG9hdFJlY3QgbV9zY3JvbGxhYmxlT3ZlcmZsb3c7CisgICAgRmxvYXRSZWN0IG1faW5r
T3ZlcmZsb3c7CisgICAgZmxvYXQgbV9iYXNlbGluZSB7IDAgfTsKIH07CiAKLWlubGluZSBMaW5l
OjpMaW5lKGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5b3V0OjpJbmxp
bmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5r
T3ZlcmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpCitpbmxpbmUgTGluZTo6TGluZShj
b25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93
LCBjb25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93LCBmbG9hdCBiYXNlbGluZSkKICAgICA6IG1f
cmVjdChyZWN0KQogICAgICwgbV9zY3JvbGxhYmxlT3ZlcmZsb3coc2Nyb2xsYWJsZU92ZXJmbG93
KQogICAgICwgbV9pbmtPdmVyZmxvdyhpbmtPdmVyZmxvdykKQEAgLTY4LDEyICs1Nyw2IEBAIGlu
bGluZSBMaW5lOjpMaW5lKGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5
b3V0OjpJbmxpbmVSZWN0JiBzY3JvCiB7CiB9CiAKLWlubGluZSB2b2lkIExpbmU6Om1vdmVWZXJ0
aWNhbGx5KElubGluZUxheW91dFVuaXQgb2Zmc2V0KQotewotICAgIG1fcmVjdC5tb3ZlVmVydGlj
YWxseShvZmZzZXQpOwotICAgIG1faW5rT3ZlcmZsb3cubW92ZVZlcnRpY2FsbHkob2Zmc2V0KTsK
LX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRy
ZWUvRGlzcGxheVBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVl
L0Rpc3BsYXlQYWludGVyLmNwcAppbmRleCA4YjM2YjVjMTA3Mjk0Y2IxNDE4ZGI2ODQyNzE3ZjU0
MTkwOGQwNzIxLi43M2YyZTBhMjA5YmQxMGM5Y2Q3MmYyN2Y3NGE4YWUyMWFlNjM1YmQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRl
ci5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgdm9pZCBwYWludElubGluZUNvbnRlbnQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBMYXlvdXRQb2ludCBhYnNvbHV0ZU9mZgogICAgICAg
ICAgICAgYXV0byYgbGluZSA9IGRpc3BsYXlJbmxpbmVDb250ZW50LT5saW5lRm9yUnVuKHJ1bik7
CiAgICAgICAgICAgICBhdXRvIGJhc2VsaW5lID0gYWJzb2x1dGVPZmZzZXQueSgpICsgcnVuLnRv
cCgpICsgc3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoKTsKICAgICAgICAgICAgIGF1dG8gZXhw
YW5zaW9uID0gcnVuLmV4cGFuc2lvbigpOwotICAgICAgICAgICAgYXV0byB0ZXh0UnVuID0gVGV4
dFJ1biB7IHRleHRDb250ZW50LT5jb250ZW50KCksIHJ1bi5sZWZ0KCkgLSBsaW5lLmxlZnQoKSwg
ZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24sIGV4cGFuc2lvbi5iZWhhdmlvciB9OworICAg
ICAgICAgICAgYXV0byB0ZXh0UnVuID0gVGV4dFJ1biB7IHRleHRDb250ZW50LT5jb250ZW50KCks
IHJ1bi5sZWZ0KCkgLSBsaW5lLnJlY3QoKS54KCksIGV4cGFuc2lvbi5ob3Jpem9udGFsRXhwYW5z
aW9uLCBleHBhbnNpb24uYmVoYXZpb3IgfTsKICAgICAgICAgICAgIHRleHRSdW4uc2V0VGFiU2l6
ZSghc3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CiAgICAgICAg
ICAgICBjb250ZXh0LmRyYXdUZXh0KHN0eWxlLmZvbnRDYXNjYWRlKCksIHRleHRSdW4sIHsgYWJz
b2x1dGVMZWZ0LCBiYXNlbGluZSB9KTsKICAgICAgICAgfSBlbHNlIGlmIChhdXRvKiBjYWNoZWRJ
bWFnZSA9IHJ1bi5pbWFnZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAK
aW5kZXggYTI4OTgyYjYyMmM4MGQyNzkyMDg4ZTFlMWM4YWRkMjNkMWVlY2U3MC4uM2I3YTQzZGIz
ZmM3NDI4MjU5M2E1NTVhMzA1ZTkyYmI3ZGM2YTIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OmxpbmVMYXlvdXQoSW5saW5lSXRlbXMmIGlubGluZUl0ZW1zLCBMaW5lQnVpbGRlcjo6
CiAgICAgfTsKICAgICBPcHRpb25hbDxQcmV2aW91c0xpbmU+IHByZXZpb3VzTGluZTsKICAgICBh
dXRvIGZsb2F0aW5nQ29udGV4dCA9IEZsb2F0aW5nQ29udGV4dCB7IHJvb3QoKSwgKnRoaXMsIGZv
cm1hdHRpbmdTdGF0ZSgpLmZsb2F0aW5nU3RhdGUoKSB9OwotICAgIGF1dG8gaXNGaXJzdExpbmUg
PSAhZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUlubGluZUNvbnRlbnQoKSB8fCBmb3JtYXR0aW5n
U3RhdGUoKS5kaXNwbGF5SW5saW5lQ29udGVudCgpLT5saW5lcy5pc0VtcHR5KCk7CisgICAgYXV0
byBpc0ZpcnN0TGluZSA9IGZvcm1hdHRpbmdTdGF0ZSgpLmxpbmVzKCkuaXNFbXB0eSgpOwogCiAg
ICAgYXV0byBsaW5lQnVpbGRlciA9IExpbmVCdWlsZGVyIHsgKnRoaXMsIGZsb2F0aW5nQ29udGV4
dCwgcm9vdCgpLCBpbmxpbmVJdGVtcyB9OwogICAgIHdoaWxlICghbmVlZHNMYXlvdXRSYW5nZS5p
c0VtcHR5KCkpIHsKQEAgLTM5OSw4ICszOTksMTQgQEAgSW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWwK
ICAgICBhdXRvIGxpbmVSZWN0QW5kTGluZUJveE9mZnNldCA9IGdlb21ldHJ5LmNvbXB1dGVkTGlu
ZUxvZ2ljYWxSZWN0KGxpbmVCb3gsIHJvb3QoKS5zdHlsZSgpLCBsaW5lQ29udGVudCk7CiAgICAg
YXV0byBsaW5lTG9naWNhbFJlY3QgPSBsaW5lUmVjdEFuZExpbmVCb3hPZmZzZXQubG9naWNhbFJl
Y3Q7CiAgICAgYXV0byBsaW5lQm94VmVydGljYWxPZmZzZXQgPSBsaW5lUmVjdEFuZExpbmVCb3hP
ZmZzZXQubGluZUJveFZlcnRpY2FsT2Zmc2V0OwotICAgIGF1dG8gc2Nyb2xsYWJsZU92ZXJmbG93
ID0gSW5saW5lUmVjdCB7IGxpbmVMb2dpY2FsUmVjdC50b3BMZWZ0KCksIHN0ZDo6bWF4KGxpbmVM
b2dpY2FsUmVjdC53aWR0aCgpLCBsaW5lQm94LmxvZ2ljYWxXaWR0aCgpKSwgc3RkOjptYXgobGlu
ZUxvZ2ljYWxSZWN0LmhlaWdodCgpLCBsaW5lQm94VmVydGljYWxPZmZzZXQgKyBsaW5lQm94Lmxv
Z2ljYWxIZWlnaHQoKSkgfTsKIAorICAgIGF1dG8gY29uc3RydWN0TGluZUdlb21ldHJ5ID0gWyZd
IHsKKyAgICAgICAgYXV0byBsaW5lQm94TG9naWNhbFJlY3QgPSBJbmxpbmVSZWN0IHsgbGluZUxv
Z2ljYWxSZWN0LnRvcCgpICsgbGluZUJveFZlcnRpY2FsT2Zmc2V0LCBsaW5lTG9naWNhbFJlY3Qu
bGVmdCgpICsgbGluZUJveC5ob3Jpem9udGFsQWxpZ25tZW50T2Zmc2V0KCkudmFsdWVPcihJbmxp
bmVMYXlvdXRVbml0IHsgfSksIGxpbmVCb3gubG9naWNhbFdpZHRoKCksIGxpbmVCb3gubG9naWNh
bEhlaWdodCgpIH07CisgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRMaW5lKHsgbGluZUxvZ2lj
YWxSZWN0LCBsaW5lQm94TG9naWNhbFJlY3QsIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCArIGxpbmVC
b3guYWxpZ25tZW50QmFzZWxpbmUoKSB9KTsKKyAgICB9OworICAgIGNvbnN0cnVjdExpbmVHZW9t
ZXRyeSgpOworCisgICAgYXV0byBzY3JvbGxhYmxlT3ZlcmZsb3cgPSBJbmxpbmVSZWN0IHsgbGlu
ZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgc3RkOjptYXgobGluZUxvZ2ljYWxSZWN0LndpZHRoKCks
IGxpbmVCb3gubG9naWNhbFdpZHRoKCkpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJlY3QuaGVpZ2h0
KCksIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCArIGxpbmVCb3gubG9naWNhbEhlaWdodCgpKSB9Owog
ICAgIGlmICghbGluZUNvbnRlbnQuZmxvYXRzLmlzRW1wdHkoKSkgewogICAgICAgICBhdXRvIGZs
b2F0aW5nQ29udGV4dCA9IEZsb2F0aW5nQ29udGV4dCB7IHJvb3QoKSwgKnRoaXMsIGZvcm1hdHRp
bmdTdGF0ZS5mbG9hdGluZ1N0YXRlKCkgfTsKICAgICAgICAgLy8gTW92ZSBmbG9hdHMgdG8gdGhl
aXIgZmluYWwgcG9zaXRpb24uCkBAIC00OTIsNyArNDk4LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6aW52YWxpZGF0ZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBJbnZhbGlkYXRpb25T
dGF0ZSYKIHsKICAgICAvLyBGaW5kIG91dCB3aGF0IHdlIG5lZWQgdG8gaW52YWxpZGF0ZS4gVGhp
cyBpcyB3aGVyZSB3ZSBhZGQgc29tZSBzbWFydHMgdG8gZG8gcGFydGlhbCBsaW5lIGxheW91dC4K
ICAgICAvLyBGb3Igbm93IGxldCdzIGp1c3QgY2xlYXIgdGhlIHJ1bnMuCi0gICAgZm9ybWF0dGlu
Z1N0YXRlKCkuY2xlYXJEaXNwbGF5SW5saW5lQ29udGVudCgpOworICAgIGZvcm1hdHRpbmdTdGF0
ZSgpLmNsZWFyTGluZUFuZFJ1bnMoKTsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhbHNvIHdoZXJl
IHdlIHdvdWxkIGRlbGV0ZSBpbmxpbmUgaXRlbXMgaWYgdGhlaXIgY29udGVudCBjaGFuZ2VkLgog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmlu
ZGV4IDYyMTJiZTgxMjMzMGQzZjc3NmUzMmQ5ZWRhNTAyYTk0OGQ0MzM1N2YuLjk5NGI5YmJjOWI5
MTI4ZTcwYmNmMWZiMWUyMTJkODc1NzQxMTE2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0yNDQsOCArMjQ0LDggQEAgdm9pZCBMaW5l
Qm94QnVpbGRlcjo6Y29uc3RydWN0SW5saW5lQm94ZXMoTGluZUJveCYgbGluZUJveCwgY29uc3Qg
TGluZTo6UnVuTGlzdCYKICAgICAgICAgICAgICAgICAvLyAgICAgLS0tLS18LXwtfC0tLS0tLS0t
LS0gPC0gYmFzZWxpbmUKICAgICAgICAgICAgICAgICAvLwogICAgICAgICAgICAgICAgIGF1dG8m
IGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0
aW5nU3RhdGUoZG93bmNhc3Q8Q29udGFpbmVyQm94PihpbmxpbmVMZXZlbEJveCkpOwotICAgICAg
ICAgICAgICAgIGF1dG8mIGxhc3RMaW5lID0gZm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlJbmxpbmVD
b250ZW50KCktPmxpbmVzLmxhc3QoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJsb2Nr
QmFzZWxpbmUgPSBsYXN0TGluZS50b3AoKSArIGxhc3RMaW5lLmJhc2VsaW5lKCk7CisgICAgICAg
ICAgICAgICAgYXV0byYgbGFzdExpbmUgPSBmb3JtYXR0aW5nU3RhdGUubGluZXMoKS5sYXN0KCk7
CisgICAgICAgICAgICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmUubG9n
aWNhbFRvcCgpICsgbGFzdExpbmUuYmFzZWxpbmUoKTsKICAgICAgICAgICAgICAgICBiYXNlbGlu
ZSA9IGlubGluZUxldmVsQm94R2VvbWV0cnkubWFyZ2luQmVmb3JlKCkgKyBpbmxpbmVMZXZlbEJv
eEdlb21ldHJ5LmJvcmRlclRvcCgpICsgaW5saW5lTGV2ZWxCb3hHZW9tZXRyeS5wYWRkaW5nVG9w
KCkudmFsdWVPcigwKSArIGlubGluZUJsb2NrQmFzZWxpbmU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBhdXRvIHJlY3QgPSBJbmxpbmVSZWN0IHsgeyB9LCBsb2dpY2FsTGVmdCwgcnVuLmxv
Z2ljYWxXaWR0aCgpLCBsb2dpY2FsSGVpZ2h0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5o
CmluZGV4IDJkOTdkMDBmNDk2ZjkwYzA3MDNiNjRmNjJhYzdlMzlkZjA3OWQxOTcuLjZlYmM0YTE4
NzgzMjQ3YjdmODRmODM2YjY5MTk4MmZjMTIxZGMyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdT
dGF0ZS5oCkBAIC0zMCwxMiArMzAsMTQgQEAKICNpbmNsdWRlICJEaXNwbGF5SW5saW5lQ29udGVu
dC5oIgogI2luY2x1ZGUgIkZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUl0ZW0u
aCIKKyNpbmNsdWRlICJJbmxpbmVMaW5lR2VvbWV0cnkuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiB1c2lu
ZyBJbmxpbmVJdGVtcyA9IFZlY3RvcjxJbmxpbmVJdGVtPjsKK3VzaW5nIElubGluZUxpbmVzID0g
VmVjdG9yPElubGluZUxpbmVHZW9tZXRyeT47CiAKIC8vIElubGluZUZvcm1hdHRpbmdTdGF0ZSBo
b2xkcyB0aGUgc3RhdGUgZm9yIGEgcGFydGljdWxhciBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0
IHRyZWUuCiBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nU3RhdGUgOiBwdWJsaWMgRm9ybWF0dGluZ1N0
YXRlIHsKQEAgLTQ4LDE1ICs1MCwyMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW5saW5lSXRlbXMm
IGlubGluZUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVJdGVtczsgfQogICAgIHZvaWQg
YWRkSW5saW5lSXRlbShJbmxpbmVJdGVtJiYgaW5saW5lSXRlbSkgeyBtX2lubGluZUl0ZW1zLmFw
cGVuZChXVEZNb3ZlKGlubGluZUl0ZW0pKTsgfQogCisgICAgY29uc3QgSW5saW5lTGluZXMmIGxp
bmVzKCkgY29uc3QgeyByZXR1cm4gbV9saW5lczsgfQorICAgIElubGluZUxpbmVzJiBsaW5lcygp
IHsgcmV0dXJuIG1fbGluZXM7IH0KKyAgICB2b2lkIGFkZExpbmUoY29uc3QgSW5saW5lTGluZUdl
b21ldHJ5JiBsaW5lKSB7IG1fbGluZXMuYXBwZW5kKGxpbmUpOyB9CisKICAgICBjb25zdCBEaXNw
bGF5OjpJbmxpbmVDb250ZW50KiBkaXNwbGF5SW5saW5lQ29udGVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGlzcGxheUlubGluZUNvbnRlbnQuZ2V0KCk7IH0KICAgICBEaXNwbGF5OjpJbmxpbmVDb250
ZW50JiBlbnN1cmVEaXNwbGF5SW5saW5lQ29udGVudCgpOwogCi0gICAgdm9pZCBjbGVhckRpc3Bs
YXlJbmxpbmVDb250ZW50KCkgeyBtX2Rpc3BsYXlJbmxpbmVDb250ZW50ID0gbnVsbHB0cjsgfQor
ICAgIHZvaWQgY2xlYXJMaW5lQW5kUnVucygpOwogICAgIHZvaWQgc2hyaW5rRGlzcGxheUlubGlu
ZUNvbnRlbnQoKTsKIAogcHJpdmF0ZToKICAgICAvLyBDYWNoZWFibGUgaW5wdXQgdG8gbGluZSBs
YXlvdXQuCiAgICAgSW5saW5lSXRlbXMgbV9pbmxpbmVJdGVtczsKKyAgICBJbmxpbmVMaW5lcyBt
X2xpbmVzOwogCiAgICAgUmVmUHRyPERpc3BsYXk6OklubGluZUNvbnRlbnQ+IG1fZGlzcGxheUlu
bGluZUNvbnRlbnQ7CiB9OwpAQCAtNjgsOCArNzUsMTUgQEAgaW5saW5lIERpc3BsYXk6OklubGlu
ZUNvbnRlbnQmIElubGluZUZvcm1hdHRpbmdTdGF0ZTo6ZW5zdXJlRGlzcGxheUlubGluZUNvbnRl
bnQKICAgICByZXR1cm4gKm1fZGlzcGxheUlubGluZUNvbnRlbnQ7CiB9CiAKK2lubGluZSB2b2lk
IElubGluZUZvcm1hdHRpbmdTdGF0ZTo6Y2xlYXJMaW5lQW5kUnVucygpCit7CisgICAgbV9kaXNw
bGF5SW5saW5lQ29udGVudCA9IG51bGxwdHI7CisgICAgbV9saW5lcy5jbGVhcigpOworfQorCiBp
bmxpbmUgdm9pZCBJbmxpbmVGb3JtYXR0aW5nU3RhdGU6OnNocmlua0Rpc3BsYXlJbmxpbmVDb250
ZW50KCkKIHsKKyAgICBtX2xpbmVzLnNocmlua1RvRml0KCk7CiAgICAgaWYgKCFtX2Rpc3BsYXlJ
bmxpbmVDb250ZW50KQogICAgICAgICByZXR1cm47CiAgICAgbV9kaXNwbGF5SW5saW5lQ29udGVu
dC0+cnVucy5zaHJpbmtUb0ZpdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwCmluZGV4IGNmZjVm
ZjBiMzdlMjJmYjI4NWEwODVlZGMzZGM1ZjAzMDljMTBhYzQuLmJlYTViYTNhZTI4ZmQ4YTU5N2E4
ODljYzJkNDZiNTU1NmY1YmUyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCisjaW5jbHVkZSAi
TGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiVGV4dFV0aWwuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggNTZkMGYwNTNlNTli
ZWMwOGI2ZDA2M2Q0OTNhODRjMzhjNzYxNGY2Yy4uN2RmOThkOTZjMTVmOTllNGU2MTBhZTdhODEx
YjNiOTIyZTdmZjY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIklubGluZUxpbmUuaCIKICNpbmNsdWRlICJJ
bmxpbmVMaW5lQnJlYWtlci5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVHZW9tZXRyeS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRi
OGZkNzU1MWRkMTNlMDg5MzI5OGFkYzM3MDEyOTRmNTJiODNmMjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lR2VvbWV0
cnkuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIklubGluZVJlY3Qu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIElu
bGluZUxpbmVHZW9tZXRyeSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgSW5saW5lTGluZUdlb21ldHJ5KGNvbnN0IElubGluZVJlY3QmIGxpbmVMb2dpY2FsUmVj
dCwgY29uc3QgSW5saW5lUmVjdCYgbGluZUJveExvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0
IGFsaWdtZW50QmFzZWxpbmUpOworCisgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgp
IGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxSZWN0KCkubGVmdCgpOyB9OworICAgIElubGluZUxheW91
dFVuaXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbG9naWNhbFJlY3QoKS5yaWdodCgp
OyB9OworCisgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4g
bG9naWNhbFJlY3QoKS50b3AoKTsgfTsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxCb3R0
b20oKSBjb25zdCB7IHJldHVybiBsb2dpY2FsUmVjdCgpLmJvdHRvbSgpOyB9OworCisgICAgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBsb2dpY2FsUmVjdCgp
LndpZHRoKCk7IH07CisgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbG9naWNhbFJlY3QoKS5oZWlnaHQoKTsgfTsKKworICAgIGNvbnN0IElubGluZVJl
Y3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdDsgfQorICAgIGNv
bnN0IElubGluZVJlY3QmIGxpbmVCb3hMb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGlu
ZUJveExvZ2ljYWxSZWN0OyB9CisKKyAgICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKCkgY29u
c3QgeyByZXR1cm4gbV9hbGlnbWVudEJhc2VsaW5lOyB9CisKKyAgICB2b2lkIG1vdmVWZXJ0aWNh
bGx5KElubGluZUxheW91dFVuaXQgb2Zmc2V0KSB7IG1fbG9naWNhbFJlY3QubW92ZVZlcnRpY2Fs
bHkob2Zmc2V0KTsgfQorCitwcml2YXRlOgorICAgIElubGluZVJlY3QgbV9sb2dpY2FsUmVjdDsK
KyAgICBJbmxpbmVSZWN0IG1fbGluZUJveExvZ2ljYWxSZWN0OworICAgIElubGluZUxheW91dFVu
aXQgbV9hbGlnbWVudEJhc2VsaW5lIHsgMCB9OworfTsKKworaW5saW5lIElubGluZUxpbmVHZW9t
ZXRyeTo6SW5saW5lTGluZUdlb21ldHJ5KGNvbnN0IElubGluZVJlY3QmIGxpbmVMb2dpY2FsUmVj
dCwgY29uc3QgSW5saW5lUmVjdCYgbGluZUJveExvZ2ljYWxSZWN0LCBJbmxpbmVMYXlvdXRVbml0
IGFsaWdtZW50QmFzZWxpbmUpCisgICAgOiBtX2xvZ2ljYWxSZWN0KGxpbmVMb2dpY2FsUmVjdCkK
KyAgICAsIG1fbGluZUJveExvZ2ljYWxSZWN0KGxpbmVCb3hMb2dpY2FsUmVjdCkKKyAgICAsIG1f
YWxpZ21lbnRCYXNlbGluZShhbGlnbWVudEJhc2VsaW5lKQoreworfQorCit9Cit9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZVRleHRJdGVtLmgKaW5kZXggNzQxMTg5ZWUyNGQ4MDg2ZjU3NmExNmFjZjQ1NmY2NzBjYjdm
OGI0Ny4uZWYxOWZkZDllNGU3ZjViOTAzMjQ1ZDcyODlkNmZmNGRiYjkyZWFmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0
SXRlbS5oCkBAIC0yNywxMyArMjcsMTQgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElO
R19DT05URVhUKQogCi0jaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVk
ZSAiSW5saW5lSXRlbS5oIgogI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKK3VzaW5nIElubGluZUl0ZW1z
ID0gVmVjdG9yPElubGluZUl0ZW0+OworCiBjbGFzcyBJbmxpbmVUZXh0SXRlbSA6IHB1YmxpYyBJ
bmxpbmVJdGVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVBbmRBcHBlbmRUZXh0
SXRlbXMoSW5saW5lSXRlbXMmLCBjb25zdCBJbmxpbmVUZXh0Qm94Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5
b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IGUyOTIxYTJlM2IxOGNkMDMzYjA3YWNkMGRjM2FlYjlk
Zjk4NWQ5YTYuLmVmYzU1NTMwNjhkOTJmMTFlNjZlODJhY2JmMmRiZDdmYzNhYmU0YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC0xNTYsOCArMTU2LDggQEAgdm9pZCBM
aW5lTGF5b3V0OjpwcmVwYXJlRmxvYXRpbmdTdGF0ZSgpCiAKIExheW91dFVuaXQgTGluZUxheW91
dDo6Y29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdAogewotICAgIGF1dG8mIGxpbmVzID0gZGlz
cGxheUlubGluZUNvbnRlbnQoKS0+bGluZXM7Ci0gICAgcmV0dXJuIExheW91dFVuaXQgeyBsaW5l
cy5sYXN0KCkuYm90dG9tKCkgLSBsaW5lcy5maXJzdCgpLnRvcCgpIH07CisgICAgYXV0byYgbGlu
ZXMgPSBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOworICAgIHJldHVybiBMYXlvdXRV
bml0IHsgbGluZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKSAtIGxpbmVzLmZpcnN0KCkubG9naWNh
bFRvcCgpIH07CiB9CiAKIHNpemVfdCBMaW5lTGF5b3V0OjpsaW5lQ291bnQoKSBjb25zdApAQCAt
MTY3LDMxICsxNjcsMzEgQEAgc2l6ZV90IExpbmVMYXlvdXQ6OmxpbmVDb3VudCgpIGNvbnN0CiAg
ICAgICAgIHJldHVybiAwOwogICAgIGlmIChpbmxpbmVDb250ZW50LT5ydW5zLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGlubGluZUNvbnRlbnQtPmxpbmVzLnNpemUo
KTsKKyAgICByZXR1cm4gbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGUubGluZXMoKS5zaXplKCk7CiB9
CiAKIExheW91dFVuaXQgTGluZUxheW91dDo6Zmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdAogewot
ICAgIGF1dG8qIGlubGluZUNvbnRlbnQgPSBkaXNwbGF5SW5saW5lQ29udGVudCgpOwotICAgIGlm
ICghaW5saW5lQ29udGVudCkgeworICAgIGF1dG8mIGxpbmVzID0gbV9pbmxpbmVGb3JtYXR0aW5n
U3RhdGUubGluZXMoKTsKKyAgICBpZiAobGluZXMuaXNFbXB0eSgpKSB7CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gMF9sdTsKICAgICB9CiAKLSAgICBhdXRv
JiBmaXJzdExpbmUgPSBpbmxpbmVDb250ZW50LT5saW5lcy5maXJzdCgpOwotICAgIHJldHVybiBM
YXlvdXQ6OnRvTGF5b3V0VW5pdChmaXJzdExpbmUudG9wKCkgKyBmaXJzdExpbmUuYmFzZWxpbmUo
KSk7CisgICAgYXV0byYgZmlyc3RMaW5lID0gbGluZXMuZmlyc3QoKTsKKyAgICByZXR1cm4gTGF5
b3V0Ojp0b0xheW91dFVuaXQoZmlyc3RMaW5lLmxvZ2ljYWxUb3AoKSArIGZpcnN0TGluZS5iYXNl
bGluZSgpKTsKIH0KIAogTGF5b3V0VW5pdCBMaW5lTGF5b3V0OjpsYXN0TGluZUJhc2VsaW5lKCkg
Y29uc3QKIHsKLSAgICBhdXRvKiBpbmxpbmVDb250ZW50ID0gZGlzcGxheUlubGluZUNvbnRlbnQo
KTsKLSAgICBpZiAoIWlubGluZUNvbnRlbnQpIHsKKyAgICBhdXRvJiBsaW5lcyA9IG1faW5saW5l
Rm9ybWF0dGluZ1N0YXRlLmxpbmVzKCk7CisgICAgaWYgKGxpbmVzLmlzRW1wdHkoKSkgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIDBfbHU7CiAgICAgfQog
Ci0gICAgYXV0byYgbGFzdExpbmUgPSBpbmxpbmVDb250ZW50LT5saW5lcy5sYXN0KCk7Ci0gICAg
cmV0dXJuIExheW91dDo6dG9MYXlvdXRVbml0KGxhc3RMaW5lLnRvcCgpICsgbGFzdExpbmUuYmFz
ZWxpbmUoKSk7CisgICAgYXV0byYgbGFzdExpbmUgPSBsaW5lcy5sYXN0KCk7CisgICAgcmV0dXJu
IExheW91dDo6dG9MYXlvdXRVbml0KGxhc3RMaW5lLmxvZ2ljYWxUb3AoKSArIGxhc3RMaW5lLmJh
c2VsaW5lKCkpOwogfQogCiB2b2lkIExpbmVMYXlvdXQ6OmNvbGxlY3RPdmVyZmxvdyhSZW5kZXJC
bG9ja0Zsb3cmIGZsb3cpCkBAIC0zMDAsMTMgKzMwMCwxMyBAQCB2b2lkIExpbmVMYXlvdXQ6OnBh
aW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQp
CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvJiBsaW5lID0gaW5saW5lQ29udGVudC5saW5lRm9y
UnVuKHJ1bik7Ci0gICAgICAgIGF1dG8gYmFzZWxpbmUgPSBwYWludE9mZnNldC55KCkgKyBsaW5l
LnRvcCgpICsgbGluZS5iYXNlbGluZSgpOworICAgICAgICBhdXRvIGJhc2VsaW5lID0gcGFpbnRP
ZmZzZXQueSgpICsgbGluZS5yZWN0KCkueSgpICsgbGluZS5iYXNlbGluZSgpOwogICAgICAgICBh
dXRvIGV4cGFuc2lvbiA9IHJ1bi5leHBhbnNpb24oKTsKIAogICAgICAgICBTdHJpbmcgdGV4dFdp
dGhIeXBoZW47CiAgICAgICAgIGlmICh0ZXh0Q29udGVudC5uZWVkc0h5cGhlbigpKQogICAgICAg
ICAgICAgdGV4dFdpdGhIeXBoZW4gPSBtYWtlU3RyaW5nKHRleHRDb250ZW50LmNvbnRlbnQoKSwg
c3R5bGUuaHlwaGVuU3RyaW5nKCkpOwotICAgICAgICBUZXh0UnVuIHRleHRSdW4geyAhdGV4dFdp
dGhIeXBoZW4uaXNFbXB0eSgpID8gdGV4dFdpdGhIeXBoZW4gOiB0ZXh0Q29udGVudC5jb250ZW50
KCksIHJ1bi5sZWZ0KCkgLSBsaW5lLmxlZnQoKSwgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNp
b24sIGV4cGFuc2lvbi5iZWhhdmlvciB9OworICAgICAgICBUZXh0UnVuIHRleHRSdW4geyAhdGV4
dFdpdGhIeXBoZW4uaXNFbXB0eSgpID8gdGV4dFdpdGhIeXBoZW4gOiB0ZXh0Q29udGVudC5jb250
ZW50KCksIHJ1bi5sZWZ0KCkgLSBsaW5lLnJlY3QoKS54KCksIGV4cGFuc2lvbi5ob3Jpem9udGFs
RXhwYW5zaW9uLCBleHBhbnNpb24uYmVoYXZpb3IgfTsKICAgICAgICAgdGV4dFJ1bi5zZXRUYWJT
aXplKCFzdHlsZS5jb2xsYXBzZVdoaXRlU3BhY2UoKSwgc3R5bGUudGFiU2l6ZSgpKTsKICAgICAg
ICAgRmxvYXRQb2ludCB0ZXh0T3JpZ2luIHsgcmVjdC54KCkgKyBwYWludE9mZnNldC54KCksIHJv
dW5kVG9EZXZpY2VQaXhlbChiYXNlbGluZSwgZGV2aWNlU2NhbGVGYWN0b3IpIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcAppbmRleCAxOTVkYjViNTM5MGE3MGZkNjhjNGUyOGUwYTJhNGUwMDU1MDRhMzVlLi5mNTkw
MTlkYzUzODM0YTA0MjhkZDhiM2U3MDkzN2JkNzIyOWM5ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCkBAIC0z
ODYsNyArMzg2LDcgQEAgc3RhdGljIHZvaWQgb3V0cHV0SW5saW5lUnVucyhUZXh0U3RyZWFtJiBz
dHJlYW0sIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYXV0byYgZGlzcGxheVJ1bnMgPSBkaXNwbGF5SW5saW5lQ29udGVudC0+cnVuczsKLSAg
ICBhdXRvJiBsaW5lcyA9IGRpc3BsYXlJbmxpbmVDb250ZW50LT5saW5lczsKKyAgICBhdXRvJiBs
aW5lcyA9IGlubGluZUZvcm1hdHRpbmdTdGF0ZS5saW5lcygpOwogCiAgICAgdW5zaWduZWQgcHJp
bnRlZENoYXJhY3RlcnMgPSAwOwogICAgIHdoaWxlICgrK3ByaW50ZWRDaGFyYWN0ZXJzIDw9IGRl
cHRoICogMikKQEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBvdXRwdXRJbmxpbmVSdW5z
KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLAogCiAg
ICAgc3RyZWFtIDw8ICJsaW5lcyBhcmUgLT4gIjsKICAgICBmb3IgKGF1dG8mIGxpbmUgOiBsaW5l
cykKLSAgICAgICAgc3RyZWFtIDw8ICJbIiA8PCBsaW5lLmxlZnQoKSA8PCAiLCIgPDwgbGluZS50
b3AoKSA8PCAiICIgPDwgbGluZS53aWR0aCgpIDw8ICJ4IiA8PCBsaW5lLmhlaWdodCgpIDw8ICJd
W2Jhc2VsaW5lOiAiIDw8IGxpbmUuYmFzZWxpbmUoKSA8PCAiXSI7CisgICAgICAgIHN0cmVhbSA8
PCAiWyIgPDwgbGluZS5sb2dpY2FsTGVmdCgpIDw8ICIsIiA8PCBsaW5lLmxvZ2ljYWxUb3AoKSA8
PCAiICIgPDwgbGluZS5sb2dpY2FsV2lkdGgoKSA8PCAieCIgPDwgbGluZS5sb2dpY2FsSGVpZ2h0
KCkgPDwgIl1bYmFzZWxpbmU6ICIgPDwgbGluZS5iYXNlbGluZSgpIDw8ICJdIjsKICAgICBzdHJl
YW0ubmV4dExpbmUoKTsKIAogICAgIGZvciAoYXV0byYgZGlzcGxheVJ1biA6IGRpc3BsYXlSdW5z
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCAxMWI1MTNkYmVjNDdjMGI1
MTc0NWRlMDJhMGVhNjdiYTdjNzMxMjk5Li4yMzVmNDBlODAwZWE5MWM1YzEwOGRhMjQzOGVjZTUz
YTk4M2NiZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0
aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTEyOSwxMCAr
MTI5LDExIEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0VXNlZEdlb21ldHJ5Rm9y
Q2VsbHMoTGF5b3V0VW5pdCBhdmFpbGFibGVIb3Jpem9uCiAgICAgICAgICAgICAgICAgICAgIGZv
cm1hdHRpbmdTdGF0ZS5ib3hHZW9tZXRyeSgqY2hpbGQpLm1vdmVWZXJ0aWNhbGx5KGludHJpbnNp
Y1BhZGRpbmdUb3ApOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoY2Vs
bEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byYgZGlzcGxheUNvbnRlbnQgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVk
SW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpLmVuc3VyZURpc3BsYXlJbmxpbmVDb250ZW50
KCk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8mIGlubGluZUZvcm1hdHRpbmdTdGF0ZWUgPSBs
YXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxCb3gpOwor
ICAgICAgICAgICAgICAgICAgICBhdXRvJiBkaXNwbGF5Q29udGVudCA9IGlubGluZUZvcm1hdHRp
bmdTdGF0ZWUuZW5zdXJlRGlzcGxheUlubGluZUNvbnRlbnQoKTsKICAgICAgICAgICAgICAgICAg
ICAgZm9yIChhdXRvJiBydW4gOiBkaXNwbGF5Q29udGVudC5ydW5zKQogICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuLm1vdmVWZXJ0aWNhbGx5KGludHJpbnNpY1BhZGRpbmdUb3ApOwotICAgICAg
ICAgICAgICAgICAgICBmb3IgKGF1dG8mIGxpbmUgOiBkaXNwbGF5Q29udGVudC5saW5lcykKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBsaW5lIDogaW5saW5lRm9ybWF0dGluZ1N0YXRl
ZS5saW5lcygpKQogICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5tb3ZlVmVydGljYWxseShp
bnRyaW5zaWNQYWRkaW5nVG9wKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IDFhMGI5
MmI5MjZhYWRhZjVkMzAyMWFkNTJlOThlYmJmN2I0MTBmMmQuLjVjNzk4NjkwZDVmNTQxNGRlMDcx
NDYxZWM2OGVmZmM2ZmJlMWVhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKQEAgLTE0NiwxMiArMTQ2LDEyIEBAIElubGluZUxheW91dFVuaXQgVGFi
bGVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnVzZWRCYXNlbGluZUZvckNlbGwoY29uc3Qg
Q29uCiAgICAgLy8gb3IgdGhlIGZpcnN0IGluLWZsb3cgdGFibGUtcm93IGluIHRoZSBjZWxsLCB3
aGljaGV2ZXIgY29tZXMgZmlyc3QuCiAgICAgLy8gSWYgdGhlcmUgaXMgbm8gc3VjaCBsaW5lIGJv
eCwgdGhlIGJhc2VsaW5lIGlzIHRoZSBib3R0b20gb2YgY29udGVudCBlZGdlIG9mIHRoZSBjZWxs
IGJveC4KICAgICBpZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
KCkpCi0gICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9ybWF0
dGluZ1N0YXRlKGNlbGxCb3gpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVzWzBdLmJhc2Vs
aW5lKCk7CisgICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmVzdGFibGlzaGVkSW5saW5lRm9y
bWF0dGluZ1N0YXRlKGNlbGxCb3gpLmxpbmVzKClbMF0uYmFzZWxpbmUoKTsKICAgICBmb3IgKGF1
dG8mIGNlbGxEZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8Q29udGFpbmVyQm94PihjZWxs
Qm94KSkgewogICAgICAgICBpZiAoY2VsbERlc2NlbmRhbnQuZXN0YWJsaXNoZXNJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dCgpKSB7Ci0gICAgICAgICAgICBhdXRvKiBkaXNwbGF5SW5saW5lQ29udGVu
dCA9IGxheW91dFN0YXRlKCkuZXN0YWJsaXNoZWRJbmxpbmVGb3JtYXR0aW5nU3RhdGUoY2VsbERl
c2NlbmRhbnQpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7Ci0gICAgICAgICAgICBpZiAoIWRpc3Bs
YXlJbmxpbmVDb250ZW50LT5ydW5zLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZGlzcGxheUlubGluZUNvbnRlbnQtPmxpbmVzWzBdLmJhc2VsaW5lKCk7CisgICAgICAgICAgICBh
dXRvIGlubGluZUZvcm1hdHRpbmdTdGF0ZUZvckNlbGwgPSBsYXlvdXRTdGF0ZSgpLmVzdGFibGlz
aGVkSW5saW5lRm9ybWF0dGluZ1N0YXRlKGNlbGxEZXNjZW5kYW50KTsKKyAgICAgICAgICAgIGlm
ICghaW5saW5lRm9ybWF0dGluZ1N0YXRlRm9yQ2VsbC5saW5lcygpLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gaW5saW5lRm9ybWF0dGluZ1N0YXRlRm9yQ2VsbC5saW5lcygpWzBd
LmJhc2VsaW5lKCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGNlbGxEZXNjZW5kYW50LmVzdGFi
bGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpKQogICAgICAgICAgICAgcmV0dXJuIGxheW91
dFN0YXRlKCkuZXN0YWJsaXNoZWRUYWJsZUZvcm1hdHRpbmdTdGF0ZShjZWxsRGVzY2VuZGFudCku
dGFibGVHcmlkKCkucm93cygpLmxpc3QoKVswXS5iYXNlbGluZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>