<?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>202128</bug_id>
          
          <creation_ts>2019-09-23 20:58:02 -0700</creation_ts>
          <short_desc>[LFC][IFC] Line::Content should use LineBox</short_desc>
          <delta_ts>2019-09-24 08:30:25 -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>commit-queue</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>1573541</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-23 20:58:02 -0700</bug_when>
    <thetext>and not rect + baseline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573542</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-23 20:58:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/55649079&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573545</commentid>
    <comment_count>2</comment_count>
      <attachid>379422</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-23 21:08:03 -0700</bug_when>
    <thetext>Created attachment 379422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573547</commentid>
    <comment_count>3</comment_count>
      <attachid>379424</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-23 21:08:39 -0700</bug_when>
    <thetext>Created attachment 379424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573654</commentid>
    <comment_count>4</comment_count>
      <attachid>379451</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-24 07:45:02 -0700</bug_when>
    <thetext>Created attachment 379451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573659</commentid>
    <comment_count>5</comment_count>
      <attachid>379451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 08:30:24 -0700</bug_when>
    <thetext>Comment on attachment 379451
Patch

Clearing flags on attachment: 379451

Committed r250299: &lt;https://trac.webkit.org/changeset/250299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573660</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 08:30:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379422</attachid>
            <date>2019-09-23 21:08:03 -0700</date>
            <delta_ts>2019-09-23 21:08:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202128-20190923210754.patch</filename>
            <type>text/plain</type>
            <size>22293</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTllOTI2N2M3M2RhNWI2
MjhkYmY1MTk1YWYzZWNiOWU2NTBiMzBlMC4uNGY1ZjlkMzlmOWM4MzVmYjAyMzg3NDY0OWNkZTBl
MzYxNTkxZjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTA5LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBMaW5lOjpD
b250ZW50IHNob3VsZCB1c2UgTGluZUJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTY0OTA3
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIExpbmU6OkNvbnRlbnQncyBtX2xvZ2ljYWxSZWN0LCBtX2Jhc2VsaW5lIGFuZCBtX2Jhc2Vs
aW5lT2Zmc2V0IHdpdGggTGluZUJveC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVh
dGVEaXNwbGF5UnVucyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpsaW5lRGVzY2VudE5lZWRzQ29sbGFwc2lu
ZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpRdWlya3M6OmxpbmVIZWlnaHRDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgICogbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YWRq
dXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRl
bnQ6OmxpbmVCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250
ZW50OjpzZXRMaW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YmFzZWxp
bmVPZmZzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50
Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6Q29udGVudDo6bG9naWNhbFRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9naWNhbFJpZ2h0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9n
aWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OkNvbnRlbnQ6OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxIZWlnaHQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpiYXNlbGluZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmJh
c2VsaW5lT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZTo6Q29udGVudDo6c2V0TG9naWNhbFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpzZXRCYXNlbGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OnNldEJhc2VsaW5lT2Zmc2V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OkJhc2VsaW5lOjpoZWlnaHQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpMaW5lQm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6YmFzZWxpbmVPZmZzZXQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6QmFzZWxpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6c2V0QXNjZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6YXNjZW50IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OmRlc2NlbnQgY29u
c3QpOgorCiAyMDE5LTA5LTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBNb3ZlIGxpbmUgY29uc3RyYWludHMgY29tcHV0YXRpb24gdG8gYSBk
ZWRpY2F0ZWQgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQuY3BwCmluZGV4IDFhZTVmMzAzYTgyMjgwMmJmNmZhNWQ5YTI0YjgwMWU2MTg1
OWVmYjQuLmQ2OTQxYjJlYzY2ZjdjZWM4YzkzMWNlMTgzODg5ZmMxMTYxYWQ4NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcApAQCAtMjg4
LDExICsyODgsMTAgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0
OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW0KIAogICAgICAgICBpZiAobGlu
ZUNvbnRlbnQubGFzdENvbW1pdHRlZCkgewogICAgICAgICAgICAgY3VycmVudElubGluZUl0ZW0g
PSB7IGxpbmVDb250ZW50Lmxhc3RDb21taXR0ZWQtPmluZGV4ICsgMSwgV1RGOjpudWxsb3B0IH07
Ci0gICAgICAgICAgICBsaW5lTG9naWNhbFRvcCA9IGxpbmVDb250ZW50LnJ1bnMtPmxvZ2ljYWxC
b3R0b20oKTsKKyAgICAgICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQucnVucy0+
bGluZUJveCgpLmxvZ2ljYWxCb3R0b20oKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IC8vIEZsb2F0cyBwcmV2ZW50ZWQgdXMgcGxhY2luZyBhbnkgY29udGVudCBvbiB0aGUgbGluZS4K
ICAgICAgICAgICAgIEFTU0VSVChsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLmxpbmVJc0Nv
bnN0cmFpbmVkQnlGbG9hdCk7Ci0gICAgICAgICAgICBBU1NFUlQobGluZUNvbnRlbnQucnVucy0+
aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vIE1vdmUgdGhlIG5leHQgbGluZSBiZWxvdyB0aGUg
aW50cnVzaXZlIGZsb2F0LgogICAgICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9h
dGluZ0NvbnRleHQgeyBmb3JtYXR0aW5nUm9vdCgpLCBmb3JtYXR0aW5nQ29udGV4dCgpLCBmb3Jt
YXR0aW5nU3RhdGUoKS5mbG9hdGluZ1N0YXRlKCkgfTsKICAgICAgICAgICAgIGF1dG8gZmxvYXRD
b25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5jb25zdHJhaW50cyh7IGxpbmVMb2dpY2FsVG9w
IH0pOwpAQCAtMzUzLDcgKzM1Miw3IEBAIExheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OklubGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChjb25zdCBJCiAgICAgICAg
IExheW91dFVuaXQgZmxvYXRzV2lkdGg7CiAgICAgICAgIGZvciAoYXV0byYgZmxvYXRJdGVtIDog
bGluZUNvbnRlbnQuZmxvYXRzKQogICAgICAgICAgICAgZmxvYXRzV2lkdGggKz0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goZmxvYXRJdGVtLT5sYXlvdXRCb3goKSkubWFyZ2luQm94
V2lkdGgoKTsKLSAgICAgICAgbWF4aW11bUxpbmVXaWR0aCA9IHN0ZDo6bWF4KG1heGltdW1MaW5l
V2lkdGgsIGZsb2F0c1dpZHRoICsgbGluZUNvbnRlbnQucnVucy0+bG9naWNhbFdpZHRoKCkpOwor
ICAgICAgICBtYXhpbXVtTGluZVdpZHRoID0gc3RkOjptYXgobWF4aW11bUxpbmVXaWR0aCwgZmxv
YXRzV2lkdGggKyBsaW5lQ29udGVudC5ydW5zLT5saW5lQm94KCkubG9naWNhbFdpZHRoKCkpOwog
ICAgIH0KICAgICByZXR1cm4gbWF4aW11bUxpbmVXaWR0aDsKIH0KQEAgLTM2OSwyNCArMzY4LDE3
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlz
cGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVuCiAgICAgICAgIGF1dG8mIGZsb2F0Qm94ID0gZmxv
YXRJdGVtLT5sYXlvdXRCb3goKTsKICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRp
bmdTdGF0ZS5kaXNwbGF5Qm94KGZsb2F0Qm94KTsKICAgICAgICAgLy8gU2V0IHN0YXRpYyBwb3Np
dGlvbiBmaXJzdC4KLSAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KHsgbGluZUNvbnRlbnQu
bG9naWNhbExlZnQoKSwgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpIH0pOworICAgICAgICBhdXRv
JiBsaW5lQm94ID0gbGluZUNvbnRlbnQubGluZUJveCgpOworICAgICAgICBkaXNwbGF5Qm94LnNl
dFRvcExlZnQoeyBsaW5lQm94LmxvZ2ljYWxMZWZ0KCksIGxpbmVCb3gubG9naWNhbFRvcCgpIH0p
OwogICAgICAgICAvLyBGbG9hdCBpdC4KICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGZs
b2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGZsb2F0Qm94KSk7CiAgICAgICAgIGZsb2F0
aW5nQ29udGV4dC5hcHBlbmQoZmxvYXRCb3gpOwogICAgIH0KIAotICAgIGlmIChsaW5lQ29udGVu
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gU3BlYyB0ZWxscyB1cyB0byBjcmVhdGUgYSB6ZXJv
IGhlaWdodCwgZW1wdHkgbGluZSBib3guCi0gICAgICAgIGF1dG8gbGluZUJveFJlY3QgPSBEaXNw
bGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5sb2dpY2Fs
TGVmdCgpLCAwICwgMCB9OwotICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkTGluZUJveCh7IGxp
bmVCb3hSZWN0LCBsaW5lQ29udGVudC5iYXNlbGluZSgpLCBsaW5lQ29udGVudC5iYXNlbGluZU9m
ZnNldCgpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgYXV0byYgaW5saW5lRGlz
cGxheVJ1bnMgPSBmb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpOwotICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBpbmxpbmVEaXNwbGF5UnVucy5pc0Vt
cHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAt
IDE7CisgICAgYXV0byBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBPcHRpb25hbDx1bnNpZ25l
ZD4geyBpbmxpbmVEaXNwbGF5UnVucy5pc0VtcHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6
IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAtIDEgfTsKICAgICAvLyA5LjQuMiBJbmxpbmUgZm9y
bWF0dGluZyBjb250ZXh0cwogICAgIC8vIEEgbGluZSBib3ggaXMgYWx3YXlzIHRhbGwgZW5vdWdo
IGZvciBhbGwgb2YgdGhlIGJveGVzIGl0IGNvbnRhaW5zLgotICAgIGF1dG8gbGluZUJveFJlY3Qg
PSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5s
b2dpY2FsTGVmdCgpLCAwLCBsaW5lQ29udGVudC5sb2dpY2FsSGVpZ2h0KCl9OwogICAgIC8vIENy
ZWF0ZSBmaW5hbCBkaXNwbGF5IHJ1bnMuCiAgICAgYXV0byYgbGluZVJ1bnMgPSBsaW5lQ29udGVu
dC5ydW5zKCk7CiAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5
KCk7CkBAIC00MTAsNyArNDAyLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5s
aW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAg
ICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAg
dG9wTGVmdCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0
Qm94LCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0
VG9wTGVmdCh0b3BMZWZ0KTsKLSAgICAgICAgICAgIGxpbmVCb3hSZWN0LmV4cGFuZEhvcml6b250
YWxseShsb2dpY2FsUmVjdC53aWR0aCgpKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5h
ZGRJbmxpbmVSdW4obWFrZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNDE4LDcgKzQwOSw2IEBAIHZvaWQgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29u
c3QgTGluZTo6Q29udGVuCiAgICAgICAgIC8vIElubGluZSBsZXZlbCBjb250YWluZXIgc3RhcnQg
KDxzcGFuPikKICAgICAgICAgaWYgKGxpbmVSdW4tPmlzQ29udGFpbmVyU3RhcnQoKSkgewogICAg
ICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGxvZ2ljYWxSZWN0LnRvcExlZnQoKSk7Ci0g
ICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lk
dGgoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC00MzQsNyArNDI0
LDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVE
aXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgICAgIC8vIEZJWE1FIGZpeCBp
dCBmb3IgbXVsdGlsaW5lLgogICAgICAgICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lk
dGgoY29udGVudEJveFdpZHRoKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJv
eEhlaWdodChsb2dpY2FsUmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5l
eHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCkBAIC00NTIsNyArNDQxLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpD
b250ZW4KICAgICAgICAgICAgICAgICBsYXN0RGlzcGxheVJ1bi0+ZXhwYW5kSG9yaXpvbnRhbGx5
KGxvZ2ljYWxSZWN0LndpZHRoKCkpOwogICAgICAgICAgICAgICAgIGxhc3REaXNwbGF5UnVuLT50
ZXh0Q29udGV4dCgpLT5leHBhbmQodGV4dENvbnRleHQtPmxlbmd0aCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qu
d2lkdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUUgdGFrZSBjb250ZW50IGJyZWFr
aW5nIGludG8gYWNjb3VudCB3aGVuIHBhcnQgb2YgdGhlIGxheW91dCBib3ggaXMgb24gdGhlIHBy
ZXZpb3VzIGxpbmUuCiAgICAgICAgIGF1dG8gZmlyc3RJbmxpbmVSdW5Gb3JMYXlvdXRCb3ggPSAh
cHJldmlvdXNMaW5lUnVuIHx8ICZwcmV2aW91c0xpbmVSdW4tPmxheW91dEJveCgpICE9ICZsYXlv
dXRCb3g7CkBAIC00NjcsOCArNDU1LDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAg
ICAgfQogICAgIH0KICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRzIHRvIGJlIGFqdXN0ZWQgYWZ0
ZXIgY29udGVudCBhbGlnbm1lbnQuCi0gICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3goeyBs
aW5lQm94UmVjdCwgbGluZUNvbnRlbnQuYmFzZWxpbmUoKSwgbGluZUNvbnRlbnQuYmFzZWxpbmVP
ZmZzZXQoKSB9KTsKLSAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRB
bGlnbigpLCBpbmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVl
T3IoLTEpICsgMSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5sb2dpY2FsV2lkdGgo
KSk7CisgICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3gobGluZUNvbnRlbnQubGluZUJveCgp
KTsKKyAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBp
bmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVlT3IoLTEpICsg
MSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5saW5lQm94KCkubG9naWNhbFdpZHRo
KCkpOwogfQogCiBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0VW5pdD4gaG9yaXpvbnRhbEFkanVzdG1l
bnRGb3JBbGlnbm1lbnQoVGV4dEFsaWduTW9kZSBhbGlnbiwgTGF5b3V0VW5pdCByZW1haW5pbmdX
aWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRl
eCAwMTFhNThhMTUyZmNhMmI2NTIzMDQ4MmU2OWVkMDM2NjZmYTllODQ2Li5kZmNjNjI2YTMwOTE2
OGY0M2MxZjBlMzgyOGQyNzliMGJiZjA3NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluZURlc2NlbnROZWVkc0NvbGxhcHNpbmcoY29uc3QgTGlu
ZTo6Q29uCiAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8
SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZShkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkpKTsKICAgICAgICAgICAgICAgICBB
U1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0VtcHR5KCkpOwogICAgICAgICAg
ICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94
ZXMoKS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICBpZiAoaW5saW5lQmxvY2tC
YXNlbGluZS5kZXNjZW50KQorICAgICAgICAgICAgICAgIGlmIChpbmxpbmVCbG9ja0Jhc2VsaW5l
LmRlc2NlbnQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC04NywxOCArODcsMTggQEAgTGluZTo6SW5pdGlh
bENvbnN0cmFpbnRzOjpIZWlnaHRBbmRCYXNlbGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
UXVpcmtzOjpsaW4KICAgICAvLyBjb21wdXRlZExpbmVIZWlnaHQgdGFrZXMgZm9udC1zaXplIGlu
dG8gYWNjb3VudCB3aGVuIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQuCiAgICAgLy8gU3RydXQgaXMg
dGhlIGltYWdpbmFyeSBib3ggdGhhdCB3ZSBwdXQgb24gZXZlcnkgbGluZS4gSXQgc2V0cyB0aGUg
aW5pdGlhbCB2ZXJ0aWNhbCBjb25zdHJhaW50cyBmb3IgZWFjaCBuZXcgbGluZS4KICAgICBhdXRv
IHN0cnV0SGVpZ2h0ID0gZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5jb21wdXRlZExpbmVIZWlnaHQo
KTsKLSAgICBhdXRvIHN0cnV0QmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJp
Y3MoZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBzdHJ1dEhlaWdodCkuYXNj
ZW50OworICAgIGF1dG8gc3RydXRCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0
cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHN0cnV0SGVpZ2h0KS5h
c2NlbnQoKTsKICAgICBpZiAobGF5b3V0U3RhdGUoKS5pbk5vUXVpcmtzTW9kZSgpKQogICAgICAg
ICByZXR1cm4geyBzdHJ1dEhlaWdodCwgc3RydXRCYXNlbGluZU9mZnNldCwgeyB9IH07CiAKICAg
ICBhdXRvIGxpbmVIZWlnaHQgPSBmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmxpbmVIZWlnaHQoKTsK
ICAgICBpZiAobGluZUhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSkgewotICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50OworICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50KCk7CiAgICAgICAg
IHJldHVybiB7IGluaXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0LCBM
aW5lQm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3Ry
dXRCYXNlbGluZU9mZnNldCB9IH07CiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGUgb25seSByZWFz
b24gd2h5IHdlIHVzZSBpbnRWYWx1ZSgpIGhlcmUgaXMgdG8gbWF0Y2ggY3VycmVudCBpbmxpbmUg
dHJlZSAoaW50ZWdyYWwpYmVoYXZpb3IuCiAgICAgYXV0byBpbml0aWFsTGluZUhlaWdodCA9IExh
eW91dFVuaXQgeyBsaW5lSGVpZ2h0LmludFZhbHVlKCkgfTsKLSAgICBhdXRvIGluaXRpYWxCYXNl
bGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdC5zdHls
ZSgpLmZvbnRNZXRyaWNzKCksIGluaXRpYWxMaW5lSGVpZ2h0KS5hc2NlbnQ7CisgICAgYXV0byBp
bml0aWFsQmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJpY3MoZm9ybWF0dGlu
Z1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBpbml0aWFsTGluZUhlaWdodCkuYXNjZW50KCk7
CiAgICAgcmV0dXJuIHsgaW5pdGlhbExpbmVIZWlnaHQsIGluaXRpYWxCYXNlbGluZU9mZnNldCwg
TGluZUJveDo6QmFzZWxpbmUgeyBzdHJ1dEJhc2VsaW5lT2Zmc2V0LCBzdHJ1dEhlaWdodCAtIHN0
cnV0QmFzZWxpbmVPZmZzZXQgfSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDZhMDFhMTk2NGY2ZjEz
NGI3NGI0MGU1OWEzZmZiZmQ4MDQ5NTRmNWUuLjcxZjEzMjM0MjYwMDg5NWMxMDdhNzQwY2ZhMzBh
Njk3ZGYwODZmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0xMDQsMTUgKzEwNCwxNSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgIHJlbW92ZVRyYWlsaW5nVHJp
bW1hYmxlQ29udGVudCgpOwogICAgIGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkgewogICAg
ICAgICBpZiAoaXNWaXN1YWxseUVtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYmFzZWxpbmUgPSB7
IH07CisgICAgICAgICAgICBtX2Jhc2VsaW5lLnJlc2V0KCk7CiAgICAgICAgICAgICBtX2Jhc2Vs
aW5lVG9wID0geyB9OwogICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHsgfTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFJlbW92ZSBkZXNjZW50IHdoZW4gYWxsIGNvbnRlbnQgaXMg
YmFzZWxpbmUgYWxpZ25lZCBidXQgbm9uZSBvZiB0aGVtIGhhdmUgZGVzY2VudC4KICAgICAgICAg
aWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkubGluZURlc2NlbnROZWVkc0NvbGxhcHNp
bmcoKm1fY29udGVudCkpIHsKLSAgICAgICAgICAgIG1fbGluZUxvZ2ljYWxIZWlnaHQgLT0gbV9i
YXNlbGluZS5kZXNjZW50OwotICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNjZW50ID0geyB9Owor
ICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCAtPSBtX2Jhc2VsaW5lLmRlc2NlbnQoKTsK
KyAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0RGVzY2VudCh7IH0pOwogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwpAQCAtMTM1LDcg
KzEzNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMaW5lOjpDb250ZW50PiBMaW5lOjpjbG9zZSgpCiAg
ICAgICAgICAgICAgICAgICAgIC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25l
IGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
Zm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMo
KS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbFRvcCA9IGJh
c2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2VsaW5lLmFzY2VudDsKKyAgICAgICAgICAg
ICAgICAgICAgbG9naWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2Vs
aW5lLmFzY2VudCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAg
ICBsb2dpY2FsVG9wID0gYmFzZWxpbmVPZmZzZXQoKSAtIHJ1bi0+bG9naWNhbFJlY3QoKS5oZWln
aHQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE1NSw5ICsxNTUsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgICAgICAgICAgcnVuLT5t
b3ZlSG9yaXpvbnRhbGx5KHRoaXMtPmxvZ2ljYWxMZWZ0KCkpOwogICAgICAgICB9CiAgICAgfQot
ICAgIG1fY29udGVudC0+c2V0TG9naWNhbFJlY3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0
KCksIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0pOwotICAgIG1fY29u
dGVudC0+c2V0QmFzZWxpbmUobV9iYXNlbGluZSk7Ci0gICAgbV9jb250ZW50LT5zZXRCYXNlbGlu
ZU9mZnNldChiYXNlbGluZU9mZnNldCgpKTsKKyAgICBtX2NvbnRlbnQtPnNldExpbmVCb3goIExp
bmVCb3ggeyBEaXNwbGF5OjpSZWN0IHsgbG9naWNhbFRvcCgpLCBsb2dpY2FsTGVmdCgpLCBjb250
ZW50TG9naWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQoKSB9LCBtX2Jhc2VsaW5lLCBiYXNlbGlu
ZU9mZnNldCgpIH0pOwogICAgIHJldHVybiBXVEZNb3ZlKG1fY29udGVudCk7CiB9CiAKQEAgLTM0
MywxMCArMzQxLDEwIEBAIHZvaWQgTGluZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNv
bnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQKICAgICAgICAgaWYgKHN0eWxl
LnZlcnRpY2FsQWxpZ24oKSA9PSBWZXJ0aWNhbEFsaWduOjpCYXNlbGluZSkgewogICAgICAgICAg
ICAgYXV0byBoYWxmTGVhZGluZyA9IGhhbGZMZWFkaW5nTWV0cmljcyhmb250TWV0cmljcywgc3R5
bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCkpOwogICAgICAgICAgICAgLy8gQm90aCBoYWxmbGVhZGlu
ZyBhc2NlbnQgYW5kIGRlc2NlbnQgY291bGQgYmUgbmVnYXRpdmUgKHRhbGwgZm9udCB2cy4gc21h
bGwgbGluZS1oZWlnaHQgdmFsdWUpCi0gICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuZGVzY2Vu
dCA+IDApCi0gICAgICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNjZW50ID0gc3RkOjptYXgobV9i
YXNlbGluZS5kZXNjZW50LCBoYWxmTGVhZGluZy5kZXNjZW50KTsKLSAgICAgICAgICAgIGlmICho
YWxmTGVhZGluZy5hc2NlbnQgPiAwKQotICAgICAgICAgICAgICAgIG1fYmFzZWxpbmUuYXNjZW50
ID0gc3RkOjptYXgobV9iYXNlbGluZS5hc2NlbnQsIGhhbGZMZWFkaW5nLmFzY2VudCk7CisgICAg
ICAgICAgICBpZiAoaGFsZkxlYWRpbmcuZGVzY2VudCgpID4gMCkKKyAgICAgICAgICAgICAgICBt
X2Jhc2VsaW5lLnNldERlc2NlbnQoc3RkOjptYXgobV9iYXNlbGluZS5kZXNjZW50KCksIGhhbGZM
ZWFkaW5nLmRlc2NlbnQoKSkpOworICAgICAgICAgICAgaWYgKGhhbGZMZWFkaW5nLmFzY2VudCgp
ID4gMCkKKyAgICAgICAgICAgICAgICBtX2Jhc2VsaW5lLnNldEFzY2VudChzdGQ6Om1heChtX2Jh
c2VsaW5lLmFzY2VudCgpLCBoYWxmTGVhZGluZy5hc2NlbnQoKSkpOwogICAgICAgICAgICAgY29u
dGVudEhlaWdodCA9IG1fYmFzZWxpbmUuaGVpZ2h0KCk7CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgY29udGVudEhlaWdodCA9IGZvbnRNZXRyaWNzLmhlaWdodCgpOwpAQCAtMzYwLDggKzM1
OCw4IEBAIHZvaWQgTGluZTo6YWRqdXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGlu
ZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQKICAgICAgICAgLy8gdGhyb3VnaCB0aGUgaW5s
aW5lIGNvbnRhaW5lciAoc3RhcnQpIC1zZWUgYWJvdmUuIE5vcm1hbGx5IHRoZSB0ZXh0IGNvbnRl
bnQgaXRzZWxmIGRvZXMgbm90IHN0cmV0Y2ggdGhlIGxpbmUuCiAgICAgICAgIGlmICghbV9pbml0
aWFsU3RydXQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fYmFzZWxpbmUuYXNjZW50
ID0gc3RkOjptYXgobV9pbml0aWFsU3RydXQtPmFzY2VudCwgbV9iYXNlbGluZS5hc2NlbnQpOwot
ICAgICAgICBtX2Jhc2VsaW5lLmRlc2NlbnQgPSBzdGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+ZGVz
Y2VudCwgbV9iYXNlbGluZS5kZXNjZW50KTsKKyAgICAgICAgbV9iYXNlbGluZS5zZXRBc2NlbnQo
c3RkOjptYXgobV9pbml0aWFsU3RydXQtPmFzY2VudCgpLCBtX2Jhc2VsaW5lLmFzY2VudCgpKSk7
CisgICAgICAgIG1fYmFzZWxpbmUuc2V0RGVzY2VudChzdGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+
ZGVzY2VudCgpLCBtX2Jhc2VsaW5lLmRlc2NlbnQoKSkpOwogICAgICAgICBtX2xpbmVMb2dpY2Fs
SGVpZ2h0ID0gc3RkOjptYXgobV9saW5lTG9naWNhbEhlaWdodCwgbV9iYXNlbGluZS5oZWlnaHQo
KSk7CiAgICAgICAgIG1fYmFzZWxpbmVUb3AgPSBzdGQ6Om1heChtX2Jhc2VsaW5lVG9wLCBtX2xp
bmVMb2dpY2FsSGVpZ2h0IC0gbV9iYXNlbGluZS5oZWlnaHQoKSk7CiAgICAgICAgIG1faW5pdGlh
bFN0cnV0ID0geyB9OwpAQCAtMzc5LDggKzM3Nyw4IEBAIHZvaWQgTGluZTo6YWRqdXN0QmFzZWxp
bmVBbmRMaW5lSGVpZ2h0KGNvbnN0IElubGluZUl0ZW0mIGlubGluZUl0ZW0sIExheW91dFVuaXQK
ICAgICAgICAgICAgICAgICBBU1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0Vt
cHR5KCkpOwogICAgICAgICAgICAgICAgIG5ld0Jhc2VsaW5lQ2FuZGlkYXRlID0gZm9ybWF0dGlu
Z1N0YXRlLmxpbmVCb3hlcygpLmxhc3QoKS5iYXNlbGluZSgpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQgPSBzdGQ6Om1heChuZXdCYXNlbGluZUNhbmRpZGF0
ZS5hc2NlbnQsIG1fYmFzZWxpbmUuYXNjZW50KTsKLSAgICAgICAgICAgIG1fYmFzZWxpbmUuZGVz
Y2VudCA9IHN0ZDo6bWF4KG5ld0Jhc2VsaW5lQ2FuZGlkYXRlLmRlc2NlbnQsIG1fYmFzZWxpbmUu
ZGVzY2VudCk7CisgICAgICAgICAgICBtX2Jhc2VsaW5lLnNldEFzY2VudChzdGQ6Om1heChuZXdC
YXNlbGluZUNhbmRpZGF0ZS5hc2NlbnQoKSwgbV9iYXNlbGluZS5hc2NlbnQoKSkpOworICAgICAg
ICAgICAgbV9iYXNlbGluZS5zZXREZXNjZW50KHN0ZDo6bWF4KG5ld0Jhc2VsaW5lQ2FuZGlkYXRl
LmRlc2NlbnQoKSwgbV9iYXNlbGluZS5kZXNjZW50KCkpKTsKICAgICAgICAgICAgIG1fbGluZUxv
Z2ljYWxIZWlnaHQgPSBzdGQ6Om1heChzdGQ6Om1heChtX2xpbmVMb2dpY2FsSGVpZ2h0LCBydW5I
ZWlnaHQpLCBtX2Jhc2VsaW5lLmhlaWdodCgpKTsKICAgICAgICAgICAgIC8vIEJhc2VsaW5lIGFz
Y2VudC9kZXNjZW50IG5ldmVyIHNocmluayAtPiBtYXguCiAgICAgICAgICAgICBtX2Jhc2VsaW5l
VG9wID0gc3RkOjptYXgobV9iYXNlbGluZVRvcCwgbV9saW5lTG9naWNhbEhlaWdodCAtIG1fYmFz
ZWxpbmUuaGVpZ2h0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lTGluZS5oCmluZGV4IDc3ZjQ3MWZmYzUwN2RlNjc5OTA1YzA4YzFiNzJk
OWQyMzUyZWM4YTAuLmJhOTNjNDcyOGE4NTFhYWY5NmE5YjMwZjQ0MGY2MDAyYmYzMjA3Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lLmgKQEAgLTk0LDI4ICs5NCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgICAgIHVz
aW5nIFJ1bnMgPSBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ1bj4+OwogICAgICAgICBjb25zdCBS
dW5zJiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9ydW5zOyB9Ci0gICAgICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcnVucy5pc0VtcHR5KCk7IH0KLQotICAgICAgICBMYXlvdXRV
bml0IGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LnRvcCgpOyB9Ci0g
ICAgICAgIExheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxS
ZWN0LmxlZnQoKTsgfQotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsg
cmV0dXJuIGxvZ2ljYWxMZWZ0KCkgKyBsb2dpY2FsV2lkdGgoKTsgfQotICAgICAgICBMYXlvdXRV
bml0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBsb2dpY2FsVG9wKCkgKyBsb2dpY2Fs
SGVpZ2h0KCk7IH0KLSAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX2xvZ2ljYWxSZWN0LndpZHRoKCk7IH0KLSAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC5oZWlnaHQoKTsgfQotICAgICAg
ICBMaW5lQm94OjpCYXNlbGluZSBiYXNlbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmU7
IH0KLSAgICAgICAgTGF5b3V0VW5pdCBiYXNlbGluZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFzZWxpbmVPZmZzZXQ7IH0KKyAgICAgICAgY29uc3QgTGluZUJveCYgbGluZUJveCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGluZUJveDsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNs
YXNzIExpbmU7CiAKLSAgICAgICAgdm9pZCBzZXRMb2dpY2FsUmVjdChjb25zdCBEaXNwbGF5OjpS
ZWN0JiBsb2dpY2FsUmVjdCkgeyBtX2xvZ2ljYWxSZWN0ID0gbG9naWNhbFJlY3Q7IH0KLSAgICAg
ICAgdm9pZCBzZXRCYXNlbGluZShMaW5lQm94OjpCYXNlbGluZSBiYXNlbGluZSkgeyBtX2Jhc2Vs
aW5lID0gYmFzZWxpbmU7IH0KLSAgICAgICAgdm9pZCBzZXRCYXNlbGluZU9mZnNldChMYXlvdXRV
bml0IGJhc2VsaW5lT2Zmc2V0KSB7IG1fYmFzZWxpbmVPZmZzZXQgPSBiYXNlbGluZU9mZnNldDsg
fQorICAgICAgICB2b2lkIHNldExpbmVCb3goY29uc3QgTGluZUJveCYgbGluZUJveCkgeyBtX2xp
bmVCb3ggPSBsaW5lQm94OyB9CiAgICAgICAgIFJ1bnMmIHJ1bnMoKSB7IHJldHVybiBtX3J1bnM7
IH0KIAotICAgICAgICBEaXNwbGF5OjpSZWN0IG1fbG9naWNhbFJlY3Q7Ci0gICAgICAgIExpbmVC
b3g6OkJhc2VsaW5lIG1fYmFzZWxpbmU7Ci0gICAgICAgIExheW91dFVuaXQgbV9iYXNlbGluZU9m
ZnNldDsKKyAgICAgICAgTGluZUJveCBtX2xpbmVCb3g7CiAgICAgICAgIFJ1bnMgbV9ydW5zOwog
ICAgIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnQ+IGNsb3NlKCk7CkBAIC0xNDMsNyAr
MTMwLDcgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7
IHJldHVybiBtX2xpbmVMb2dpY2FsSGVpZ2h0OyB9CiAKICAgICBMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMb2dpY2FsV2lkdGg7IH0KLSAg
ICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZS5h
c2NlbnQgKyBtX2Jhc2VsaW5lVG9wOyB9CisgICAgTGF5b3V0VW5pdCBiYXNlbGluZU9mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmUuYXNjZW50KCkgKyBtX2Jhc2VsaW5lVG9wOyB9CiAK
ICAgICB2b2lkIGFwcGVuZE5vbkJyZWFrYWJsZVNwYWNlKGNvbnN0IElubGluZUl0ZW0mLCBjb25z
dCBEaXNwbGF5OjpSZWN0JiBsb2dpY2FsUmVjdCk7CiAgICAgdm9pZCBhcHBlbmRUZXh0Q29udGVu
dChjb25zdCBJbmxpbmVUZXh0SXRlbSYsIExheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVC
b3guaAppbmRleCA5NmE3NGY1M2NjMTY4NTE1NTE4ZTAwMzEzMDQ3YzY2NjBmMGYyNzc5Li5jY2Q5
NDUzYTI3YmMzZGYyYzNmZWRkZjkyMDMyZWQ4YjM5MDY0ZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oCkBAIC0z
NSwxMiArMzUsMjggQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBMaW5lQm94IHsKIHB1Ymxp
YzoKICAgICBzdHJ1Y3QgQmFzZWxpbmUgewotICAgICAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNv
bnN0IHsgcmV0dXJuIGFzY2VudCArIGRlc2NlbnQ7IH0KKyAgICAgICAgQmFzZWxpbmUoTGF5b3V0
VW5pdCBhc2NlbnQsIExheW91dFVuaXQgZGVzY2VudCk7CisgICAgICAgIEJhc2VsaW5lKCkgPSBk
ZWZhdWx0OwogCi0gICAgICAgIExheW91dFVuaXQgYXNjZW50OwotICAgICAgICBMYXlvdXRVbml0
IGRlc2NlbnQ7CisgICAgICAgIHZvaWQgc2V0QXNjZW50KExheW91dFVuaXQpOworICAgICAgICB2
b2lkIHNldERlc2NlbnQoTGF5b3V0VW5pdCk7CisgICAgICAgIHZvaWQgcmVzZXQoKTsKKworICAg
ICAgICBMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGFzY2VudCgpICsgZGVzY2Vu
dCgpOyB9CisgICAgICAgIExheW91dFVuaXQgYXNjZW50KCkgY29uc3Q7CisgICAgICAgIExheW91
dFVuaXQgZGVzY2VudCgpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyNpZiAhQVNTRVJUX0RJU0FC
TEVECisgICAgICAgIGJvb2wgbV9oYXNWYWxpZEFzY2VudCB7IGZhbHNlIH07CisgICAgICAgIGJv
b2wgbV9oYXNWYWxpZERlc2NlbnQgeyBmYWxzZSB9OworI2VuZGlmCisgICAgICAgIExheW91dFVu
aXQgbV9hc2NlbnQ7CisgICAgICAgIExheW91dFVuaXQgbV9kZXNjZW50OwogICAgIH07CisKICAg
ICBMaW5lQm94KERpc3BsYXk6OlJlY3QsIGNvbnN0IEJhc2VsaW5lJiwgTGF5b3V0VW5pdCBiYXNl
bGluZU9mZnNldCk7CisgICAgTGluZUJveCgpID0gZGVmYXVsdDsKICAgICAKICAgICBMYXlvdXRQ
b2ludCBsb2dpY2FsVG9wTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC50b3BMZWZ0KCk7IH0K
IApAQCAtNjgsOSArODQsMTIgQEAgcHVibGljOgogICAgIC8vICAgfCBkZXNjZW50CiAgICAgLy8g
ICB2CiAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLSBsaW5lIGxvZ2ljYWwgYm90dG9tCi0gICAg
TGF5b3V0VW5pdCBiYXNlbGluZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZWxpbmVPZmZz
ZXQ7IH0KKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3Q7CiAKIHByaXZhdGU6
CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9oYXNWYWxpZEJhc2VsaW5lT2Zmc2V0
IHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIERpc3BsYXk6OlJlY3QgbV9yZWN0OwogICAgIEJhc2Vs
aW5lIG1fYmFzZWxpbmU7CiAgICAgTGF5b3V0VW5pdCBtX2Jhc2VsaW5lT2Zmc2V0OwpAQCAtODEs
NiArMTAwLDYzIEBAIGlubGluZSBMaW5lQm94OjpMaW5lQm94KERpc3BsYXk6OlJlY3QgcmVjdCwg
Y29uc3QgQmFzZWxpbmUmIGJhc2VsaW5lLCBMYXlvdXRVbml0CiAgICAgLCBtX2Jhc2VsaW5lKGJh
c2VsaW5lKQogICAgICwgbV9iYXNlbGluZU9mZnNldChiYXNlbGluZU9mZnNldCkKIHsKKyNpZiAh
QVNTRVJUX0RJU0FCTEVECisgICAgbV9oYXNWYWxpZEJhc2VsaW5lT2Zmc2V0ID0gdHJ1ZTsKKyNl
bmRpZgorfQorCitpbmxpbmUgTGF5b3V0VW5pdCBMaW5lQm94OjpiYXNlbGluZU9mZnNldCgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRCYXNlbGluZU9mZnNldCk7CisgICAgcmV0dXJu
IG1fYmFzZWxpbmVPZmZzZXQ7Cit9CisKK2lubGluZSBMaW5lQm94OjpCYXNlbGluZTo6QmFzZWxp
bmUoTGF5b3V0VW5pdCBhc2NlbnQsIExheW91dFVuaXQgZGVzY2VudCkKKyAgICA6IG1fYXNjZW50
KGFzY2VudCkKKyAgICAsIG1fZGVzY2VudChkZXNjZW50KQoreworI2lmICFBU1NFUlRfRElTQUJM
RUQKKyAgICBtX2hhc1ZhbGlkQXNjZW50ID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkRGVzY2VudCA9
IHRydWU7CisjZW5kaWYKK30KKworaW5saW5lIHZvaWQgTGluZUJveDo6QmFzZWxpbmU6OnNldEFz
Y2VudChMYXlvdXRVbml0IGFzY2VudCkKK3sKKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgbV9o
YXNWYWxpZEFzY2VudCA9IHRydWU7CisjZW5kaWYKKyAgICBtX2FzY2VudCA9IGFzY2VudDsKK30K
KworaW5saW5lIHZvaWQgTGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnQoTGF5b3V0VW5pdCBk
ZXNjZW50KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkRGVzY2VudCA9
IHRydWU7CisjZW5kaWYKKyAgICBtX2Rlc2NlbnQgPSBkZXNjZW50OworfQorCitpbmxpbmUgdm9p
ZCBMaW5lQm94OjpCYXNlbGluZTo6cmVzZXQoKQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAg
ICBtX2hhc1ZhbGlkQXNjZW50ID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkRGVzY2VudCA9IHRydWU7
CisjZW5kaWYKKyAgICBtX2FzY2VudCA9IHsgfTsKKyAgICBtX2Rlc2NlbnQgPSB7IH07Cit9CisK
K2lubGluZSBMYXlvdXRVbml0IExpbmVCb3g6OkJhc2VsaW5lOjphc2NlbnQoKSBjb25zdAorewor
ICAgIEFTU0VSVChtX2hhc1ZhbGlkQXNjZW50KTsKKyAgICByZXR1cm4gbV9hc2NlbnQ7Cit9CisK
K2lubGluZSBMYXlvdXRVbml0IExpbmVCb3g6OkJhc2VsaW5lOjpkZXNjZW50KCkgY29uc3QKK3sK
KyAgICBBU1NFUlQobV9oYXNWYWxpZERlc2NlbnQpOworICAgIHJldHVybiBtX2Rlc2NlbnQ7CiB9
CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379424</attachid>
            <date>2019-09-23 21:08:39 -0700</date>
            <delta_ts>2019-09-24 07:45:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202128-20190923210829.patch</filename>
            <type>text/plain</type>
            <size>22292</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTllOTI2N2M3M2RhNWI2
MjhkYmY1MTk1YWYzZWNiOWU2NTBiMzBlMC4uNGY1ZjlkMzlmOWM4MzVmYjAyMzg3NDY0OWNkZTBl
MzYxNTkxZjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTA5LTIzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBMaW5lOjpD
b250ZW50IHNob3VsZCB1c2UgTGluZUJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTY0OTA3
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIExpbmU6OkNvbnRlbnQncyBtX2xvZ2ljYWxSZWN0LCBtX2Jhc2VsaW5lIGFuZCBtX2Jhc2Vs
aW5lT2Zmc2V0IHdpdGggTGluZUJveC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVh
dGVEaXNwbGF5UnVucyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpsaW5lRGVzY2VudE5lZWRzQ29sbGFwc2lu
ZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpRdWlya3M6OmxpbmVIZWlnaHRDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgICogbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YWRq
dXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRl
bnQ6OmxpbmVCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250
ZW50OjpzZXRMaW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YmFzZWxp
bmVPZmZzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50
Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6Q29udGVudDo6bG9naWNhbFRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9naWNhbFJpZ2h0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9n
aWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OkNvbnRlbnQ6OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxIZWlnaHQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpiYXNlbGluZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmJh
c2VsaW5lT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZTo6Q29udGVudDo6c2V0TG9naWNhbFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpzZXRCYXNlbGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OnNldEJhc2VsaW5lT2Zmc2V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OkJhc2VsaW5lOjpoZWlnaHQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpMaW5lQm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6YmFzZWxpbmVPZmZzZXQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6QmFzZWxpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6c2V0QXNjZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6YXNjZW50IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OmRlc2NlbnQgY29u
c3QpOgorCiAyMDE5LTA5LTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBNb3ZlIGxpbmUgY29uc3RyYWludHMgY29tcHV0YXRpb24gdG8gYSBk
ZWRpY2F0ZWQgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQuY3BwCmluZGV4IDFhZTVmMzAzYTgyMjgwMmJmNmZhNWQ5YTI0YjgwMWU2MTg1
OWVmYjQuLmQ2OTQxYjJlYzY2ZjdjZWM4YzkzMWNlMTgzODg5ZmMxMTYxYWQ4NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcApAQCAtMjg4
LDExICsyODgsMTAgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0
OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW0KIAogICAgICAgICBpZiAobGlu
ZUNvbnRlbnQubGFzdENvbW1pdHRlZCkgewogICAgICAgICAgICAgY3VycmVudElubGluZUl0ZW0g
PSB7IGxpbmVDb250ZW50Lmxhc3RDb21taXR0ZWQtPmluZGV4ICsgMSwgV1RGOjpudWxsb3B0IH07
Ci0gICAgICAgICAgICBsaW5lTG9naWNhbFRvcCA9IGxpbmVDb250ZW50LnJ1bnMtPmxvZ2ljYWxC
b3R0b20oKTsKKyAgICAgICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQucnVucy0+
bGluZUJveCgpLmxvZ2ljYWxCb3R0b20oKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IC8vIEZsb2F0cyBwcmV2ZW50ZWQgdXMgcGxhY2luZyBhbnkgY29udGVudCBvbiB0aGUgbGluZS4K
ICAgICAgICAgICAgIEFTU0VSVChsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLmxpbmVJc0Nv
bnN0cmFpbmVkQnlGbG9hdCk7Ci0gICAgICAgICAgICBBU1NFUlQobGluZUNvbnRlbnQucnVucy0+
aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vIE1vdmUgdGhlIG5leHQgbGluZSBiZWxvdyB0aGUg
aW50cnVzaXZlIGZsb2F0LgogICAgICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9h
dGluZ0NvbnRleHQgeyBmb3JtYXR0aW5nUm9vdCgpLCBmb3JtYXR0aW5nQ29udGV4dCgpLCBmb3Jt
YXR0aW5nU3RhdGUoKS5mbG9hdGluZ1N0YXRlKCkgfTsKICAgICAgICAgICAgIGF1dG8gZmxvYXRD
b25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5jb25zdHJhaW50cyh7IGxpbmVMb2dpY2FsVG9w
IH0pOwpAQCAtMzUzLDcgKzM1Miw3IEBAIExheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OklubGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChjb25zdCBJCiAgICAgICAg
IExheW91dFVuaXQgZmxvYXRzV2lkdGg7CiAgICAgICAgIGZvciAoYXV0byYgZmxvYXRJdGVtIDog
bGluZUNvbnRlbnQuZmxvYXRzKQogICAgICAgICAgICAgZmxvYXRzV2lkdGggKz0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goZmxvYXRJdGVtLT5sYXlvdXRCb3goKSkubWFyZ2luQm94
V2lkdGgoKTsKLSAgICAgICAgbWF4aW11bUxpbmVXaWR0aCA9IHN0ZDo6bWF4KG1heGltdW1MaW5l
V2lkdGgsIGZsb2F0c1dpZHRoICsgbGluZUNvbnRlbnQucnVucy0+bG9naWNhbFdpZHRoKCkpOwor
ICAgICAgICBtYXhpbXVtTGluZVdpZHRoID0gc3RkOjptYXgobWF4aW11bUxpbmVXaWR0aCwgZmxv
YXRzV2lkdGggKyBsaW5lQ29udGVudC5ydW5zLT5saW5lQm94KCkubG9naWNhbFdpZHRoKCkpOwog
ICAgIH0KICAgICByZXR1cm4gbWF4aW11bUxpbmVXaWR0aDsKIH0KQEAgLTM2OSwyNCArMzY4LDE3
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlz
cGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVuCiAgICAgICAgIGF1dG8mIGZsb2F0Qm94ID0gZmxv
YXRJdGVtLT5sYXlvdXRCb3goKTsKICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRp
bmdTdGF0ZS5kaXNwbGF5Qm94KGZsb2F0Qm94KTsKICAgICAgICAgLy8gU2V0IHN0YXRpYyBwb3Np
dGlvbiBmaXJzdC4KLSAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KHsgbGluZUNvbnRlbnQu
bG9naWNhbExlZnQoKSwgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpIH0pOworICAgICAgICBhdXRv
JiBsaW5lQm94ID0gbGluZUNvbnRlbnQubGluZUJveCgpOworICAgICAgICBkaXNwbGF5Qm94LnNl
dFRvcExlZnQoeyBsaW5lQm94LmxvZ2ljYWxMZWZ0KCksIGxpbmVCb3gubG9naWNhbFRvcCgpIH0p
OwogICAgICAgICAvLyBGbG9hdCBpdC4KICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGZs
b2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGZsb2F0Qm94KSk7CiAgICAgICAgIGZsb2F0
aW5nQ29udGV4dC5hcHBlbmQoZmxvYXRCb3gpOwogICAgIH0KIAotICAgIGlmIChsaW5lQ29udGVu
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gU3BlYyB0ZWxscyB1cyB0byBjcmVhdGUgYSB6ZXJv
IGhlaWdodCwgZW1wdHkgbGluZSBib3guCi0gICAgICAgIGF1dG8gbGluZUJveFJlY3QgPSBEaXNw
bGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5sb2dpY2Fs
TGVmdCgpLCAwICwgMCB9OwotICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkTGluZUJveCh7IGxp
bmVCb3hSZWN0LCBsaW5lQ29udGVudC5iYXNlbGluZSgpLCBsaW5lQ29udGVudC5iYXNlbGluZU9m
ZnNldCgpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgYXV0byYgaW5saW5lRGlz
cGxheVJ1bnMgPSBmb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpOwotICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBpbmxpbmVEaXNwbGF5UnVucy5pc0Vt
cHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAt
IDE7CisgICAgYXV0byBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBPcHRpb25hbDx1bnNpZ25l
ZD4geyBpbmxpbmVEaXNwbGF5UnVucy5pc0VtcHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6
IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAtIDEgfTsKICAgICAvLyA5LjQuMiBJbmxpbmUgZm9y
bWF0dGluZyBjb250ZXh0cwogICAgIC8vIEEgbGluZSBib3ggaXMgYWx3YXlzIHRhbGwgZW5vdWdo
IGZvciBhbGwgb2YgdGhlIGJveGVzIGl0IGNvbnRhaW5zLgotICAgIGF1dG8gbGluZUJveFJlY3Qg
PSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5s
b2dpY2FsTGVmdCgpLCAwLCBsaW5lQ29udGVudC5sb2dpY2FsSGVpZ2h0KCl9OwogICAgIC8vIENy
ZWF0ZSBmaW5hbCBkaXNwbGF5IHJ1bnMuCiAgICAgYXV0byYgbGluZVJ1bnMgPSBsaW5lQ29udGVu
dC5ydW5zKCk7CiAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5
KCk7CkBAIC00MTAsNyArNDAyLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5s
aW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAg
ICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAg
dG9wTGVmdCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0
Qm94LCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0
VG9wTGVmdCh0b3BMZWZ0KTsKLSAgICAgICAgICAgIGxpbmVCb3hSZWN0LmV4cGFuZEhvcml6b250
YWxseShsb2dpY2FsUmVjdC53aWR0aCgpKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5h
ZGRJbmxpbmVSdW4obWFrZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNDE4LDcgKzQwOSw2IEBAIHZvaWQgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29u
c3QgTGluZTo6Q29udGVuCiAgICAgICAgIC8vIElubGluZSBsZXZlbCBjb250YWluZXIgc3RhcnQg
KDxzcGFuPikKICAgICAgICAgaWYgKGxpbmVSdW4tPmlzQ29udGFpbmVyU3RhcnQoKSkgewogICAg
ICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGxvZ2ljYWxSZWN0LnRvcExlZnQoKSk7Ci0g
ICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lk
dGgoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC00MzQsNyArNDI0
LDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVE
aXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgICAgIC8vIEZJWE1FIGZpeCBp
dCBmb3IgbXVsdGlsaW5lLgogICAgICAgICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lk
dGgoY29udGVudEJveFdpZHRoKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJv
eEhlaWdodChsb2dpY2FsUmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5l
eHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCkBAIC00NTIsNyArNDQxLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpD
b250ZW4KICAgICAgICAgICAgICAgICBsYXN0RGlzcGxheVJ1bi0+ZXhwYW5kSG9yaXpvbnRhbGx5
KGxvZ2ljYWxSZWN0LndpZHRoKCkpOwogICAgICAgICAgICAgICAgIGxhc3REaXNwbGF5UnVuLT50
ZXh0Q29udGV4dCgpLT5leHBhbmQodGV4dENvbnRleHQtPmxlbmd0aCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qu
d2lkdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUUgdGFrZSBjb250ZW50IGJyZWFr
aW5nIGludG8gYWNjb3VudCB3aGVuIHBhcnQgb2YgdGhlIGxheW91dCBib3ggaXMgb24gdGhlIHBy
ZXZpb3VzIGxpbmUuCiAgICAgICAgIGF1dG8gZmlyc3RJbmxpbmVSdW5Gb3JMYXlvdXRCb3ggPSAh
cHJldmlvdXNMaW5lUnVuIHx8ICZwcmV2aW91c0xpbmVSdW4tPmxheW91dEJveCgpICE9ICZsYXlv
dXRCb3g7CkBAIC00NjcsOCArNDU1LDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAg
ICAgfQogICAgIH0KICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRzIHRvIGJlIGFqdXN0ZWQgYWZ0
ZXIgY29udGVudCBhbGlnbm1lbnQuCi0gICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3goeyBs
aW5lQm94UmVjdCwgbGluZUNvbnRlbnQuYmFzZWxpbmUoKSwgbGluZUNvbnRlbnQuYmFzZWxpbmVP
ZmZzZXQoKSB9KTsKLSAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRB
bGlnbigpLCBpbmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVl
T3IoLTEpICsgMSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5sb2dpY2FsV2lkdGgo
KSk7CisgICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3gobGluZUNvbnRlbnQubGluZUJveCgp
KTsKKyAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBp
bmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVlT3IoLTEpICsg
MSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5saW5lQm94KCkubG9naWNhbFdpZHRo
KCkpOwogfQogCiBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0VW5pdD4gaG9yaXpvbnRhbEFkanVzdG1l
bnRGb3JBbGlnbm1lbnQoVGV4dEFsaWduTW9kZSBhbGlnbiwgTGF5b3V0VW5pdCByZW1haW5pbmdX
aWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRl
eCAwMTFhNThhMTUyZmNhMmI2NTIzMDQ4MmU2OWVkMDM2NjZmYTllODQ2Li5kZmNjNjI2YTMwOTE2
OGY0M2MxZjBlMzgyOGQyNzliMGJiZjA3NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluZURlc2NlbnROZWVkc0NvbGxhcHNpbmcoY29uc3QgTGlu
ZTo6Q29uCiAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8
SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZShkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkpKTsKICAgICAgICAgICAgICAgICBB
U1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0VtcHR5KCkpOwogICAgICAgICAg
ICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94
ZXMoKS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICBpZiAoaW5saW5lQmxvY2tC
YXNlbGluZS5kZXNjZW50KQorICAgICAgICAgICAgICAgIGlmIChpbmxpbmVCbG9ja0Jhc2VsaW5l
LmRlc2NlbnQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC04NywxOCArODcsMTggQEAgTGluZTo6SW5pdGlh
bENvbnN0cmFpbnRzOjpIZWlnaHRBbmRCYXNlbGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
UXVpcmtzOjpsaW4KICAgICAvLyBjb21wdXRlZExpbmVIZWlnaHQgdGFrZXMgZm9udC1zaXplIGlu
dG8gYWNjb3VudCB3aGVuIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQuCiAgICAgLy8gU3RydXQgaXMg
dGhlIGltYWdpbmFyeSBib3ggdGhhdCB3ZSBwdXQgb24gZXZlcnkgbGluZS4gSXQgc2V0cyB0aGUg
aW5pdGlhbCB2ZXJ0aWNhbCBjb25zdHJhaW50cyBmb3IgZWFjaCBuZXcgbGluZS4KICAgICBhdXRv
IHN0cnV0SGVpZ2h0ID0gZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5jb21wdXRlZExpbmVIZWlnaHQo
KTsKLSAgICBhdXRvIHN0cnV0QmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJp
Y3MoZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBzdHJ1dEhlaWdodCkuYXNj
ZW50OworICAgIGF1dG8gc3RydXRCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0
cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHN0cnV0SGVpZ2h0KS5h
c2NlbnQoKTsKICAgICBpZiAobGF5b3V0U3RhdGUoKS5pbk5vUXVpcmtzTW9kZSgpKQogICAgICAg
ICByZXR1cm4geyBzdHJ1dEhlaWdodCwgc3RydXRCYXNlbGluZU9mZnNldCwgeyB9IH07CiAKICAg
ICBhdXRvIGxpbmVIZWlnaHQgPSBmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmxpbmVIZWlnaHQoKTsK
ICAgICBpZiAobGluZUhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSkgewotICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50OworICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50KCk7CiAgICAgICAg
IHJldHVybiB7IGluaXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0LCBM
aW5lQm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3Ry
dXRCYXNlbGluZU9mZnNldCB9IH07CiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGUgb25seSByZWFz
b24gd2h5IHdlIHVzZSBpbnRWYWx1ZSgpIGhlcmUgaXMgdG8gbWF0Y2ggY3VycmVudCBpbmxpbmUg
dHJlZSAoaW50ZWdyYWwpYmVoYXZpb3IuCiAgICAgYXV0byBpbml0aWFsTGluZUhlaWdodCA9IExh
eW91dFVuaXQgeyBsaW5lSGVpZ2h0LmludFZhbHVlKCkgfTsKLSAgICBhdXRvIGluaXRpYWxCYXNl
bGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdC5zdHls
ZSgpLmZvbnRNZXRyaWNzKCksIGluaXRpYWxMaW5lSGVpZ2h0KS5hc2NlbnQ7CisgICAgYXV0byBp
bml0aWFsQmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJpY3MoZm9ybWF0dGlu
Z1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBpbml0aWFsTGluZUhlaWdodCkuYXNjZW50KCk7
CiAgICAgcmV0dXJuIHsgaW5pdGlhbExpbmVIZWlnaHQsIGluaXRpYWxCYXNlbGluZU9mZnNldCwg
TGluZUJveDo6QmFzZWxpbmUgeyBzdHJ1dEJhc2VsaW5lT2Zmc2V0LCBzdHJ1dEhlaWdodCAtIHN0
cnV0QmFzZWxpbmVPZmZzZXQgfSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDZhMDFhMTk2NGY2ZjEz
NGI3NGI0MGU1OWEzZmZiZmQ4MDQ5NTRmNWUuLjZkYzIxOTZlMTBjNzU1ZGFjOTBjZTZiNjNkMDUy
OGRhZDY3OGI2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0xMDQsMTUgKzEwNCwxNSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgIHJlbW92ZVRyYWlsaW5nVHJp
bW1hYmxlQ29udGVudCgpOwogICAgIGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkgewogICAg
ICAgICBpZiAoaXNWaXN1YWxseUVtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYmFzZWxpbmUgPSB7
IH07CisgICAgICAgICAgICBtX2Jhc2VsaW5lLnJlc2V0KCk7CiAgICAgICAgICAgICBtX2Jhc2Vs
aW5lVG9wID0geyB9OwogICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHsgfTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFJlbW92ZSBkZXNjZW50IHdoZW4gYWxsIGNvbnRlbnQgaXMg
YmFzZWxpbmUgYWxpZ25lZCBidXQgbm9uZSBvZiB0aGVtIGhhdmUgZGVzY2VudC4KICAgICAgICAg
aWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkubGluZURlc2NlbnROZWVkc0NvbGxhcHNp
bmcoKm1fY29udGVudCkpIHsKLSAgICAgICAgICAgIG1fbGluZUxvZ2ljYWxIZWlnaHQgLT0gbV9i
YXNlbGluZS5kZXNjZW50OwotICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNjZW50ID0geyB9Owor
ICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCAtPSBtX2Jhc2VsaW5lLmRlc2NlbnQoKTsK
KyAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0RGVzY2VudCh7IH0pOwogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwpAQCAtMTM1LDcg
KzEzNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMaW5lOjpDb250ZW50PiBMaW5lOjpjbG9zZSgpCiAg
ICAgICAgICAgICAgICAgICAgIC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25l
IGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
Zm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMo
KS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbFRvcCA9IGJh
c2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2VsaW5lLmFzY2VudDsKKyAgICAgICAgICAg
ICAgICAgICAgbG9naWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2Vs
aW5lLmFzY2VudCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAg
ICBsb2dpY2FsVG9wID0gYmFzZWxpbmVPZmZzZXQoKSAtIHJ1bi0+bG9naWNhbFJlY3QoKS5oZWln
aHQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE1NSw5ICsxNTUsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgICAgICAgICAgcnVuLT5t
b3ZlSG9yaXpvbnRhbGx5KHRoaXMtPmxvZ2ljYWxMZWZ0KCkpOwogICAgICAgICB9CiAgICAgfQot
ICAgIG1fY29udGVudC0+c2V0TG9naWNhbFJlY3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0
KCksIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0pOwotICAgIG1fY29u
dGVudC0+c2V0QmFzZWxpbmUobV9iYXNlbGluZSk7Ci0gICAgbV9jb250ZW50LT5zZXRCYXNlbGlu
ZU9mZnNldChiYXNlbGluZU9mZnNldCgpKTsKKyAgICBtX2NvbnRlbnQtPnNldExpbmVCb3goTGlu
ZUJveCB7IERpc3BsYXk6OlJlY3QgeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0KCksIGNvbnRl
bnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0sIG1fYmFzZWxpbmUsIGJhc2VsaW5l
T2Zmc2V0KCkgfSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV9jb250ZW50KTsKIH0KIApAQCAtMzQz
LDEwICszNDEsMTAgQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29u
c3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAogICAgICAgICBpZiAoc3R5bGUu
dmVydGljYWxBbGlnbigpID09IFZlcnRpY2FsQWxpZ246OkJhc2VsaW5lKSB7CiAgICAgICAgICAg
ICBhdXRvIGhhbGZMZWFkaW5nID0gaGFsZkxlYWRpbmdNZXRyaWNzKGZvbnRNZXRyaWNzLCBzdHls
ZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiAgICAgICAgICAgICAvLyBCb3RoIGhhbGZsZWFkaW5n
IGFzY2VudCBhbmQgZGVzY2VudCBjb3VsZCBiZSBuZWdhdGl2ZSAodGFsbCBmb250IHZzLiBzbWFs
bCBsaW5lLWhlaWdodCB2YWx1ZSkKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5kZXNjZW50
ID4gMCkKLSAgICAgICAgICAgICAgICBtX2Jhc2VsaW5lLmRlc2NlbnQgPSBzdGQ6Om1heChtX2Jh
c2VsaW5lLmRlc2NlbnQsIGhhbGZMZWFkaW5nLmRlc2NlbnQpOwotICAgICAgICAgICAgaWYgKGhh
bGZMZWFkaW5nLmFzY2VudCA+IDApCi0gICAgICAgICAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQg
PSBzdGQ6Om1heChtX2Jhc2VsaW5lLmFzY2VudCwgaGFsZkxlYWRpbmcuYXNjZW50KTsKKyAgICAg
ICAgICAgIGlmIChoYWxmTGVhZGluZy5kZXNjZW50KCkgPiAwKQorICAgICAgICAgICAgICAgIG1f
YmFzZWxpbmUuc2V0RGVzY2VudChzdGQ6Om1heChtX2Jhc2VsaW5lLmRlc2NlbnQoKSwgaGFsZkxl
YWRpbmcuZGVzY2VudCgpKSk7CisgICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkg
PiAwKQorICAgICAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0QXNjZW50KHN0ZDo6bWF4KG1fYmFz
ZWxpbmUuYXNjZW50KCksIGhhbGZMZWFkaW5nLmFzY2VudCgpKSk7CiAgICAgICAgICAgICBjb250
ZW50SGVpZ2h0ID0gbV9iYXNlbGluZS5oZWlnaHQoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBjb250ZW50SGVpZ2h0ID0gZm9udE1ldHJpY3MuaGVpZ2h0KCk7CkBAIC0zNjAsOCArMzU4
LDggQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBpbmxp
bmUgY29udGFpbmVyIChzdGFydCkgLXNlZSBhYm92ZS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVu
dCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUgbGluZS4KICAgICAgICAgaWYgKCFtX2luaXRp
YWxTdHJ1dCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQg
PSBzdGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+YXNjZW50LCBtX2Jhc2VsaW5lLmFzY2VudCk7Ci0g
ICAgICAgIG1fYmFzZWxpbmUuZGVzY2VudCA9IHN0ZDo6bWF4KG1faW5pdGlhbFN0cnV0LT5kZXNj
ZW50LCBtX2Jhc2VsaW5lLmRlc2NlbnQpOworICAgICAgICBtX2Jhc2VsaW5lLnNldEFzY2VudChz
dGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCksIG1fYmFzZWxpbmUuYXNjZW50KCkpKTsK
KyAgICAgICAgbV9iYXNlbGluZS5zZXREZXNjZW50KHN0ZDo6bWF4KG1faW5pdGlhbFN0cnV0LT5k
ZXNjZW50KCksIG1fYmFzZWxpbmUuZGVzY2VudCgpKSk7CiAgICAgICAgIG1fbGluZUxvZ2ljYWxI
ZWlnaHQgPSBzdGQ6Om1heChtX2xpbmVMb2dpY2FsSGVpZ2h0LCBtX2Jhc2VsaW5lLmhlaWdodCgp
KTsKICAgICAgICAgbV9iYXNlbGluZVRvcCA9IHN0ZDo6bWF4KG1fYmFzZWxpbmVUb3AsIG1fbGlu
ZUxvZ2ljYWxIZWlnaHQgLSBtX2Jhc2VsaW5lLmhlaWdodCgpKTsKICAgICAgICAgbV9pbml0aWFs
U3RydXQgPSB7IH07CkBAIC0zNzksOCArMzc3LDggQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGlu
ZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAog
ICAgICAgICAgICAgICAgIEFTU0VSVCghZm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1w
dHkoKSk7CiAgICAgICAgICAgICAgICAgbmV3QmFzZWxpbmVDYW5kaWRhdGUgPSBmb3JtYXR0aW5n
U3RhdGUubGluZUJveGVzKCkubGFzdCgpLmJhc2VsaW5lKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX2Jhc2VsaW5lLmFzY2VudCA9IHN0ZDo6bWF4KG5ld0Jhc2VsaW5lQ2FuZGlkYXRl
LmFzY2VudCwgbV9iYXNlbGluZS5hc2NlbnQpOwotICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNj
ZW50ID0gc3RkOjptYXgobmV3QmFzZWxpbmVDYW5kaWRhdGUuZGVzY2VudCwgbV9iYXNlbGluZS5k
ZXNjZW50KTsKKyAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0QXNjZW50KHN0ZDo6bWF4KG5ld0Jh
c2VsaW5lQ2FuZGlkYXRlLmFzY2VudCgpLCBtX2Jhc2VsaW5lLmFzY2VudCgpKSk7CisgICAgICAg
ICAgICBtX2Jhc2VsaW5lLnNldERlc2NlbnQoc3RkOjptYXgobmV3QmFzZWxpbmVDYW5kaWRhdGUu
ZGVzY2VudCgpLCBtX2Jhc2VsaW5lLmRlc2NlbnQoKSkpOwogICAgICAgICAgICAgbV9saW5lTG9n
aWNhbEhlaWdodCA9IHN0ZDo6bWF4KHN0ZDo6bWF4KG1fbGluZUxvZ2ljYWxIZWlnaHQsIHJ1bkhl
aWdodCksIG1fYmFzZWxpbmUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgLy8gQmFzZWxpbmUgYXNj
ZW50L2Rlc2NlbnQgbmV2ZXIgc2hyaW5rIC0+IG1heC4KICAgICAgICAgICAgIG1fYmFzZWxpbmVU
b3AgPSBzdGQ6Om1heChtX2Jhc2VsaW5lVG9wLCBtX2xpbmVMb2dpY2FsSGVpZ2h0IC0gbV9iYXNl
bGluZS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lLmgKaW5kZXggNzdmNDcxZmZjNTA3ZGU2Nzk5MDVjMDhjMWI3MmQ5
ZDIzNTJlYzhhMC4uYmE5M2M0NzI4YTg1MWFhZjk2YTliMzBmNDQwZjYwMDJiZjMyMDdjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmUuaApAQCAtOTQsMjggKzk0LDE1IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAgICAgICAgdXNp
bmcgUnVucyA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnVuPj47CiAgICAgICAgIGNvbnN0IFJ1
bnMmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3J1bnM7IH0KLSAgICAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9ydW5zLmlzRW1wdHkoKTsgfQotCi0gICAgICAgIExheW91dFVu
aXQgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0KLSAg
ICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJl
Y3QubGVmdCgpOyB9Ci0gICAgICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbG9naWNhbExlZnQoKSArIGxvZ2ljYWxXaWR0aCgpOyB9Ci0gICAgICAgIExheW91dFVu
aXQgbG9naWNhbEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxUb3AoKSArIGxvZ2ljYWxI
ZWlnaHQoKTsgfQotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9naWNhbFJlY3Qud2lkdGgoKTsgfQotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmhlaWdodCgpOyB9Ci0gICAgICAg
IExpbmVCb3g6OkJhc2VsaW5lIGJhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsg
fQotICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9i
YXNlbGluZU9mZnNldDsgfQorICAgICAgICBjb25zdCBMaW5lQm94JiBsaW5lQm94KCkgY29uc3Qg
eyByZXR1cm4gbV9saW5lQm94OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xh
c3MgTGluZTsKIAotICAgICAgICB2b2lkIHNldExvZ2ljYWxSZWN0KGNvbnN0IERpc3BsYXk6OlJl
Y3QmIGxvZ2ljYWxSZWN0KSB7IG1fbG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdDsgfQotICAgICAg
ICB2b2lkIHNldEJhc2VsaW5lKExpbmVCb3g6OkJhc2VsaW5lIGJhc2VsaW5lKSB7IG1fYmFzZWxp
bmUgPSBiYXNlbGluZTsgfQotICAgICAgICB2b2lkIHNldEJhc2VsaW5lT2Zmc2V0KExheW91dFVu
aXQgYmFzZWxpbmVPZmZzZXQpIHsgbV9iYXNlbGluZU9mZnNldCA9IGJhc2VsaW5lT2Zmc2V0OyB9
CisgICAgICAgIHZvaWQgc2V0TGluZUJveChjb25zdCBMaW5lQm94JiBsaW5lQm94KSB7IG1fbGlu
ZUJveCA9IGxpbmVCb3g7IH0KICAgICAgICAgUnVucyYgcnVucygpIHsgcmV0dXJuIG1fcnVuczsg
fQogCi0gICAgICAgIERpc3BsYXk6OlJlY3QgbV9sb2dpY2FsUmVjdDsKLSAgICAgICAgTGluZUJv
eDo6QmFzZWxpbmUgbV9iYXNlbGluZTsKLSAgICAgICAgTGF5b3V0VW5pdCBtX2Jhc2VsaW5lT2Zm
c2V0OworICAgICAgICBMaW5lQm94IG1fbGluZUJveDsKICAgICAgICAgUnVucyBtX3J1bnM7CiAg
ICAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gY2xvc2UoKTsKQEAgLTE0Myw3ICsx
MzAsNyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGluZUxvZ2ljYWxIZWlnaHQ7IH0KIAogICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsgfQotICAg
IExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lLmFz
Y2VudCArIG1fYmFzZWxpbmVUb3A7IH0KKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9iYXNlbGluZS5hc2NlbnQoKSArIG1fYmFzZWxpbmVUb3A7IH0KIAog
ICAgIHZvaWQgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0
IERpc3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KTsKICAgICB2b2lkIGFwcGVuZFRleHRDb250ZW50
KGNvbnN0IElubGluZVRleHRJdGVtJiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oCmluZGV4IDk2YTc0ZjUzY2MxNjg1MTU1MThlMDAzMTMwNDdjNjY2MGYwZjI3NzkuLmNjZDk0
NTNhMjdiYzNkZjJjM2ZlZGRmOTIwMzJlZDhiMzkwNjRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKQEAgLTM1
LDEyICszNSwyOCBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIExpbmVCb3ggewogcHVibGlj
OgogICAgIHN0cnVjdCBCYXNlbGluZSB7Ci0gICAgICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gYXNjZW50ICsgZGVzY2VudDsgfQorICAgICAgICBCYXNlbGluZShMYXlvdXRV
bml0IGFzY2VudCwgTGF5b3V0VW5pdCBkZXNjZW50KTsKKyAgICAgICAgQmFzZWxpbmUoKSA9IGRl
ZmF1bHQ7CiAKLSAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQ7Ci0gICAgICAgIExheW91dFVuaXQg
ZGVzY2VudDsKKyAgICAgICAgdm9pZCBzZXRBc2NlbnQoTGF5b3V0VW5pdCk7CisgICAgICAgIHZv
aWQgc2V0RGVzY2VudChMYXlvdXRVbml0KTsKKyAgICAgICAgdm9pZCByZXNldCgpOworCisgICAg
ICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gYXNjZW50KCkgKyBkZXNjZW50
KCk7IH0KKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQoKSBjb25zdDsKKyAgICAgICAgTGF5b3V0
VW5pdCBkZXNjZW50KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorI2lmICFBU1NFUlRfRElTQUJM
RUQKKyAgICAgICAgYm9vbCBtX2hhc1ZhbGlkQXNjZW50IHsgZmFsc2UgfTsKKyAgICAgICAgYm9v
bCBtX2hhc1ZhbGlkRGVzY2VudCB7IGZhbHNlIH07CisjZW5kaWYKKyAgICAgICAgTGF5b3V0VW5p
dCBtX2FzY2VudDsKKyAgICAgICAgTGF5b3V0VW5pdCBtX2Rlc2NlbnQ7CiAgICAgfTsKKwogICAg
IExpbmVCb3goRGlzcGxheTo6UmVjdCwgY29uc3QgQmFzZWxpbmUmLCBMYXlvdXRVbml0IGJhc2Vs
aW5lT2Zmc2V0KTsKKyAgICBMaW5lQm94KCkgPSBkZWZhdWx0OwogICAgIAogICAgIExheW91dFBv
aW50IGxvZ2ljYWxUb3BMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LnRvcExlZnQoKTsgfQog
CkBAIC02OCw5ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gICB8IGRlc2NlbnQKICAgICAvLyAg
IHYKICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIGxpbmUgbG9naWNhbCBib3R0b20KLSAgICBM
YXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZU9mZnNl
dDsgfQorICAgIExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdDsKIAogcHJpdmF0ZToK
KyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2hhc1ZhbGlkQmFzZWxpbmVPZmZzZXQg
eyBmYWxzZSB9OworI2VuZGlmCiAgICAgRGlzcGxheTo6UmVjdCBtX3JlY3Q7CiAgICAgQmFzZWxp
bmUgbV9iYXNlbGluZTsKICAgICBMYXlvdXRVbml0IG1fYmFzZWxpbmVPZmZzZXQ7CkBAIC04MSw2
ICsxMDAsNjMgQEAgaW5saW5lIExpbmVCb3g6OkxpbmVCb3goRGlzcGxheTo6UmVjdCByZWN0LCBj
b25zdCBCYXNlbGluZSYgYmFzZWxpbmUsIExheW91dFVuaXQKICAgICAsIG1fYmFzZWxpbmUoYmFz
ZWxpbmUpCiAgICAgLCBtX2Jhc2VsaW5lT2Zmc2V0KGJhc2VsaW5lT2Zmc2V0KQogeworI2lmICFB
U1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkQmFzZWxpbmVPZmZzZXQgPSB0cnVlOworI2Vu
ZGlmCit9CisKK2lubGluZSBMYXlvdXRVbml0IExpbmVCb3g6OmJhc2VsaW5lT2Zmc2V0KCkgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZEJhc2VsaW5lT2Zmc2V0KTsKKyAgICByZXR1cm4g
bV9iYXNlbGluZU9mZnNldDsKK30KKworaW5saW5lIExpbmVCb3g6OkJhc2VsaW5lOjpCYXNlbGlu
ZShMYXlvdXRVbml0IGFzY2VudCwgTGF5b3V0VW5pdCBkZXNjZW50KQorICAgIDogbV9hc2NlbnQo
YXNjZW50KQorICAgICwgbV9kZXNjZW50KGRlc2NlbnQpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxF
RAorICAgIG1faGFzVmFsaWRBc2NlbnQgPSB0cnVlOworICAgIG1faGFzVmFsaWREZXNjZW50ID0g
dHJ1ZTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBMaW5lQm94OjpCYXNlbGluZTo6c2V0QXNj
ZW50KExheW91dFVuaXQgYXNjZW50KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hh
c1ZhbGlkQXNjZW50ID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fYXNjZW50ID0gYXNjZW50OworfQor
CitpbmxpbmUgdm9pZCBMaW5lQm94OjpCYXNlbGluZTo6c2V0RGVzY2VudChMYXlvdXRVbml0IGRl
c2NlbnQpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIG1faGFzVmFsaWREZXNjZW50ID0g
dHJ1ZTsKKyNlbmRpZgorICAgIG1fZGVzY2VudCA9IGRlc2NlbnQ7Cit9CisKK2lubGluZSB2b2lk
IExpbmVCb3g6OkJhc2VsaW5lOjpyZXNldCgpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAg
IG1faGFzVmFsaWRBc2NlbnQgPSB0cnVlOworICAgIG1faGFzVmFsaWREZXNjZW50ID0gdHJ1ZTsK
KyNlbmRpZgorICAgIG1fYXNjZW50ID0geyB9OworICAgIG1fZGVzY2VudCA9IHsgfTsKK30KKwor
aW5saW5lIExheW91dFVuaXQgTGluZUJveDo6QmFzZWxpbmU6OmFzY2VudCgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1faGFzVmFsaWRBc2NlbnQpOworICAgIHJldHVybiBtX2FzY2VudDsKK30KKwor
aW5saW5lIExheW91dFVuaXQgTGluZUJveDo6QmFzZWxpbmU6OmRlc2NlbnQoKSBjb25zdAorewor
ICAgIEFTU0VSVChtX2hhc1ZhbGlkRGVzY2VudCk7CisgICAgcmV0dXJuIG1fZGVzY2VudDsKIH0K
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379451</attachid>
            <date>2019-09-24 07:45:02 -0700</date>
            <delta_ts>2019-09-24 08:30:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202128-20190924074501.patch</filename>
            <type>text/plain</type>
            <size>22292</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUyZWI3MTVlMDViZmY1
YjM0MjE5NjY4NGYxZDg2ZTQ1YjRjNWQ0Ny4uNTIxMjJiNzRlZGRhMmQyNGMyZWQ0NTg0M2I5MzU2
OGZhYzk4N2IxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE5LTA5LTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBMaW5lOjpD
b250ZW50IHNob3VsZCB1c2UgTGluZUJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTY0OTA3
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBSZXBs
YWNlIExpbmU6OkNvbnRlbnQncyBtX2xvZ2ljYWxSZWN0LCBtX2Jhc2VsaW5lIGFuZCBtX2Jhc2Vs
aW5lT2Zmc2V0IHdpdGggTGluZUJveC4KKworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OmNvbXB1dGVkSW50cmluc2ljV2lkdGggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVh
dGVEaXNwbGF5UnVucyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpsaW5lRGVzY2VudE5lZWRzQ29sbGFwc2lu
ZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250
ZXh0OjpRdWlya3M6OmxpbmVIZWlnaHRDb25zdHJhaW50cyBjb25zdCk6CisgICAgICAgICogbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkxpbmU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YWRq
dXN0QmFzZWxpbmVBbmRMaW5lSGVpZ2h0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRl
bnQ6OmxpbmVCb3ggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250
ZW50OjpzZXRMaW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6YmFzZWxp
bmVPZmZzZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50
Ojppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGlu
ZTo6Q29udGVudDo6bG9naWNhbFRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9naWNhbFJpZ2h0IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZTo6Q29udGVudDo6bG9n
aWNhbEJvdHRvbSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxp
bmU6OkNvbnRlbnQ6OmxvZ2ljYWxXaWR0aCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmxvZ2ljYWxIZWlnaHQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpiYXNlbGluZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OmJh
c2VsaW5lT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
TGluZTo6Q29udGVudDo6c2V0TG9naWNhbFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lOjpDb250ZW50OjpzZXRCYXNlbGluZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OkNvbnRlbnQ6OnNldEJhc2VsaW5lT2Zmc2V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OkJhc2VsaW5lOjpoZWlnaHQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpMaW5lQm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6YmFzZWxpbmVPZmZzZXQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6QmFzZWxpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6c2V0QXNjZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OnNldERlc2NlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94OjpCYXNlbGluZTo6YXNjZW50IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6QmFzZWxpbmU6OmRlc2NlbnQgY29u
c3QpOgorCiAyMDE5LTA5LTI0ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBNb3ZlIGxpbmUgY29uc3RyYWludHMgY29tcHV0YXRpb24gdG8gYSBk
ZWRpY2F0ZWQgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4
dExpbmVMYXlvdXQuY3BwCmluZGV4IDFhZTVmMzAzYTgyMjgwMmJmNmZhNWQ5YTI0YjgwMWU2MTg1
OWVmYjQuLmQ2OTQxYjJlYzY2ZjdjZWM4YzkzMWNlMTgzODg5ZmMxMTYxYWQ4NTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcApAQCAtMjg4
LDExICsyODgsMTAgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0
OjpsYXlvdXQoY29uc3QgSW5saW5lSXRlbXMmIGlubGluZUl0ZW0KIAogICAgICAgICBpZiAobGlu
ZUNvbnRlbnQubGFzdENvbW1pdHRlZCkgewogICAgICAgICAgICAgY3VycmVudElubGluZUl0ZW0g
PSB7IGxpbmVDb250ZW50Lmxhc3RDb21taXR0ZWQtPmluZGV4ICsgMSwgV1RGOjpudWxsb3B0IH07
Ci0gICAgICAgICAgICBsaW5lTG9naWNhbFRvcCA9IGxpbmVDb250ZW50LnJ1bnMtPmxvZ2ljYWxC
b3R0b20oKTsKKyAgICAgICAgICAgIGxpbmVMb2dpY2FsVG9wID0gbGluZUNvbnRlbnQucnVucy0+
bGluZUJveCgpLmxvZ2ljYWxCb3R0b20oKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IC8vIEZsb2F0cyBwcmV2ZW50ZWQgdXMgcGxhY2luZyBhbnkgY29udGVudCBvbiB0aGUgbGluZS4K
ICAgICAgICAgICAgIEFTU0VSVChsaW5lSW5wdXQuaW5pdGlhbENvbnN0cmFpbnRzLmxpbmVJc0Nv
bnN0cmFpbmVkQnlGbG9hdCk7Ci0gICAgICAgICAgICBBU1NFUlQobGluZUNvbnRlbnQucnVucy0+
aXNFbXB0eSgpKTsKICAgICAgICAgICAgIC8vIE1vdmUgdGhlIG5leHQgbGluZSBiZWxvdyB0aGUg
aW50cnVzaXZlIGZsb2F0LgogICAgICAgICAgICAgYXV0byBmbG9hdGluZ0NvbnRleHQgPSBGbG9h
dGluZ0NvbnRleHQgeyBmb3JtYXR0aW5nUm9vdCgpLCBmb3JtYXR0aW5nQ29udGV4dCgpLCBmb3Jt
YXR0aW5nU3RhdGUoKS5mbG9hdGluZ1N0YXRlKCkgfTsKICAgICAgICAgICAgIGF1dG8gZmxvYXRD
b25zdHJhaW50cyA9IGZsb2F0aW5nQ29udGV4dC5jb25zdHJhaW50cyh7IGxpbmVMb2dpY2FsVG9w
IH0pOwpAQCAtMzUzLDcgKzM1Miw3IEBAIExheW91dFVuaXQgSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQ6OklubGluZUxheW91dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aChjb25zdCBJCiAgICAgICAg
IExheW91dFVuaXQgZmxvYXRzV2lkdGg7CiAgICAgICAgIGZvciAoYXV0byYgZmxvYXRJdGVtIDog
bGluZUNvbnRlbnQuZmxvYXRzKQogICAgICAgICAgICAgZmxvYXRzV2lkdGggKz0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goZmxvYXRJdGVtLT5sYXlvdXRCb3goKSkubWFyZ2luQm94
V2lkdGgoKTsKLSAgICAgICAgbWF4aW11bUxpbmVXaWR0aCA9IHN0ZDo6bWF4KG1heGltdW1MaW5l
V2lkdGgsIGZsb2F0c1dpZHRoICsgbGluZUNvbnRlbnQucnVucy0+bG9naWNhbFdpZHRoKCkpOwor
ICAgICAgICBtYXhpbXVtTGluZVdpZHRoID0gc3RkOjptYXgobWF4aW11bUxpbmVXaWR0aCwgZmxv
YXRzV2lkdGggKyBsaW5lQ29udGVudC5ydW5zLT5saW5lQm94KCkubG9naWNhbFdpZHRoKCkpOwog
ICAgIH0KICAgICByZXR1cm4gbWF4aW11bUxpbmVXaWR0aDsKIH0KQEAgLTM2OSwyNCArMzY4LDE3
IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlz
cGxheVJ1bnMoY29uc3QgTGluZTo6Q29udGVuCiAgICAgICAgIGF1dG8mIGZsb2F0Qm94ID0gZmxv
YXRJdGVtLT5sYXlvdXRCb3goKTsKICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGZvcm1hdHRp
bmdTdGF0ZS5kaXNwbGF5Qm94KGZsb2F0Qm94KTsKICAgICAgICAgLy8gU2V0IHN0YXRpYyBwb3Np
dGlvbiBmaXJzdC4KLSAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KHsgbGluZUNvbnRlbnQu
bG9naWNhbExlZnQoKSwgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpIH0pOworICAgICAgICBhdXRv
JiBsaW5lQm94ID0gbGluZUNvbnRlbnQubGluZUJveCgpOworICAgICAgICBkaXNwbGF5Qm94LnNl
dFRvcExlZnQoeyBsaW5lQm94LmxvZ2ljYWxMZWZ0KCksIGxpbmVCb3gubG9naWNhbFRvcCgpIH0p
OwogICAgICAgICAvLyBGbG9hdCBpdC4KICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGZs
b2F0aW5nQ29udGV4dC5wb3NpdGlvbkZvckZsb2F0KGZsb2F0Qm94KSk7CiAgICAgICAgIGZsb2F0
aW5nQ29udGV4dC5hcHBlbmQoZmxvYXRCb3gpOwogICAgIH0KIAotICAgIGlmIChsaW5lQ29udGVu
dC5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gU3BlYyB0ZWxscyB1cyB0byBjcmVhdGUgYSB6ZXJv
IGhlaWdodCwgZW1wdHkgbGluZSBib3guCi0gICAgICAgIGF1dG8gbGluZUJveFJlY3QgPSBEaXNw
bGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5sb2dpY2Fs
TGVmdCgpLCAwICwgMCB9OwotICAgICAgICBmb3JtYXR0aW5nU3RhdGUuYWRkTGluZUJveCh7IGxp
bmVCb3hSZWN0LCBsaW5lQ29udGVudC5iYXNlbGluZSgpLCBsaW5lQ29udGVudC5iYXNlbGluZU9m
ZnNldCgpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgYXV0byYgaW5saW5lRGlz
cGxheVJ1bnMgPSBmb3JtYXR0aW5nU3RhdGUuaW5saW5lUnVucygpOwotICAgIE9wdGlvbmFsPHVu
c2lnbmVkPiBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBpbmxpbmVEaXNwbGF5UnVucy5pc0Vt
cHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAt
IDE7CisgICAgYXV0byBwcmV2aW91c0xpbmVMYXN0UnVuSW5kZXggPSBPcHRpb25hbDx1bnNpZ25l
ZD4geyBpbmxpbmVEaXNwbGF5UnVucy5pc0VtcHR5KCkgPyBPcHRpb25hbDx1bnNpZ25lZD4oKSA6
IGlubGluZURpc3BsYXlSdW5zLnNpemUoKSAtIDEgfTsKICAgICAvLyA5LjQuMiBJbmxpbmUgZm9y
bWF0dGluZyBjb250ZXh0cwogICAgIC8vIEEgbGluZSBib3ggaXMgYWx3YXlzIHRhbGwgZW5vdWdo
IGZvciBhbGwgb2YgdGhlIGJveGVzIGl0IGNvbnRhaW5zLgotICAgIGF1dG8gbGluZUJveFJlY3Qg
PSBEaXNwbGF5OjpSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcCgpLCBsaW5lQ29udGVudC5s
b2dpY2FsTGVmdCgpLCAwLCBsaW5lQ29udGVudC5sb2dpY2FsSGVpZ2h0KCl9OwogICAgIC8vIENy
ZWF0ZSBmaW5hbCBkaXNwbGF5IHJ1bnMuCiAgICAgYXV0byYgbGluZVJ1bnMgPSBsaW5lQ29udGVu
dC5ydW5zKCk7CiAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5
KCk7CkBAIC00MTAsNyArNDAyLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5s
aW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAg
ICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAg
dG9wTGVmdCArPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQobGF5b3V0
Qm94LCBtX3VzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0
VG9wTGVmdCh0b3BMZWZ0KTsKLSAgICAgICAgICAgIGxpbmVCb3hSZWN0LmV4cGFuZEhvcml6b250
YWxseShsb2dpY2FsUmVjdC53aWR0aCgpKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5h
ZGRJbmxpbmVSdW4obWFrZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtNDE4LDcgKzQwOSw2IEBAIHZvaWQgSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQ6OklubGluZUxheW91dDo6Y3JlYXRlRGlzcGxheVJ1bnMoY29u
c3QgTGluZTo6Q29udGVuCiAgICAgICAgIC8vIElubGluZSBsZXZlbCBjb250YWluZXIgc3RhcnQg
KDxzcGFuPikKICAgICAgICAgaWYgKGxpbmVSdW4tPmlzQ29udGFpbmVyU3RhcnQoKSkgewogICAg
ICAgICAgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KGxvZ2ljYWxSZWN0LnRvcExlZnQoKSk7Ci0g
ICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lk
dGgoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC00MzQsNyArNDI0
LDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVE
aXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgICAgIC8vIEZJWE1FIGZpeCBp
dCBmb3IgbXVsdGlsaW5lLgogICAgICAgICAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lk
dGgoY29udGVudEJveFdpZHRoKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJv
eEhlaWdodChsb2dpY2FsUmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5l
eHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCkBAIC00NTIsNyArNDQxLDYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpD
b250ZW4KICAgICAgICAgICAgICAgICBsYXN0RGlzcGxheVJ1bi0+ZXhwYW5kSG9yaXpvbnRhbGx5
KGxvZ2ljYWxSZWN0LndpZHRoKCkpOwogICAgICAgICAgICAgICAgIGxhc3REaXNwbGF5UnVuLT50
ZXh0Q29udGV4dCgpLT5leHBhbmQodGV4dENvbnRleHQtPmxlbmd0aCk7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBsaW5lQm94UmVjdC5leHBhbmRIb3Jpem9udGFsbHkobG9naWNhbFJlY3Qu
d2lkdGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgLy8gRklYTUUgdGFrZSBjb250ZW50IGJyZWFr
aW5nIGludG8gYWNjb3VudCB3aGVuIHBhcnQgb2YgdGhlIGxheW91dCBib3ggaXMgb24gdGhlIHBy
ZXZpb3VzIGxpbmUuCiAgICAgICAgIGF1dG8gZmlyc3RJbmxpbmVSdW5Gb3JMYXlvdXRCb3ggPSAh
cHJldmlvdXNMaW5lUnVuIHx8ICZwcmV2aW91c0xpbmVSdW4tPmxheW91dEJveCgpICE9ICZsYXlv
dXRCb3g7CkBAIC00NjcsOCArNDU1LDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAg
ICAgfQogICAgIH0KICAgICAvLyBGSVhNRSBsaW5lYm94IG5lZWRzIHRvIGJlIGFqdXN0ZWQgYWZ0
ZXIgY29udGVudCBhbGlnbm1lbnQuCi0gICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3goeyBs
aW5lQm94UmVjdCwgbGluZUNvbnRlbnQuYmFzZWxpbmUoKSwgbGluZUNvbnRlbnQuYmFzZWxpbmVP
ZmZzZXQoKSB9KTsKLSAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRB
bGlnbigpLCBpbmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVl
T3IoLTEpICsgMSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5sb2dpY2FsV2lkdGgo
KSk7CisgICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmVCb3gobGluZUNvbnRlbnQubGluZUJveCgp
KTsKKyAgICBhbGlnblJ1bnMoZm9ybWF0dGluZ1Jvb3QoKS5zdHlsZSgpLnRleHRBbGlnbigpLCBp
bmxpbmVEaXNwbGF5UnVucywgcHJldmlvdXNMaW5lTGFzdFJ1bkluZGV4LnZhbHVlT3IoLTEpICsg
MSwgd2lkdGhDb25zdHJhaW50KCkgLSBsaW5lQ29udGVudC5saW5lQm94KCkubG9naWNhbFdpZHRo
KCkpOwogfQogCiBzdGF0aWMgT3B0aW9uYWw8TGF5b3V0VW5pdD4gaG9yaXpvbnRhbEFkanVzdG1l
bnRGb3JBbGlnbm1lbnQoVGV4dEFsaWduTW9kZSBhbGlnbiwgTGF5b3V0VW5pdCByZW1haW5pbmdX
aWR0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAppbmRl
eCAwMTFhNThhMTUyZmNhMmI2NTIzMDQ4MmU2OWVkMDM2NjZmYTllODQ2Li5kZmNjNjI2YTMwOTE2
OGY0M2MxZjBlMzgyOGQyNzliMGJiZjA3NTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC02OSw3ICs2OSw3IEBAIGJvb2wgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OlF1aXJrczo6bGluZURlc2NlbnROZWVkc0NvbGxhcHNpbmcoY29uc3QgTGlu
ZTo6Q29uCiAgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gZG93bmNhc3Q8
SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZShkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCkpKTsKICAgICAgICAgICAgICAgICBB
U1NFUlQoIWZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMoKS5pc0VtcHR5KCkpOwogICAgICAgICAg
ICAgICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94
ZXMoKS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICBpZiAoaW5saW5lQmxvY2tC
YXNlbGluZS5kZXNjZW50KQorICAgICAgICAgICAgICAgIGlmIChpbmxpbmVCbG9ja0Jhc2VsaW5l
LmRlc2NlbnQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC04NywxOCArODcsMTggQEAgTGluZTo6SW5pdGlh
bENvbnN0cmFpbnRzOjpIZWlnaHRBbmRCYXNlbGluZSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
UXVpcmtzOjpsaW4KICAgICAvLyBjb21wdXRlZExpbmVIZWlnaHQgdGFrZXMgZm9udC1zaXplIGlu
dG8gYWNjb3VudCB3aGVuIGxpbmUtaGVpZ2h0IGlzIG5vdCBzZXQuCiAgICAgLy8gU3RydXQgaXMg
dGhlIGltYWdpbmFyeSBib3ggdGhhdCB3ZSBwdXQgb24gZXZlcnkgbGluZS4gSXQgc2V0cyB0aGUg
aW5pdGlhbCB2ZXJ0aWNhbCBjb25zdHJhaW50cyBmb3IgZWFjaCBuZXcgbGluZS4KICAgICBhdXRv
IHN0cnV0SGVpZ2h0ID0gZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5jb21wdXRlZExpbmVIZWlnaHQo
KTsKLSAgICBhdXRvIHN0cnV0QmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJp
Y3MoZm9ybWF0dGluZ1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBzdHJ1dEhlaWdodCkuYXNj
ZW50OworICAgIGF1dG8gc3RydXRCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0
cmljcyhmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHN0cnV0SGVpZ2h0KS5h
c2NlbnQoKTsKICAgICBpZiAobGF5b3V0U3RhdGUoKS5pbk5vUXVpcmtzTW9kZSgpKQogICAgICAg
ICByZXR1cm4geyBzdHJ1dEhlaWdodCwgc3RydXRCYXNlbGluZU9mZnNldCwgeyB9IH07CiAKICAg
ICBhdXRvIGxpbmVIZWlnaHQgPSBmb3JtYXR0aW5nUm9vdC5zdHlsZSgpLmxpbmVIZWlnaHQoKTsK
ICAgICBpZiAobGluZUhlaWdodC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSkgewotICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50OworICAgICAgICBh
dXRvIGluaXRpYWxCYXNlbGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3Jt
YXR0aW5nUm9vdC5zdHlsZSgpLmZvbnRNZXRyaWNzKCksIHsgfSkuYXNjZW50KCk7CiAgICAgICAg
IHJldHVybiB7IGluaXRpYWxCYXNlbGluZU9mZnNldCwgaW5pdGlhbEJhc2VsaW5lT2Zmc2V0LCBM
aW5lQm94OjpCYXNlbGluZSB7IHN0cnV0QmFzZWxpbmVPZmZzZXQsIHN0cnV0SGVpZ2h0IC0gc3Ry
dXRCYXNlbGluZU9mZnNldCB9IH07CiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGUgb25seSByZWFz
b24gd2h5IHdlIHVzZSBpbnRWYWx1ZSgpIGhlcmUgaXMgdG8gbWF0Y2ggY3VycmVudCBpbmxpbmUg
dHJlZSAoaW50ZWdyYWwpYmVoYXZpb3IuCiAgICAgYXV0byBpbml0aWFsTGluZUhlaWdodCA9IExh
eW91dFVuaXQgeyBsaW5lSGVpZ2h0LmludFZhbHVlKCkgfTsKLSAgICBhdXRvIGluaXRpYWxCYXNl
bGluZU9mZnNldCA9IExpbmU6OmhhbGZMZWFkaW5nTWV0cmljcyhmb3JtYXR0aW5nUm9vdC5zdHls
ZSgpLmZvbnRNZXRyaWNzKCksIGluaXRpYWxMaW5lSGVpZ2h0KS5hc2NlbnQ7CisgICAgYXV0byBp
bml0aWFsQmFzZWxpbmVPZmZzZXQgPSBMaW5lOjpoYWxmTGVhZGluZ01ldHJpY3MoZm9ybWF0dGlu
Z1Jvb3Quc3R5bGUoKS5mb250TWV0cmljcygpLCBpbml0aWFsTGluZUhlaWdodCkuYXNjZW50KCk7
CiAgICAgcmV0dXJuIHsgaW5pdGlhbExpbmVIZWlnaHQsIGluaXRpYWxCYXNlbGluZU9mZnNldCwg
TGluZUJveDo6QmFzZWxpbmUgeyBzdHJ1dEJhc2VsaW5lT2Zmc2V0LCBzdHJ1dEhlaWdodCAtIHN0
cnV0QmFzZWxpbmVPZmZzZXQgfSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCmluZGV4IDZhMDFhMTk2NGY2ZjEz
NGI3NGI0MGU1OWEzZmZiZmQ4MDQ5NTRmNWUuLjZkYzIxOTZlMTBjNzU1ZGFjOTBjZTZiNjNkMDUy
OGRhZDY3OGI2YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmUuY3BwCkBAIC0xMDQsMTUgKzEwNCwxNSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgIHJlbW92ZVRyYWlsaW5nVHJp
bW1hYmxlQ29udGVudCgpOwogICAgIGlmICghbV9za2lwVmVydGljYWxBbGlnbWVudCkgewogICAg
ICAgICBpZiAoaXNWaXN1YWxseUVtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fYmFzZWxpbmUgPSB7
IH07CisgICAgICAgICAgICBtX2Jhc2VsaW5lLnJlc2V0KCk7CiAgICAgICAgICAgICBtX2Jhc2Vs
aW5lVG9wID0geyB9OwogICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCA9IHsgfTsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIFJlbW92ZSBkZXNjZW50IHdoZW4gYWxsIGNvbnRlbnQgaXMg
YmFzZWxpbmUgYWxpZ25lZCBidXQgbm9uZSBvZiB0aGVtIGhhdmUgZGVzY2VudC4KICAgICAgICAg
aWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkubGluZURlc2NlbnROZWVkc0NvbGxhcHNp
bmcoKm1fY29udGVudCkpIHsKLSAgICAgICAgICAgIG1fbGluZUxvZ2ljYWxIZWlnaHQgLT0gbV9i
YXNlbGluZS5kZXNjZW50OwotICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNjZW50ID0geyB9Owor
ICAgICAgICAgICAgbV9saW5lTG9naWNhbEhlaWdodCAtPSBtX2Jhc2VsaW5lLmRlc2NlbnQoKTsK
KyAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0RGVzY2VudCh7IH0pOwogICAgICAgICB9CiAKICAg
ICAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOwpAQCAtMTM1LDcg
KzEzNSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMaW5lOjpDb250ZW50PiBMaW5lOjpjbG9zZSgpCiAg
ICAgICAgICAgICAgICAgICAgIC8vIFNwZWMgbWFrZXMgdXMgZ2VuZXJhdGUgYXQgbGVhc3Qgb25l
IGxpbmUgLWV2ZW4gaWYgaXQgaXMgZW1wdHkuCiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
Zm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1wdHkoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGF1dG8gaW5saW5lQmxvY2tCYXNlbGluZSA9IGZvcm1hdHRpbmdTdGF0ZS5saW5lQm94ZXMo
KS5sYXN0KCkuYmFzZWxpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbFRvcCA9IGJh
c2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2VsaW5lLmFzY2VudDsKKyAgICAgICAgICAg
ICAgICAgICAgbG9naWNhbFRvcCA9IGJhc2VsaW5lT2Zmc2V0KCkgLSBpbmxpbmVCbG9ja0Jhc2Vs
aW5lLmFzY2VudCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAg
ICBsb2dpY2FsVG9wID0gYmFzZWxpbmVPZmZzZXQoKSAtIHJ1bi0+bG9naWNhbFJlY3QoKS5oZWln
aHQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE1NSw5ICsxNTUsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8TGluZTo6Q29udGVudD4gTGluZTo6Y2xvc2UoKQogICAgICAgICAgICAgcnVuLT5t
b3ZlSG9yaXpvbnRhbGx5KHRoaXMtPmxvZ2ljYWxMZWZ0KCkpOwogICAgICAgICB9CiAgICAgfQot
ICAgIG1fY29udGVudC0+c2V0TG9naWNhbFJlY3QoeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0
KCksIGNvbnRlbnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0pOwotICAgIG1fY29u
dGVudC0+c2V0QmFzZWxpbmUobV9iYXNlbGluZSk7Ci0gICAgbV9jb250ZW50LT5zZXRCYXNlbGlu
ZU9mZnNldChiYXNlbGluZU9mZnNldCgpKTsKKyAgICBtX2NvbnRlbnQtPnNldExpbmVCb3goTGlu
ZUJveCB7IERpc3BsYXk6OlJlY3QgeyBsb2dpY2FsVG9wKCksIGxvZ2ljYWxMZWZ0KCksIGNvbnRl
bnRMb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCgpIH0sIG1fYmFzZWxpbmUsIGJhc2VsaW5l
T2Zmc2V0KCkgfSk7CiAgICAgcmV0dXJuIFdURk1vdmUobV9jb250ZW50KTsKIH0KIApAQCAtMzQz
LDEwICszNDEsMTAgQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29u
c3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAogICAgICAgICBpZiAoc3R5bGUu
dmVydGljYWxBbGlnbigpID09IFZlcnRpY2FsQWxpZ246OkJhc2VsaW5lKSB7CiAgICAgICAgICAg
ICBhdXRvIGhhbGZMZWFkaW5nID0gaGFsZkxlYWRpbmdNZXRyaWNzKGZvbnRNZXRyaWNzLCBzdHls
ZS5jb21wdXRlZExpbmVIZWlnaHQoKSk7CiAgICAgICAgICAgICAvLyBCb3RoIGhhbGZsZWFkaW5n
IGFzY2VudCBhbmQgZGVzY2VudCBjb3VsZCBiZSBuZWdhdGl2ZSAodGFsbCBmb250IHZzLiBzbWFs
bCBsaW5lLWhlaWdodCB2YWx1ZSkKLSAgICAgICAgICAgIGlmIChoYWxmTGVhZGluZy5kZXNjZW50
ID4gMCkKLSAgICAgICAgICAgICAgICBtX2Jhc2VsaW5lLmRlc2NlbnQgPSBzdGQ6Om1heChtX2Jh
c2VsaW5lLmRlc2NlbnQsIGhhbGZMZWFkaW5nLmRlc2NlbnQpOwotICAgICAgICAgICAgaWYgKGhh
bGZMZWFkaW5nLmFzY2VudCA+IDApCi0gICAgICAgICAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQg
PSBzdGQ6Om1heChtX2Jhc2VsaW5lLmFzY2VudCwgaGFsZkxlYWRpbmcuYXNjZW50KTsKKyAgICAg
ICAgICAgIGlmIChoYWxmTGVhZGluZy5kZXNjZW50KCkgPiAwKQorICAgICAgICAgICAgICAgIG1f
YmFzZWxpbmUuc2V0RGVzY2VudChzdGQ6Om1heChtX2Jhc2VsaW5lLmRlc2NlbnQoKSwgaGFsZkxl
YWRpbmcuZGVzY2VudCgpKSk7CisgICAgICAgICAgICBpZiAoaGFsZkxlYWRpbmcuYXNjZW50KCkg
PiAwKQorICAgICAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0QXNjZW50KHN0ZDo6bWF4KG1fYmFz
ZWxpbmUuYXNjZW50KCksIGhhbGZMZWFkaW5nLmFzY2VudCgpKSk7CiAgICAgICAgICAgICBjb250
ZW50SGVpZ2h0ID0gbV9iYXNlbGluZS5oZWlnaHQoKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBjb250ZW50SGVpZ2h0ID0gZm9udE1ldHJpY3MuaGVpZ2h0KCk7CkBAIC0zNjAsOCArMzU4
LDggQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5l
SXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAogICAgICAgICAvLyB0aHJvdWdoIHRoZSBpbmxp
bmUgY29udGFpbmVyIChzdGFydCkgLXNlZSBhYm92ZS4gTm9ybWFsbHkgdGhlIHRleHQgY29udGVu
dCBpdHNlbGYgZG9lcyBub3Qgc3RyZXRjaCB0aGUgbGluZS4KICAgICAgICAgaWYgKCFtX2luaXRp
YWxTdHJ1dCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9iYXNlbGluZS5hc2NlbnQg
PSBzdGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+YXNjZW50LCBtX2Jhc2VsaW5lLmFzY2VudCk7Ci0g
ICAgICAgIG1fYmFzZWxpbmUuZGVzY2VudCA9IHN0ZDo6bWF4KG1faW5pdGlhbFN0cnV0LT5kZXNj
ZW50LCBtX2Jhc2VsaW5lLmRlc2NlbnQpOworICAgICAgICBtX2Jhc2VsaW5lLnNldEFzY2VudChz
dGQ6Om1heChtX2luaXRpYWxTdHJ1dC0+YXNjZW50KCksIG1fYmFzZWxpbmUuYXNjZW50KCkpKTsK
KyAgICAgICAgbV9iYXNlbGluZS5zZXREZXNjZW50KHN0ZDo6bWF4KG1faW5pdGlhbFN0cnV0LT5k
ZXNjZW50KCksIG1fYmFzZWxpbmUuZGVzY2VudCgpKSk7CiAgICAgICAgIG1fbGluZUxvZ2ljYWxI
ZWlnaHQgPSBzdGQ6Om1heChtX2xpbmVMb2dpY2FsSGVpZ2h0LCBtX2Jhc2VsaW5lLmhlaWdodCgp
KTsKICAgICAgICAgbV9iYXNlbGluZVRvcCA9IHN0ZDo6bWF4KG1fYmFzZWxpbmVUb3AsIG1fbGlu
ZUxvZ2ljYWxIZWlnaHQgLSBtX2Jhc2VsaW5lLmhlaWdodCgpKTsKICAgICAgICAgbV9pbml0aWFs
U3RydXQgPSB7IH07CkBAIC0zNzksOCArMzc3LDggQEAgdm9pZCBMaW5lOjphZGp1c3RCYXNlbGlu
ZUFuZExpbmVIZWlnaHQoY29uc3QgSW5saW5lSXRlbSYgaW5saW5lSXRlbSwgTGF5b3V0VW5pdAog
ICAgICAgICAgICAgICAgIEFTU0VSVCghZm9ybWF0dGluZ1N0YXRlLmxpbmVCb3hlcygpLmlzRW1w
dHkoKSk7CiAgICAgICAgICAgICAgICAgbmV3QmFzZWxpbmVDYW5kaWRhdGUgPSBmb3JtYXR0aW5n
U3RhdGUubGluZUJveGVzKCkubGFzdCgpLmJhc2VsaW5lKCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX2Jhc2VsaW5lLmFzY2VudCA9IHN0ZDo6bWF4KG5ld0Jhc2VsaW5lQ2FuZGlkYXRl
LmFzY2VudCwgbV9iYXNlbGluZS5hc2NlbnQpOwotICAgICAgICAgICAgbV9iYXNlbGluZS5kZXNj
ZW50ID0gc3RkOjptYXgobmV3QmFzZWxpbmVDYW5kaWRhdGUuZGVzY2VudCwgbV9iYXNlbGluZS5k
ZXNjZW50KTsKKyAgICAgICAgICAgIG1fYmFzZWxpbmUuc2V0QXNjZW50KHN0ZDo6bWF4KG5ld0Jh
c2VsaW5lQ2FuZGlkYXRlLmFzY2VudCgpLCBtX2Jhc2VsaW5lLmFzY2VudCgpKSk7CisgICAgICAg
ICAgICBtX2Jhc2VsaW5lLnNldERlc2NlbnQoc3RkOjptYXgobmV3QmFzZWxpbmVDYW5kaWRhdGUu
ZGVzY2VudCgpLCBtX2Jhc2VsaW5lLmRlc2NlbnQoKSkpOwogICAgICAgICAgICAgbV9saW5lTG9n
aWNhbEhlaWdodCA9IHN0ZDo6bWF4KHN0ZDo6bWF4KG1fbGluZUxvZ2ljYWxIZWlnaHQsIHJ1bkhl
aWdodCksIG1fYmFzZWxpbmUuaGVpZ2h0KCkpOwogICAgICAgICAgICAgLy8gQmFzZWxpbmUgYXNj
ZW50L2Rlc2NlbnQgbmV2ZXIgc2hyaW5rIC0+IG1heC4KICAgICAgICAgICAgIG1fYmFzZWxpbmVU
b3AgPSBzdGQ6Om1heChtX2Jhc2VsaW5lVG9wLCBtX2xpbmVMb2dpY2FsSGVpZ2h0IC0gbV9iYXNl
bGluZS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lLmgKaW5kZXggNzdmNDcxZmZjNTA3ZGU2Nzk5MDVjMDhjMWI3MmQ5
ZDIzNTJlYzhhMC4uYmE5M2M0NzI4YTg1MWFhZjk2YTliMzBmNDQwZjYwMDJiZjMyMDdjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmUuaApAQCAtOTQsMjggKzk0LDE1IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAgICAgICAgdXNp
bmcgUnVucyA9IFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnVuPj47CiAgICAgICAgIGNvbnN0IFJ1
bnMmIHJ1bnMoKSBjb25zdCB7IHJldHVybiBtX3J1bnM7IH0KLSAgICAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9ydW5zLmlzRW1wdHkoKTsgfQotCi0gICAgICAgIExheW91dFVu
aXQgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QudG9wKCk7IH0KLSAg
ICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJl
Y3QubGVmdCgpOyB9Ci0gICAgICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbG9naWNhbExlZnQoKSArIGxvZ2ljYWxXaWR0aCgpOyB9Ci0gICAgICAgIExheW91dFVu
aXQgbG9naWNhbEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGxvZ2ljYWxUb3AoKSArIGxvZ2ljYWxI
ZWlnaHQoKTsgfQotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9naWNhbFJlY3Qud2lkdGgoKTsgfQotICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmhlaWdodCgpOyB9Ci0gICAgICAg
IExpbmVCb3g6OkJhc2VsaW5lIGJhc2VsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsg
fQotICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9i
YXNlbGluZU9mZnNldDsgfQorICAgICAgICBjb25zdCBMaW5lQm94JiBsaW5lQm94KCkgY29uc3Qg
eyByZXR1cm4gbV9saW5lQm94OyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xh
c3MgTGluZTsKIAotICAgICAgICB2b2lkIHNldExvZ2ljYWxSZWN0KGNvbnN0IERpc3BsYXk6OlJl
Y3QmIGxvZ2ljYWxSZWN0KSB7IG1fbG9naWNhbFJlY3QgPSBsb2dpY2FsUmVjdDsgfQotICAgICAg
ICB2b2lkIHNldEJhc2VsaW5lKExpbmVCb3g6OkJhc2VsaW5lIGJhc2VsaW5lKSB7IG1fYmFzZWxp
bmUgPSBiYXNlbGluZTsgfQotICAgICAgICB2b2lkIHNldEJhc2VsaW5lT2Zmc2V0KExheW91dFVu
aXQgYmFzZWxpbmVPZmZzZXQpIHsgbV9iYXNlbGluZU9mZnNldCA9IGJhc2VsaW5lT2Zmc2V0OyB9
CisgICAgICAgIHZvaWQgc2V0TGluZUJveChjb25zdCBMaW5lQm94JiBsaW5lQm94KSB7IG1fbGlu
ZUJveCA9IGxpbmVCb3g7IH0KICAgICAgICAgUnVucyYgcnVucygpIHsgcmV0dXJuIG1fcnVuczsg
fQogCi0gICAgICAgIERpc3BsYXk6OlJlY3QgbV9sb2dpY2FsUmVjdDsKLSAgICAgICAgTGluZUJv
eDo6QmFzZWxpbmUgbV9iYXNlbGluZTsKLSAgICAgICAgTGF5b3V0VW5pdCBtX2Jhc2VsaW5lT2Zm
c2V0OworICAgICAgICBMaW5lQm94IG1fbGluZUJveDsKICAgICAgICAgUnVucyBtX3J1bnM7CiAg
ICAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudD4gY2xvc2UoKTsKQEAgLTE0Myw3ICsx
MzAsNyBAQCBwcml2YXRlOgogICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGluZUxvZ2ljYWxIZWlnaHQ7IH0KIAogICAgIExheW91dFVuaXQgY29udGVudExv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxXaWR0aDsgfQotICAg
IExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lLmFz
Y2VudCArIG1fYmFzZWxpbmVUb3A7IH0KKyAgICBMYXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9iYXNlbGluZS5hc2NlbnQoKSArIG1fYmFzZWxpbmVUb3A7IH0KIAog
ICAgIHZvaWQgYXBwZW5kTm9uQnJlYWthYmxlU3BhY2UoY29uc3QgSW5saW5lSXRlbSYsIGNvbnN0
IERpc3BsYXk6OlJlY3QmIGxvZ2ljYWxSZWN0KTsKICAgICB2b2lkIGFwcGVuZFRleHRDb250ZW50
KGNvbnN0IElubGluZVRleHRJdGVtJiwgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oCmluZGV4IDk2YTc0ZjUzY2MxNjg1MTU1MThlMDAzMTMwNDdjNjY2MGYwZjI3NzkuLmNjZDk0
NTNhMjdiYzNkZjJjM2ZlZGRmOTIwMzJlZDhiMzkwNjRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKQEAgLTM1
LDEyICszNSwyOCBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNsYXNzIExpbmVCb3ggewogcHVibGlj
OgogICAgIHN0cnVjdCBCYXNlbGluZSB7Ci0gICAgICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gYXNjZW50ICsgZGVzY2VudDsgfQorICAgICAgICBCYXNlbGluZShMYXlvdXRV
bml0IGFzY2VudCwgTGF5b3V0VW5pdCBkZXNjZW50KTsKKyAgICAgICAgQmFzZWxpbmUoKSA9IGRl
ZmF1bHQ7CiAKLSAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQ7Ci0gICAgICAgIExheW91dFVuaXQg
ZGVzY2VudDsKKyAgICAgICAgdm9pZCBzZXRBc2NlbnQoTGF5b3V0VW5pdCk7CisgICAgICAgIHZv
aWQgc2V0RGVzY2VudChMYXlvdXRVbml0KTsKKyAgICAgICAgdm9pZCByZXNldCgpOworCisgICAg
ICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gYXNjZW50KCkgKyBkZXNjZW50
KCk7IH0KKyAgICAgICAgTGF5b3V0VW5pdCBhc2NlbnQoKSBjb25zdDsKKyAgICAgICAgTGF5b3V0
VW5pdCBkZXNjZW50KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorI2lmICFBU1NFUlRfRElTQUJM
RUQKKyAgICAgICAgYm9vbCBtX2hhc1ZhbGlkQXNjZW50IHsgZmFsc2UgfTsKKyAgICAgICAgYm9v
bCBtX2hhc1ZhbGlkRGVzY2VudCB7IGZhbHNlIH07CisjZW5kaWYKKyAgICAgICAgTGF5b3V0VW5p
dCBtX2FzY2VudDsKKyAgICAgICAgTGF5b3V0VW5pdCBtX2Rlc2NlbnQ7CiAgICAgfTsKKwogICAg
IExpbmVCb3goRGlzcGxheTo6UmVjdCwgY29uc3QgQmFzZWxpbmUmLCBMYXlvdXRVbml0IGJhc2Vs
aW5lT2Zmc2V0KTsKKyAgICBMaW5lQm94KCkgPSBkZWZhdWx0OwogICAgIAogICAgIExheW91dFBv
aW50IGxvZ2ljYWxUb3BMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LnRvcExlZnQoKTsgfQog
CkBAIC02OCw5ICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gICB8IGRlc2NlbnQKICAgICAvLyAg
IHYKICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIGxpbmUgbG9naWNhbCBib3R0b20KLSAgICBM
YXlvdXRVbml0IGJhc2VsaW5lT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlbGluZU9mZnNl
dDsgfQorICAgIExheW91dFVuaXQgYmFzZWxpbmVPZmZzZXQoKSBjb25zdDsKIAogcHJpdmF0ZToK
KyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2hhc1ZhbGlkQmFzZWxpbmVPZmZzZXQg
eyBmYWxzZSB9OworI2VuZGlmCiAgICAgRGlzcGxheTo6UmVjdCBtX3JlY3Q7CiAgICAgQmFzZWxp
bmUgbV9iYXNlbGluZTsKICAgICBMYXlvdXRVbml0IG1fYmFzZWxpbmVPZmZzZXQ7CkBAIC04MSw2
ICsxMDAsNjMgQEAgaW5saW5lIExpbmVCb3g6OkxpbmVCb3goRGlzcGxheTo6UmVjdCByZWN0LCBj
b25zdCBCYXNlbGluZSYgYmFzZWxpbmUsIExheW91dFVuaXQKICAgICAsIG1fYmFzZWxpbmUoYmFz
ZWxpbmUpCiAgICAgLCBtX2Jhc2VsaW5lT2Zmc2V0KGJhc2VsaW5lT2Zmc2V0KQogeworI2lmICFB
U1NFUlRfRElTQUJMRUQKKyAgICBtX2hhc1ZhbGlkQmFzZWxpbmVPZmZzZXQgPSB0cnVlOworI2Vu
ZGlmCit9CisKK2lubGluZSBMYXlvdXRVbml0IExpbmVCb3g6OmJhc2VsaW5lT2Zmc2V0KCkgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZEJhc2VsaW5lT2Zmc2V0KTsKKyAgICByZXR1cm4g
bV9iYXNlbGluZU9mZnNldDsKK30KKworaW5saW5lIExpbmVCb3g6OkJhc2VsaW5lOjpCYXNlbGlu
ZShMYXlvdXRVbml0IGFzY2VudCwgTGF5b3V0VW5pdCBkZXNjZW50KQorICAgIDogbV9hc2NlbnQo
YXNjZW50KQorICAgICwgbV9kZXNjZW50KGRlc2NlbnQpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxF
RAorICAgIG1faGFzVmFsaWRBc2NlbnQgPSB0cnVlOworICAgIG1faGFzVmFsaWREZXNjZW50ID0g
dHJ1ZTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBMaW5lQm94OjpCYXNlbGluZTo6c2V0QXNj
ZW50KExheW91dFVuaXQgYXNjZW50KQoreworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICBtX2hh
c1ZhbGlkQXNjZW50ID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fYXNjZW50ID0gYXNjZW50OworfQor
CitpbmxpbmUgdm9pZCBMaW5lQm94OjpCYXNlbGluZTo6c2V0RGVzY2VudChMYXlvdXRVbml0IGRl
c2NlbnQpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIG1faGFzVmFsaWREZXNjZW50ID0g
dHJ1ZTsKKyNlbmRpZgorICAgIG1fZGVzY2VudCA9IGRlc2NlbnQ7Cit9CisKK2lubGluZSB2b2lk
IExpbmVCb3g6OkJhc2VsaW5lOjpyZXNldCgpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAg
IG1faGFzVmFsaWRBc2NlbnQgPSB0cnVlOworICAgIG1faGFzVmFsaWREZXNjZW50ID0gdHJ1ZTsK
KyNlbmRpZgorICAgIG1fYXNjZW50ID0geyB9OworICAgIG1fZGVzY2VudCA9IHsgfTsKK30KKwor
aW5saW5lIExheW91dFVuaXQgTGluZUJveDo6QmFzZWxpbmU6OmFzY2VudCgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG1faGFzVmFsaWRBc2NlbnQpOworICAgIHJldHVybiBtX2FzY2VudDsKK30KKwor
aW5saW5lIExheW91dFVuaXQgTGluZUJveDo6QmFzZWxpbmU6OmRlc2NlbnQoKSBjb25zdAorewor
ICAgIEFTU0VSVChtX2hhc1ZhbGlkRGVzY2VudCk7CisgICAgcmV0dXJuIG1fZGVzY2VudDsKIH0K
IAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>