<?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>155976</bug_id>
          
          <creation_ts>2016-03-29 10:26:09 -0700</creation_ts>
          <short_desc>[Cocoa] Rename ScrollbarPainter variables to ScrollerImp</short_desc>
          <delta_ts>2016-03-29 12:04:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1178703</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 10:26:09 -0700</bug_when>
    <thetext>[Cocoa] Rename ScrollbarPainter variables to ScrollerImp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178709</commentid>
    <comment_count>1</comment_count>
      <attachid>275103</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 10:29:05 -0700</bug_when>
    <thetext>Created attachment 275103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178710</commentid>
    <comment_count>2</comment_count>
      <attachid>275104</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 10:37:17 -0700</bug_when>
    <thetext>Created attachment 275104
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178743</commentid>
    <comment_count>3</comment_count>
      <attachid>275104</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-29 12:04:00 -0700</bug_when>
    <thetext>Comment on attachment 275104
Patch

Clearing flags on attachment: 275104

Committed r198787: &lt;http://trac.webkit.org/changeset/198787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178744</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-29 12:04:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275103</attachid>
            <date>2016-03-29 10:29:05 -0700</date>
            <delta_ts>2016-03-29 10:37:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155976-20160329102908.patch</filename>
            <type>text/plain</type>
            <size>33925</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2MzU3M2I0ZWUyODE4
ZWIyODc5Njk2Nzk3MmViZTlkZjczZWQ5MC4uMTY4NTMzNjBjYThkOTI5YjNlYTg5MWI5MWVhNjYw
ZjFkZDQ2MDk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDE2LTAzLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBS
ZW5hbWUgU2Nyb2xsYmFyUGFpbnRlciB2YXJpYWJsZXMgdG8gU2Nyb2xsZXJJbXAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTk3NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGlu
dWVzIHdoZXJlIHIxOTgwNzggbGVmdCBvZmYuIFRoYXQgcGF0Y2ggcmVuYW1lZCBhbGwgdGhlIHR5
cGVzLAorICAgICAgICBob3dldmVyLCB0aGVyZSBhcmUgc29tZSB2YXJpYWJsZXMgd2hpY2ggd2Vy
ZSBsZWZ0IGFzICJzY3JvbGxiYXJQYWludGVyIi4gVGhpcworICAgICAgICBwYXRjaCBjb21wbGV0
ZXMgdGhlIHRyYW5zaXRpb24gdG8gU2Nyb2xsZXJJbXAuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIpOgorICAg
ICAgICAoLVtXZWJTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZSBzY3JvbGxlckltcFBhaXI6Y29udmVy
dENvbnRlbnRQb2ludDp0b1Njcm9sbGVySW1wOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHN0YXJ0QW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBh
cnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dyZXNzOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxl
ckltcERlbGVnYXRlIG1vdXNlTG9jYXRpb25JblNjcm9sbGVyRm9yU2Nyb2xsZXJJbXA6XSk6Cisg
ICAgICAgICgtW1dlYlNjcm9sbGVySW1wRGVsZWdhdGUgc2Nyb2xsZXJJbXA6YW5pbWF0ZUtub2JB
bHBoYVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxlckltcERlbGVnYXRlIHNj
cm9sbGVySW1wOmFuaW1hdGVUcmFja0FscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1dl
YlNjcm9sbGVySW1wRGVsZWdhdGUgc2Nyb2xsZXJJbXA6YW5pbWF0ZVVJU3RhdGVUcmFuc2l0aW9u
V2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxlckltcERlbGVnYXRlIHNjcm9s
bGVySW1wOmFuaW1hdGVFeHBhbnNpb25UcmFuc2l0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhV2lsbFBhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRDb250ZW50
QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFeGl0ZWRD
b250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bW91c2VN
b3ZlZEluQ29udGVudEFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6
Om1vdXNlRW50ZXJlZFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6bW91c2VFeGl0ZWRTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OndpbGxTdGFydExpdmVSZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6d2lsbEVuZExpdmVSZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhRGlkU2hvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRIaWRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEVuZFNjcm9sbEdlc3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1heUJlZ2luU2Nyb2xsR2VzdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bG9ja092ZXJsYXlTY3JvbGxiYXJT
dGF0ZVRvSGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGxiYXJzQ2FuQmVBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6
OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjp3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjppbnZhbGlkYXRlU2Nyb2xs
YmFyUGFydExheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dmVy
dGljYWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTY3JvbGxiYXJQYXJ0aWNpcGF0ZUlu
SGl0VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5
Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xsZWQpOgorICAgICAgICAo
c2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lTWFjOjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xs
ZXJJbXBQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyUGFpbnRlclBhaW50KTogRGVsZXRlZC4KKwor
MjAxNi0wMy0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCiAg
ICAgICAgIFtPUyBYXSBbUlRMIFNjcm9sbGJhcnNdIE92ZXJsYXkgUlRMIHNjcm9sbGJhcnMgYW5p
bWF0ZSBpbiBmcm9tIHRoZSB3cm9uZyBzaWRlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU5NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCBkZTYyZmUxMjRiY2YwODYwZmY1NTZhZDNh
MmVmNDY2Y2Y1NGY3MDQxLi5hOWZhYjdkODU1MGYyN2JkOGU4YzlmMWFmNDQwY2RiMzAwZGIyY2Nh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aApAQCAtNjksOCArNjksOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZD4gbV9zY3JvbGxB
bmltYXRpb25IZWxwZXI7CiAgICAgUmV0YWluUHRyPFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwogCi0gICAgUmV0YWluUHRy
PFNjcm9sbGVySW1wUGFpcj4gbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcjsKLSAgICBSZXRh
aW5QdHI8V2ViU2Nyb2xsZXJJbXBQYWlyRGVsZWdhdGU+IG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJEZWxlZ2F0ZTsKKyAgICBSZXRhaW5QdHI8U2Nyb2xsZXJJbXBQYWlyPiBtX3Njcm9sbGVy
SW1wUGFpcjsKKyAgICBSZXRhaW5QdHI8V2ViU2Nyb2xsZXJJbXBQYWlyRGVsZWdhdGU+IG1fc2Ny
b2xsZXJJbXBQYWlyRGVsZWdhdGU7CiAgICAgUmV0YWluUHRyPFdlYlNjcm9sbGVySW1wRGVsZWdh
dGU+IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wRGVsZWdhdGU7CiAgICAgUmV0YWluUHRyPFdlYlNj
cm9sbGVySW1wRGVsZWdhdGU+IG1fdmVydGljYWxTY3JvbGxlckltcERlbGVnYXRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXgg
ZTRjZDIzZmVlM2U1ZmViZGFhZTcwMmRmNTY3NmQzMmZmZjAwNWY0Yy4uYTIzZGE0N2E3Yzk2NDFj
YjI1OWM4OWVlNTQ3YmMxMWVlYjEzNWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgU2Ny
b2xsYmFyVGhlbWVNYWMqIG1hY1Njcm9sbGJhclRoZW1lKCkKICAgICByZXR1cm4gIXNjcm9sbGJh
clRoZW1lLmlzTW9ja1RoZW1lKCkgPyBzdGF0aWNfY2FzdDxTY3JvbGxiYXJUaGVtZU1hYyo+KCZz
Y3JvbGxiYXJUaGVtZSkgOiBudWxscHRyOwogfQogCi1zdGF0aWMgTlNTY3JvbGxlckltcCAqc2Ny
b2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcikKK3N0YXRpYyBO
U1Njcm9sbGVySW1wICpzY3JvbGxlckltcEZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJh
cikKIHsKICAgICBpZiAoU2Nyb2xsYmFyVGhlbWVNYWMqIHNjcm9sbGJhclRoZW1lID0gbWFjU2Ny
b2xsYmFyVGhlbWUoKSkKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclRoZW1lLT5wYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CkBAIC0yMzYsNyArMjM2LDcgQEAgLSAoTlNQb2ludClzY3Jv
bGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJbXBQYWlyIGNvbnZlcnRD
b250ZW50UG8KICAgICBpZiAoIXNjcm9sbGJhcikKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50
OwogCi0gICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxi
YXIoKnNjcm9sbGJhcikpOworICAgIEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZv
clNjcm9sbGJhcigqc2Nyb2xsYmFyKSk7CiAKICAgICByZXR1cm4gc2Nyb2xsYmFyLT5jb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3KFdlYkNvcmU6OkludFBvaW50KHBvaW50SW5Db250ZW50QXJlYSkp
OwogfQpAQCAtMjc3LDcgKzI3Nyw3IEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiBAaW50ZXJm
YWNlIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24gOiBOU0FuaW1hdGlvbgogewogICAgIFNjcm9s
bGJhciogX3Njcm9sbGJhcjsKLSAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gX3Njcm9sbGJh
clBhaW50ZXI7CisgICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+IF9zY3JvbGxlckltcDsKICAg
ICBGZWF0dXJlVG9BbmltYXRlIF9mZWF0dXJlVG9BbmltYXRlOwogICAgIENHRmxvYXQgX3N0YXJ0
VmFsdWU7CiAgICAgQ0dGbG9hdCBfZW5kVmFsdWU7CkBAIC0zMDcsNyArMzA3LDcgQEAgLSAodm9p
ZClzdGFydEFuaW1hdGlvbgogewogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAotICAgIF9zY3Jv
bGxiYXJQYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJhcik7
CisgICAgX3Njcm9sbGVySW1wID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKl9zY3JvbGxiYXIp
OwogCiAgICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKIH0KQEAgLTMzNiwxNiArMzM2LDE2IEBA
IC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlvblByb2dyZXNzKXByb2dyZXNz
CiAKICAgICBzd2l0Y2ggKF9mZWF0dXJlVG9BbmltYXRlKSB7CiAgICAgY2FzZSBUaHVtYkFscGhh
OgotICAgICAgICBbX3Njcm9sbGJhclBhaW50ZXIgc2V0S25vYkFscGhhOmN1cnJlbnRWYWx1ZV07
CisgICAgICAgIFtfc2Nyb2xsZXJJbXAgc2V0S25vYkFscGhhOmN1cnJlbnRWYWx1ZV07CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVHJhY2tBbHBoYToKLSAgICAgICAgW19zY3JvbGxiYXJQYWlu
dGVyIHNldFRyYWNrQWxwaGE6Y3VycmVudFZhbHVlXTsKKyAgICAgICAgW19zY3JvbGxlckltcCBz
ZXRUcmFja0FscGhhOmN1cnJlbnRWYWx1ZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVUlT
dGF0ZVRyYW5zaXRpb246Ci0gICAgICAgIFtfc2Nyb2xsYmFyUGFpbnRlciBzZXRVaVN0YXRlVHJh
bnNpdGlvblByb2dyZXNzOmN1cnJlbnRWYWx1ZV07CisgICAgICAgIFtfc2Nyb2xsZXJJbXAgc2V0
VWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzczpjdXJyZW50VmFsdWVdOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEV4cGFuc2lvblRyYW5zaXRpb246Ci0gICAgICAgIFtfc2Nyb2xsYmFyUGFpbnRl
ciBzZXRFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVlXTsKKyAgICAgICAg
W19zY3JvbGxlckltcCBzZXRFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVl
XTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC00MzYsNyArNDM2LDcgQEAgLSAoTlNQb2lu
dCltb3VzZUxvY2F0aW9uSW5TY3JvbGxlckZvclNjcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICop
c2Nyb2xsZXJJbXAKICAgICBpZiAoIV9zY3JvbGxiYXIpCiAgICAgICAgIHJldHVybiBOU1plcm9Q
b2ludDsKIAotICAgIEFTU0VSVF9VTlVTRUQoc2Nyb2xsZXJJbXAsIHNjcm9sbGVySW1wID09IHNj
cm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9zY3JvbGxiYXIpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHNjcm9sbGVySW1wLCBzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigq
X3Njcm9sbGJhcikpOwogCiAgICAgcmV0dXJuIF9zY3JvbGxiYXItPmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXcoX3Njcm9sbGJhci0+c2Nyb2xsYWJsZUFyZWEoKS5sYXN0S25vd25Nb3VzZVBvc2l0
aW9uKCkpOwogfQpAQCAtNTAzLDcgKzUwMyw3IEBAIC0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Ny
b2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmltYXRlS25vYkFscGhhVG86KENHRmxvYXQpbmV3CiAg
ICAgaWYgKCFfc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoc2Nyb2xs
ZXJJbXAgPT0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJhcikpOworICAg
IEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqX3Njcm9sbGJh
cikpOwogCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJQYWludGVyID0gKE5TU2Nyb2xsZXJJ
bXAgKilzY3JvbGxlckltcDsKICAgICBpZiAoIVtzZWxmIHNjcm9sbEFuaW1hdG9yXS0+c2Nyb2xs
YmFyc0NhbkJlQWN0aXZlKCkpIHsKQEAgLTUyNiw3ICs1MjYsNyBAQCAtICh2b2lkKXNjcm9sbGVy
SW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZVRyYWNrQWxwaGFUbzooQ0dG
bG9hdCluZQogICAgIGlmICghX3Njcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9zY3JvbGxi
YXIpKTsKKyAgICBBU1NFUlQoc2Nyb2xsZXJJbXAgPT0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIo
Kl9zY3JvbGxiYXIpKTsKIAogICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVyUGFpbnRlciA9IChO
U1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXA7CiAgICAgW3NlbGYgc2V0VXBBbHBoYUFuaW1hdGlv
bjpfdHJhY2tBbHBoYUFuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBh
cnQ6V2ViQ29yZTo6QmFja1RyYWNrUGFydCBhbmltYXRlQWxwaGFUbzpuZXdUcmFja0FscGhhIGR1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTUzNywyNiArNTM3LDI0IEBAIC0gKHZvaWQpc2Nyb2xsZXJJ
bXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmltYXRlVUlTdGF0ZVRyYW5zaXRpb25X
aXRoRHVyCiAgICAgaWYgKCFfc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NF
UlQoc2Nyb2xsZXJJbXAgPT0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJh
cikpOwotCi0gICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsYmFyUGFpbnRlciA9IChOU1Njcm9sbGVy
SW1wICopc2Nyb2xsZXJJbXA7CisgICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGVySW1w
Rm9yU2Nyb2xsYmFyKCpfc2Nyb2xsYmFyKSk7CiAKICAgICAvLyBVSVN0YXRlVHJhbnNpdGlvbiBh
bHdheXMgYW5pbWF0ZXMgdG8gMS4gSW4gY2FzZSBhbiBhbmltYXRpb24gaXMgaW4gcHJvZ3Jlc3Mg
dGhpcyBhdm9pZHMgYSBoYXJkIHRyYW5zaXRpb24uCi0gICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0
VWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzczoxIC0gW3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0
aW9uUHJvZ3Jlc3NdXTsKKyAgICBbc2Nyb2xsZXJJbXAgc2V0VWlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzczoxIC0gW3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3NdXTsKIAogICAg
IC8vIElmIHRoZSBVSSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGhhcHBlbmluZywgdGhlbiB3ZSBhcmUg
bm8gbG9uZ2VyIG1vdmluZyB0aGUgc2Nyb2xsYmFyIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgog
ICAgIGlmIChfc2Nyb2xsYmFyLT5zdXBwb3J0c1VwZGF0ZU9uU2Vjb25kYXJ5VGhyZWFkKCkpCi0g
ICAgICAgIFtzY3JvbGxiYXJQYWludGVyIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOk5PXTsKKyAg
ICAgICAgW3Njcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOk5PXTsKIAogICAgIGlm
ICghX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uKQotICAgICAgICBfdWlTdGF0ZVRyYW5zaXRp
b25BbmltYXRpb24gPSBhZG9wdE5TKFtbV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBhbGxvY10g
aW5pdFdpdGhTY3JvbGxiYXI6X3Njcm9sbGJhciAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVh
dHVyZVRvQW5pbWF0ZTpVSVN0YXRlVHJhbnNpdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuaW1hdGVGcm9tOltzY3JvbGxiYXJQYWludGVyIHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jl
c3NdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlVG86MS4wCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZHVyYXRpb25dKTsKKyAgICAgICAgX3Vp
U3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uID0gYWRvcHROUyhbW1dlYlNjcm9sbGJhclBhcnRBbmlt
YXRpb24gYWxsb2NdIGluaXRXaXRoU2Nyb2xsYmFyOl9zY3JvbGxiYXIKKyAgICAgICAgICAgIGZl
YXR1cmVUb0FuaW1hdGU6VUlTdGF0ZVRyYW5zaXRpb24KKyAgICAgICAgICAgIGFuaW1hdGVGcm9t
OltzY3JvbGxlckltcCB1aVN0YXRlVHJhbnNpdGlvblByb2dyZXNzXQorICAgICAgICAgICAgYW5p
bWF0ZVRvOjEuMAorICAgICAgICAgICAgZHVyYXRpb246ZHVyYXRpb25dKTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIHRoZSBhbmltYXRpb24s
IGp1c3QgcmVzZXQgdGhlIHZhbHVlcyBpbiBjYXNlIHRoZXkgaGF2ZSBjaGFuZ2VkLgotICAgICAg
ICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBh
aW50ZXIgdWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzc11dOworICAgICAgICBbX3VpU3RhdGVUcmFu
c2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0
aW9uUHJvZ3Jlc3NdXTsKICAgICAgICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBzZXRF
bmRWYWx1ZToxLjBdOwogICAgICAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKICAgICB9CkBAIC01NjgsMjIgKzU2NiwyMCBAQCAtICh2b2lkKXNj
cm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZUV4cGFuc2lvblRy
YW5zaXRpb25XaXRoRAogICAgIGlmICghX3Njcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9z
Y3JvbGxiYXIpKTsKLQotICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGJhclBhaW50ZXIgPSAoTlNT
Y3JvbGxlckltcCAqKXNjcm9sbGVySW1wOworICAgIEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3Jv
bGxlckltcEZvclNjcm9sbGJhcigqX3Njcm9sbGJhcikpOwogCiAgICAgLy8gRXhwYW5zaW9uVHJh
bnNpdGlvbiBhbHdheXMgYW5pbWF0ZXMgdG8gMS4gSW4gY2FzZSBhbiBhbmltYXRpb24gaXMgaW4g
cHJvZ3Jlc3MgdGhpcyBhdm9pZHMgYSBoYXJkIHRyYW5zaXRpb24uCi0gICAgW3Njcm9sbGJhclBh
aW50ZXIgc2V0RXhwYW5zaW9uVHJhbnNpdGlvblByb2dyZXNzOjEgLSBbc2Nyb2xsZXJJbXAgZXhw
YW5zaW9uVHJhbnNpdGlvblByb2dyZXNzXV07CisgICAgW3Njcm9sbGVySW1wIHNldEV4cGFuc2lv
blRyYW5zaXRpb25Qcm9ncmVzczoxIC0gW3Njcm9sbGVySW1wIGV4cGFuc2lvblRyYW5zaXRpb25Q
cm9ncmVzc11dOwogCiAgICAgaWYgKCFfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbikgewog
ICAgICAgICBfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbiA9IGFkb3B0TlMoW1tXZWJTY3Jv
bGxiYXJQYXJ0QW5pbWF0aW9uIGFsbG9jXSBpbml0V2l0aFNjcm9sbGJhcjpfc2Nyb2xsYmFyCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZVRvQW5pbWF0ZTpFeHBhbnNpb25UcmFuc2l0
aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlRnJvbTpbc2Nyb2xsYmFy
UGFpbnRlciBleHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3NdCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFuaW1hdGVUbzoxLjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGR1cmF0aW9uOmR1cmF0aW9uXSk7CisgICAgICAgICAgICBmZWF0dXJlVG9BbmltYXRlOkV4
cGFuc2lvblRyYW5zaXRpb24KKyAgICAgICAgICAgIGFuaW1hdGVGcm9tOltzY3JvbGxlckltcCBl
eHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3NdCisgICAgICAgICAgICBhbmltYXRlVG86MS4wCisg
ICAgICAgICAgICBkdXJhdGlvbjpkdXJhdGlvbl0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IElmIHdlIGRvbid0IG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYW5pbWF0aW9uLCBqdXN0IHJlc2V0
IHRoZSB2YWx1ZXMgaW4gY2FzZSB0aGV5IGhhdmUgY2hhbmdlZC4KLSAgICAgICAgW19leHBhbnNp
b25UcmFuc2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBhaW50ZXIgdWlT
dGF0ZVRyYW5zaXRpb25Qcm9ncmVzc11dOworICAgICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25B
bmltYXRpb24gc2V0U3RhcnRWYWx1ZTpbc2Nyb2xsZXJJbXAgdWlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzc11dOwogICAgICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25BbmltYXRpb24gc2V0RW5kVmFs
dWU6MS4wXTsKICAgICAgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0aW9uIHNldER1cmF0
aW9uOmR1cmF0aW9uXTsKICAgICB9CkBAIC02MjYsMTcgKzYyMiwxNyBAQCBTY3JvbGxBbmltYXRv
ck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQog
ICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViU2Nyb2xs
QW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6dGhp
c10pOwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyID0gYWRvcHROUyhbW05TQ2xhc3NGcm9t
U3RyaW5nKEAiTlNTY3JvbGxBbmltYXRpb25IZWxwZXIiKSBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0
ZTptX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlLmdldCgpXSk7CiAKLSAgICBtX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViU2Nyb2xsZXJJbXBQ
YWlyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsYWJsZUFyZWE6JnNjcm9sbGFibGVBcmVh
XSk7Ci0gICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1Njcm9s
bGVySW1wUGFpciBhbGxvY10gaW5pdF0pOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIHNldERlbGVnYXRlOm1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQo
KV07Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0U2Nyb2xsZXJTdHlsZTpy
ZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKV07CisgICAgbV9zY3JvbGxlckltcENvbnRyb2xsZXJE
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhTY3JvbGxhYmxlQXJlYTomc2Nyb2xsYWJsZUFyZWFdKTsKKyAgICBtX3Njcm9sbGVySW1w
Q29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1Njcm9sbGVySW1wUGFpciBhbGxvY10gaW5pdF0pOwor
ICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3Njcm9sbGVySW1wQ29u
dHJvbGxlckRlbGVnYXRlLmdldCgpXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgc2V0
U2Nyb2xsZXJTdHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKV07CiB9CiAKIFNjcm9sbEFu
aW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMoKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKLSAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIGlu
dmFsaWRhdGVdOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldERlbGVnYXRl
Om5pbF07CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyRGVsZWdhdGUgaW52YWxpZGF0ZV07
CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW21f
aG9yaXpvbnRhbFNjcm9sbGVySW1wRGVsZWdhdGUgaW52YWxpZGF0ZV07CiAgICAgW21fdmVydGlj
YWxTY3JvbGxlckltcERlbGVnYXRlIGludmFsaWRhdGVdOwogICAgIFttX3Njcm9sbEFuaW1hdGlv
bkhlbHBlckRlbGVnYXRlIGludmFsaWRhdGVdOwpAQCAtNzc2LDM0ICs3NzIsMzQgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhV2lsbFBhaW50KCkg
Y29uc3QKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgb3ZlcmxheVNj
cm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBv
dmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgY29udGVudEFyZWFXaWxsRHJhd107CisgICAgW21f
c2Nyb2xsZXJJbXBDb250cm9sbGVyIGNvbnRlbnRBcmVhV2lsbERyYXddOwogfQogCiB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRDb250ZW50QXJlYSgpCiB7Ci0gICAgaWYgKFtt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRd
KQorICAgIGlmIChbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJ
c0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRy
b2xsZXIgbW91c2VFbnRlcmVkQ29udGVudEFyZWFdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVhKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFtt
X3Njcm9sbGVySW1wQ29udHJvbGxlciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgbW91c2VF
eGl0ZWRDb250ZW50QXJlYV07CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIG1vdXNlRXhp
dGVkQ29udGVudEFyZWFdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZU1vdmVk
SW5Db250ZW50QXJlYSgpCiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
IG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcENv
bnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsK
IAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG1vdXNlTW92ZWRJbkNvbnRlbnRB
cmVhXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgbW91c2VNb3ZlZEluQ29udGVudEFy
ZWFdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRTY3JvbGxiYXIo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNvbnN0CkBAIC04MTIsMTAgKzgwOCwxMCBAQCB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxi
YXIpIGNvbnN0CiAgICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpICE9IE5TU2Nyb2xs
ZXJTdHlsZUxlZ2FjeSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChb
bV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xs
YmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKSkKKyAgICBpZiAoTlNTY3JvbGxlcklt
cCAqcGFpbnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpKQogICAgICAg
ICBbcGFpbnRlciBtb3VzZUVudGVyZWRTY3JvbGxlcl07CiB9CiAKQEAgLTgyNSw3MyArODIxLDcz
IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJh
ciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGlmIChyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSAh
PSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChbbV9z
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkK
KyAgICBpZiAoW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNM
b2NrZWRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoTlNTY3JvbGxlckltcCAqcGFpbnRl
ciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcikpCisgICAgaWYgKE5T
U2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqc2Nyb2xsYmFy
KSkKICAgICAgICAgW3BhaW50ZXIgbW91c2VFeGl0ZWRTY3JvbGxlcl07CiB9CiAKIHZvaWQgU2Ny
b2xsQW5pbWF0b3JNYWM6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxi
YXIsIGJvb2wgbW91c2VJc0Rvd24pIGNvbnN0CiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9z
Y3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsYmFy
UGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKSkgeworICAgIGlmIChOU1Njcm9sbGVySW1w
ICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcikpIHsKICAgICAg
ICAgW3BhaW50ZXIgc2V0VHJhY2tpbmc6bW91c2VJc0Rvd25dOwogICAgICAgICBpZiAobW91c2VJ
c0Rvd24pCi0gICAgICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBiZWdpblNj
cm9sbEdlc3R1cmVdOworICAgICAgICAgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIGJlZ2lu
U2Nyb2xsR2VzdHVyZV07CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIGVuZFNjcm9sbEdlc3R1cmVdOworICAgICAgICAgICAgW21fc2Nyb2xs
ZXJJbXBDb250cm9sbGVyIGVuZFNjcm9sbEdlc3R1cmVdOwogICAgIH0KIH0KIAogdm9pZCBTY3Jv
bGxBbmltYXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiB7Ci0gICAgaWYgKFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAg
IGlmIChbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tl
ZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
IHN0YXJ0TGl2ZVJlc2l6ZV07CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIHN0YXJ0TGl2
ZVJlc2l6ZV07CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCgp
IGNvbnN0CiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlT
Y3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcENvbnRyb2xsZXIg
b3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFtt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsKKyAgICBb
bV9zY3JvbGxlckltcENvbnRyb2xsZXIgY29udGVudEFyZWFEaWRSZXNpemVdOwogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCiB7Ci0gICAgaWYgKFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQor
ICAgIGlmIChbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xv
Y2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIGVuZExpdmVSZXNpemVdOworICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBlbmRMaXZl
UmVzaXplXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93
KCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9s
bGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBvdmVy
bGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgd2luZG93T3JkZXJlZEluXTsKKyAgICBbbV9zY3JvbGxl
ckltcENvbnRyb2xsZXIgd2luZG93T3JkZXJlZEluXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6Y29udGVudEFyZWFEaWRIaWRlKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Nj
cm9sbGVySW1wQ29udHJvbGxlciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgd2luZG93T3Jk
ZXJlZE91dF07CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIHdpbmRvd09yZGVyZWRPdXRd
OwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUoKSBj
b25zdAogewotICAgIGlmIChbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBvdmVybGF5U2Ny
b2xsZXJTdGF0ZUlzTG9ja2VkXSkKKyAgICBpZiAoW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIG92
ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBbbV9z
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBiZWdpblNjcm9sbEdlc3R1cmVdOworICAgIFttX3Nj
cm9sbGVySW1wQ29udHJvbGxlciBiZWdpblNjcm9sbEdlc3R1cmVdOwogCiAjaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChtX3doZWVs
RXZlbnRUZXN0VHJpZ2dlcikKQEAgLTkwMSwxMCArODk3LDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OmRpZEJlZ2luU2Nyb2xsR2VzdHVyZSgpIGNvbnN0CiAKIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OmRpZEVuZFNjcm9sbEdlc3R1cmUoKSBjb25zdAogewotICAgIGlmIChbbV9zY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKKyAgICBp
ZiAoW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRd
KQogICAgICAgICByZXR1cm47CiAKLSAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBl
bmRTY3JvbGxHZXN0dXJlXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgZW5kU2Nyb2xs
R2VzdHVyZV07CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKG1fd2hlZWxFdmVudFRlc3RUcmlnZ2VyKQpAQCAtOTE0LDE5ICs5
MTAsMTkgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkRW5kU2Nyb2xsR2VzdHVyZSgpIGNv
bnN0CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1heUJlZ2luU2Nyb2xsR2VzdHVyZSgpIGNv
bnN0CiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3Jv
bGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3Zl
cmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGJlZ2luU2Nyb2xsR2VzdHVyZV07Ci0gICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgY29udGVudEFyZWFTY3JvbGxlZF07CisgICAgW21fc2Ny
b2xsZXJJbXBDb250cm9sbGVyIGJlZ2luU2Nyb2xsR2VzdHVyZV07CisgICAgW21fc2Nyb2xsZXJJ
bXBDb250cm9sbGVyIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpsb2NrT3ZlcmxheVNjcm9sbGJhclN0YXRlVG9IaWRkZW4oYm9vbCBzaG91bGRMb2Nr
U3RhdGUpCiB7CiAgICAgaWYgKHNob3VsZExvY2tTdGF0ZSkKLSAgICAgICAgW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIgbG9ja092ZXJsYXlTY3JvbGxlclN0YXRlOk5TT3ZlcmxheVNjcm9s
bGVyU3RhdGVIaWRkZW5dOworICAgICAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgbG9ja092
ZXJsYXlTY3JvbGxlclN0YXRlOk5TT3ZlcmxheVNjcm9sbGVyU3RhdGVIaWRkZW5dOwogICAgIGVs
c2UgewotICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciB1bmxvY2tPdmVybGF5
U2Nyb2xsZXJTdGF0ZV07CisgICAgICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciB1bmxvY2tP
dmVybGF5U2Nyb2xsZXJTdGF0ZV07CiAKICAgICAgICAgLy8gV2UgbmV2ZXIgdXBkYXRlIHNjcm9s
bGVyIHN0eWxlIGZvciBQYWludGVyQ29udHJvbGxlcnMgdGhhdCBhcmUgbG9ja2VkLiBJZiB3ZSBo
YXZlIGEgcGVuZGluZwogICAgICAgICAvLyBuZWVkIHRvIHVwZGF0ZSB0aGUgc3R5bGUsIGRvIGl0
IG9uY2Ugd2UndmUgdW5sb2NrZWQgdGhlIHNjcm9sbGVyIHN0YXRlLgpAQCAtOTM3LDEyICs5MzMs
MTIgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRv
SGlkZGVuKGJvb2wgc2hvdWxkTG9ja1N0YXRlKQogCiBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpz
Y3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdAogewotICAgIHJldHVybiAhW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF07CisgICAgcmV0
dXJuICFbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tl
ZF07CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFy
KFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewotICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBz
Y3JvbGxiYXJQYWludGVyRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOworICAgIE5TU2Nyb2xsZXJJ
bXAgKnBhaW50ZXIgPSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKICAgICBp
ZiAoIXBhaW50ZXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTUzLDE0ICs5NDksMTQgQEAgdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIpCiAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gc2Nyb2xsYmFyLT5zY3Jv
bGxhYmxlQXJlYSgpLmxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgW3BhaW50
ZXIgc2V0TGF5ZXI6bGF5ZXItPnBsYXRmb3JtTGF5ZXIoKV07CiAKLSAgICBbbV9zY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlciBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOworICAgIFtt
X3Njcm9sbGVySW1wQ29udHJvbGxlciBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOwog
ICAgIGlmIChzY3JvbGxhYmxlQXJlYSgpLmluTGl2ZVJlc2l6ZSgpKQogICAgICAgICBbcGFpbnRl
ciBzZXRLbm9iQWxwaGE6MV07CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1v
dmVWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKLSAgICBOU1Njcm9s
bGVySW1wICpwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFy
KTsKKyAgICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIo
KnNjcm9sbGJhcik7CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTk2
OSwxMiArOTY1LDEyIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNh
bFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKICAgICBtX3ZlcnRpY2FsU2Nyb2xsZXJJ
bXBEZWxlZ2F0ZSA9IG51bGxwdHI7CiAKICAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOwot
ICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6
bmlsXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgc2V0VmVydGljYWxTY3JvbGxlcklt
cDpuaWxdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsU2Ny
b2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewotICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50
ZXIgPSBzY3JvbGxiYXJQYWludGVyRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOworICAgIE5TU2Ny
b2xsZXJJbXAgKnBhaW50ZXIgPSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsK
ICAgICBpZiAoIXBhaW50ZXIpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTg1LDE0ICs5ODEsMTQg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3Jv
bGxiYXIqIHNjcm9sbGJhcikKICAgICBpZiAoR3JhcGhpY3NMYXllciogbGF5ZXIgPSBzY3JvbGxi
YXItPnNjcm9sbGFibGVBcmVhKCkubGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCiAgICAg
ICAgIFtwYWludGVyIHNldExheWVyOmxheWVyLT5wbGF0Zm9ybUxheWVyKCldOwogCi0gICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0SG9yaXpvbnRhbFNjcm9sbGVySW1wOnBhaW50
ZXJdOworICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJ
bXA6cGFpbnRlcl07CiAgICAgaWYgKHNjcm9sbGFibGVBcmVhKCkuaW5MaXZlUmVzaXplKCkpCiAg
ICAgICAgIFtwYWludGVyIHNldEtub2JBbHBoYToxXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
CiB7Ci0gICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3Jv
bGxiYXIoKnNjcm9sbGJhcik7CisgICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGVy
SW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOwogICAgIGlmICghcGFpbnRlcikKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xMDAxLDEyICs5OTcsMTIgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAg
bV9ob3Jpem9udGFsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSA9IG51bGxwdHI7CiAKICAgICBbcGFpbnRl
ciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNl
dEhvcml6b250YWxTY3JvbGxlckltcDpuaWxdOworICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxl
ciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6bmlsXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6aW52YWxpZGF0ZVNjcm9sbGJhclBhcnRMYXllcnMoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
CiB7Ci0gICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3Jv
bGxiYXIoKnNjcm9sbGJhcik7CisgICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGVy
SW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOwogICAgIFtwYWludGVyIHNldE5lZWRzRGlzcGxh
eTpZRVNdOwogfQogCkBAIC0xMDE3LDcgKzEwMTMsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
Ojp2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkKICAgICBpZiAoIXNjcm9sbGJhcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGJh
clBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7CisgICAgTlNTY3JvbGxlckltcCAqcGFp
bnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOwogICAgIGlmICghcGFp
bnRlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDMxLDcgKzEwMjcsNyBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpob3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2UoKQogICAgIGlm
ICghc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU1Njcm9sbGVySW1wICpwYWlu
dGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKKyAgICBOU1Nj
cm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7
CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTEwNDgsNyArMTA0NCw3
IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFNjcm9sbGJhclBhcnRpY2lwYXRlSW5I
aXRUZXN0aW5nKFNjcm9sbGJhciogc2Nyb2xsCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
Ly8gT3ZlcmxheSBzY3JvbGxiYXJzIHNob3VsZCBwYXJ0aWNpcGF0ZSBpbiBoaXQgdGVzdGluZyB3
aGVuZXZlciB0aGV5IGFyZSBhdCBhbGwgdmlzaWJsZS4KLSAgICBOU1Njcm9sbGVySW1wICpwYWlu
dGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKKyAgICBOU1Nj
cm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7
CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIFtw
YWludGVyIGtub2JBbHBoYV0gPiAwOwpAQCAtMTA1OSw3ICsxMDU1LDcgQEAgdm9pZCBTY3JvbGxB
bmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9hdFNpemUmIGRl
bHRhKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5n
IGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQogICAgIC8vIGlzbid0IHJlYWxseSBz
Y3JvbGxpbmcgaW4gdGhhdCBjYXNlLiBXZSBzaG91bGQgb25seSBwYXNzIHRoZSBtZXNzYWdlIG9u
IHRvIHRoZQogICAgIC8vIFNjcm9sbGVySW1wUGFpciB3aGVuIHdlJ3JlIHJlYWxseSBzY3JvbGxp
bmcgb24gYW4gYWN0aXZlIHBhZ2UuCi0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlcklt
cENvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLmlzSGFuZGxpbmdXaGVlbEV2ZW50KCkpCkBA
IC0xMjg0LDcgKzEyODAsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3Jv
bGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1
cGRhdGVTY3JvbGxlclN0eWxlKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pIHsKKyAgICBpZiAoW21fc2Nyb2xs
ZXJJbXBDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKSB7CiAgICAgICAg
IG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTEyOTcsMTYgKzEyOTMsMTYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRl
U2Nyb2xsZXJTdHlsZSgpCiAgICAgCiAgICAgbWFjVGhlbWUtPnVzZXNPdmVybGF5U2Nyb2xsYmFy
c0NoYW5nZWQoKTsKIAotICAgIE5TU2Nyb2xsZXJTdHlsZSBuZXdTdHlsZSA9IFttX3Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyIHNjcm9sbGVyU3R5bGVdOworICAgIE5TU2Nyb2xsZXJTdHlsZSBu
ZXdTdHlsZSA9IFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBzY3JvbGxlclN0eWxlXTsKIAogICAg
IGlmIChTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyID0gc2Nyb2xsYWJsZUFyZWEoKS52ZXJ0
aWNhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyLT5pbnZhbGlkYXRl
KCk7CiAKLSAgICAgICAgTlNTY3JvbGxlckltcCAqb2xkVmVydGljYWxQYWludGVyID0gW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgdmVydGljYWxTY3JvbGxlckltcF07CisgICAgICAgIE5T
U2Nyb2xsZXJJbXAgKm9sZFZlcnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGVySW1wQ29udHJvbGxl
ciB2ZXJ0aWNhbFNjcm9sbGVySW1wXTsKICAgICAgICAgTlNTY3JvbGxlckltcCAqbmV3VmVydGlj
YWxQYWludGVyID0gW05TU2Nyb2xsZXJJbXAgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUg
Y29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpdmVydGljYWxTY3JvbGxiYXItPmNvbnRyb2xTaXpl
KCkgaG9yaXpvbnRhbDpOTyByZXBsYWNpbmdTY3JvbGxlckltcDpvbGRWZXJ0aWNhbFBhaW50ZXJd
OwogICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbGJhckxheW91dERpcmVjdGlvbihu
ZXdWZXJ0aWNhbFBhaW50ZXIpOwogCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmV3VmVydGljYWxQYWludGVyXTsKKyAgICAgICAg
W21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmV3VmVydGlj
YWxQYWludGVyXTsKICAgICAgICAgbWFjVGhlbWUtPnNldE5ld1BhaW50ZXJGb3JTY3JvbGxiYXIo
KnZlcnRpY2FsU2Nyb2xsYmFyLCBuZXdWZXJ0aWNhbFBhaW50ZXIpOwogCiAgICAgICAgIC8vIFRo
ZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZlcmVudCB0aGlja25lc3Nlcywg
c28gd2UgbXVzdCByZS1zZXQgdGhlIApAQCAtMTMxOSwxMSArMTMxNSwxMSBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0eWxlKCkKICAgICBpZiAoU2Nyb2xsYmFyKiBo
b3Jpem9udGFsU2Nyb2xsYmFyID0gc2Nyb2xsYWJsZUFyZWEoKS5ob3Jpem9udGFsU2Nyb2xsYmFy
KCkpIHsKICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwogCi0gICAg
ICAgIE5TU2Nyb2xsZXJJbXAgKm9sZEhvcml6b250YWxQYWludGVyID0gW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIgaG9yaXpvbnRhbFNjcm9sbGVySW1wXTsKKyAgICAgICAgTlNTY3JvbGxl
ckltcCAqb2xkSG9yaXpvbnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgaG9y
aXpvbnRhbFNjcm9sbGVySW1wXTsKICAgICAgICAgTlNTY3JvbGxlckltcCAqbmV3SG9yaXpvbnRh
bFBhaW50ZXIgPSBbTlNTY3JvbGxlckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSBj
b250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlob3Jpem9udGFsU2Nyb2xsYmFyLT5jb250cm9sU2l6
ZSgpIGhvcml6b250YWw6WUVTIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZEhvcml6b250YWxQYWlu
dGVyXTsKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxiYXJMYXlvdXREaXJlY3Rp
b24obmV3SG9yaXpvbnRhbFBhaW50ZXIpOwogCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyIHNldEhvcml6b250YWxTY3JvbGxlckltcDpuZXdIb3Jpem9udGFsUGFpbnRlcl07
CisgICAgICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJ
bXA6bmV3SG9yaXpvbnRhbFBhaW50ZXJdOwogICAgICAgICBtYWNUaGVtZS0+c2V0TmV3UGFpbnRl
ckZvclNjcm9sbGJhcigqaG9yaXpvbnRhbFNjcm9sbGJhciwgbmV3SG9yaXpvbnRhbFBhaW50ZXIp
OwogCiAgICAgICAgIC8vIFRoZSBkaWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZl
cmVudCB0aGlja25lc3Nlcywgc28gd2UgbXVzdCByZS1zZXQgdGhlIApAQCAtMTM1OSw4ICsxMzU1
LDggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJG
aXJlZCgpCiB7CiAgICAgLy8gVG8gZm9yY2UgdGhlIHNjcm9sbGJhcnMgdG8gZmxhc2gsIHdlIGhh
dmUgdG8gY2FsbCBoaWRlIGZpcnN0LiBPdGhlcndpc2UsIHRoZSBTY3JvbGxlckltcFBhaXIKICAg
ICAvLyBtaWdodCB0aGluayB0aGF0IHRoZSBzY3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcg
YW5kIGJhaWwgZWFybHkuCi0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgaGlkZU92
ZXJsYXlTY3JvbGxlcnNdOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGZsYXNo
U2Nyb2xsZXJzXTsKKyAgICBbbV9zY3JvbGxlckltcENvbnRyb2xsZXIgaGlkZU92ZXJsYXlTY3Jv
bGxlcnNdOworICAgIFttX3Njcm9sbGVySW1wQ29udHJvbGxlciBmbGFzaFNjcm9sbGVyc107CiB9
CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNlbmRDb250ZW50QXJlYVNjcm9sbGVkU29vbihj
b25zdCBGbG9hdFNpemUmIGRlbHRhKQpAQCAtMTM3Niw3ICsxMzcyLDcgQEAgdm9pZCBTY3JvbGxB
bmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRTb29uKGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNlbmRDb250ZW50QXJlYVNjcm9sbGVk
KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgY29udGVudEFyZWFTY3JvbGxlZEluRGlyZWN0aW9uOk5TTWFrZVBvaW50KGRlbHRhLndp
ZHRoKCksIGRlbHRhLmhlaWdodCgpKV07CisgICAgW21fc2Nyb2xsZXJJbXBDb250cm9sbGVyIGNv
bnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjpOU01ha2VQb2ludChkZWx0YS53aWR0aCgpLCBk
ZWx0YS5oZWlnaHQoKSldOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzZW5kQ29udGVu
dEFyZWFTY3JvbGxlZFRpbWVyRmlyZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDliZDIzY2UwNGJkM2M0NzI2YTY2YzBiNzQ5
ZDI5MjgwZGM4NWEyY2IuLjQwMTEwZjcyM2YwZjQzNDMxNTlhZjFiNGQwOTQ1YWQxMzA3YzVkNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
bW0KQEAgLTE1OSw5ICsxNTksOSBAQCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpyZWdpc3RlclNj
cm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9v
bCBpc0hvcml6b250YWwgPSBzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyOwotICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGJhclBhaW50ZXIgPSBbTlNTY3JvbGxl
ckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250
cm9sU2l6ZTpzY3JvbGxiYXJDb250cm9sU2l6ZVRvTlNDb250cm9sU2l6ZShzY3JvbGxiYXIuY29u
dHJvbFNpemUoKSkgaG9yaXpvbnRhbDppc0hvcml6b250YWwgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6
bmlsXTsKLSAgICBzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxiYXJMYXlvdXRE
aXJlY3Rpb24oc2Nyb2xsYmFyUGFpbnRlcik7Ci0gICAgc2Nyb2xsYmFyTWFwKCktPmFkZCgmc2Ny
b2xsYmFyLCBzY3JvbGxiYXJQYWludGVyKTsKKyAgICBOU1Njcm9sbGVySW1wICpzY3JvbGxlcklt
cCA9IFtOU1Njcm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxlOnJlY29tbWVuZGVkU2Nyb2xs
ZXJTdHlsZSgpIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXpl
KHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKSBob3Jpem9udGFsOmlzSG9yaXpvbnRhbCByZXBsYWNp
bmdTY3JvbGxlckltcDpuaWxdOworICAgIHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNldFNj
cm9sbGJhckxheW91dERpcmVjdGlvbihzY3JvbGxlckltcCk7CisgICAgc2Nyb2xsYmFyTWFwKCkt
PmFkZCgmc2Nyb2xsYmFyLCBzY3JvbGxlckltcCk7CiAgICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNj
cm9sbGJhcik7CiAgICAgdXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKHNjcm9sbGJhcik7CiB9
CkBAIC0yMjMsOSArMjIzLDkgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6cHJlZmVyZW5jZXND
aGFuZ2VkKCkKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9s
bGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKLSAgICBOU1Njcm9sbGVySW1wICpzY3JvbGxiYXJQYWludGVyID0gW05TU2Nyb2xs
ZXJJbXAgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6cmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCkgY29u
dHJvbFNpemU6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJvbFNpemUoY29udHJvbFNpemUp
IGhvcml6b250YWw6Tk8gcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKLSAgICBbc2Nyb2xsYmFy
UGFpbnRlciBzZXRFeHBhbmRlZDpZRVNdOwotICAgIHJldHVybiBbc2Nyb2xsYmFyUGFpbnRlciB0
cmFja0JveFdpZHRoXTsKKyAgICBOU1Njcm9sbGVySW1wICpzY3JvbGxlckltcCA9IFtOU1Njcm9s
bGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxlOnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNv
bnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKGNvbnRyb2xTaXpl
KSBob3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07CisgICAgW3Njcm9sbGVy
SW1wIHNldEV4cGFuZGVkOllFU107CisgICAgcmV0dXJuIFtzY3JvbGxlckltcCB0cmFja0JveFdp
ZHRoXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCkBAIC01MDgsMTcgKzUw
OCwxNyBAQCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRQYWludENoYXJhY3RlcmlzdGljc0Zv
clNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcgogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiB9CiAKLXN0YXRpYyB2b2lkIHNjcm9sbGJhclBhaW50ZXJQYWludChOU1Njcm9sbGVy
SW1wICpzY3JvbGxiYXJQYWludGVyLCBib29sIGVuYWJsZWQpCitzdGF0aWMgdm9pZCBzY3JvbGxl
ckltcFBhaW50KE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVySW1wLCBib29sIGVuYWJsZWQpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIC8vIFVzZSByZWN0Rm9yUGFydDog
aGVyZTsgaXQgd2lsbCB0YWtlIHRoZSBleHBhbnNpb24gdHJhbnNpdGlvbiBwcm9ncmVzcyBpbnRv
IGFjY291bnQuCi0gICAgTlNSZWN0IHRyYWNrUmVjdCA9IFtzY3JvbGxiYXJQYWludGVyIHJlY3RG
b3JQYXJ0Ok5TU2Nyb2xsZXJLbm9iU2xvdF07Ci0gICAgW3Njcm9sbGJhclBhaW50ZXIgZHJhd0tu
b2JTbG90SW5SZWN0OnRyYWNrUmVjdCBoaWdobGlnaHQ6Tk9dOworICAgIE5TUmVjdCB0cmFja1Jl
Y3QgPSBbc2Nyb2xsZXJJbXAgcmVjdEZvclBhcnQ6TlNTY3JvbGxlcktub2JTbG90XTsKKyAgICBb
c2Nyb2xsZXJJbXAgZHJhd0tub2JTbG90SW5SZWN0OnRyYWNrUmVjdCBoaWdobGlnaHQ6Tk9dOwog
CiAgICAgLy8gSWYgdGhlIHNjcm9sbGJhciBpcyBub3QgZW5hYmxlZCwgdGhlbiB0aGVyZSBpcyBu
b3RoaW5nIHRvIHNjcm9sbCB0bywgYW5kIHdlIHNob3VsZG4ndAogICAgIC8vIGNhbGwgZHJhd0tu
b2IuCiAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIFtzY3JvbGxiYXJQYWludGVyIGRyYXdLbm9i
XTsKKyAgICAgICAgW3Njcm9sbGVySW1wIGRyYXdLbm9iXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogfQogCkBAIC01MjYsMTUgKzUyNiwxNiBAQCBib29sIFNjcm9sbGJhclRoZW1l
TWFjOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjbwogewogICAgIHNldFBhaW50Q2hhcmFjdGVyaXN0aWNzRm9yU2Nyb2xsYmFyKHNjcm9sbGJh
cik7CiAKLSAgICBpZiAoIXNjcm9sbGJhci5zdXBwb3J0c1VwZGF0ZU9uU2Vjb25kYXJ5VGhyZWFk
KCkpIHsKLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlzQ3VycmVudGx5RHJhd2luZ0lu
dG9MYXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllciwgY29udGV4dC5pc0NBTGF5ZXJD
b250ZXh0KCkpOworICAgIGlmIChzY3JvbGxiYXIuc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRo
cmVhZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFRlbXBvcmFyeUNoYW5nZTxib29s
PiBpc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIoZ19pc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5
ZXIsIGNvbnRleHQuaXNDQUxheWVyQ29udGV4dCgpKTsKICAgICAKLSAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgICAgICBjb250ZXh0LmNs
aXAoZGFtYWdlUmVjdCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHNjcm9sbGJhci5mcmFt
ZVJlY3QoKS54KCksIHNjcm9sbGJhci5mcmFtZVJlY3QoKS55KCkpOwotICAgICAgICBMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQpOwotICAgICAgICBzY3Jv
bGxiYXJQYWludGVyUGFpbnQoc2Nyb2xsYmFyTWFwKCktPmdldCgmc2Nyb2xsYmFyKS5nZXQoKSwg
c2Nyb2xsYmFyLmVuYWJsZWQoKSk7Ci0gICAgfQorICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICBjb250ZXh0LmNsaXAoZGFtYWdlUmVjdCk7Cisg
ICAgY29udGV4dC50cmFuc2xhdGUoc2Nyb2xsYmFyLmZyYW1lUmVjdCgpLngoKSwgc2Nyb2xsYmFy
LmZyYW1lUmVjdCgpLnkoKSk7CisgICAgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0IGxvY2Fs
Q29udGV4dChjb250ZXh0KTsKKyAgICBzY3JvbGxlckltcFBhaW50KHNjcm9sbGJhck1hcCgpLT5n
ZXQoJnNjcm9sbGJhcikuZ2V0KCksIHNjcm9sbGJhci5lbmFibGVkKCkpOwogCiAgICAgcmV0dXJu
IHRydWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275104</attachid>
            <date>2016-03-29 10:37:17 -0700</date>
            <delta_ts>2016-03-29 12:04:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155976-20160329103721.patch</filename>
            <type>text/plain</type>
            <size>33601</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2MzU3M2I0ZWUyODE4
ZWIyODc5Njk2Nzk3MmViZTlkZjczZWQ5MC4uMTY4NTMzNjBjYThkOTI5YjNlYTg5MWI5MWVhNjYw
ZjFkZDQ2MDk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDE2LTAzLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBS
ZW5hbWUgU2Nyb2xsYmFyUGFpbnRlciB2YXJpYWJsZXMgdG8gU2Nyb2xsZXJJbXAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTk3NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY29udGlu
dWVzIHdoZXJlIHIxOTgwNzggbGVmdCBvZmYuIFRoYXQgcGF0Y2ggcmVuYW1lZCBhbGwgdGhlIHR5
cGVzLAorICAgICAgICBob3dldmVyLCB0aGVyZSBhcmUgc29tZSB2YXJpYWJsZXMgd2hpY2ggd2Vy
ZSBsZWZ0IGFzICJzY3JvbGxiYXJQYWludGVyIi4gVGhpcworICAgICAgICBwYXRjaCBjb21wbGV0
ZXMgdGhlIHRyYW5zaXRpb24gdG8gU2Nyb2xsZXJJbXAuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAoc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIpOgorICAg
ICAgICAoLVtXZWJTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZSBzY3JvbGxlckltcFBhaXI6Y29udmVy
dENvbnRlbnRQb2ludDp0b1Njcm9sbGVySW1wOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YXJ0QW5pbWF0aW9uIHN0YXJ0QW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBh
cnRBbmltYXRpb24gc2V0Q3VycmVudFByb2dyZXNzOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxl
ckltcERlbGVnYXRlIG1vdXNlTG9jYXRpb25JblNjcm9sbGVyRm9yU2Nyb2xsZXJJbXA6XSk6Cisg
ICAgICAgICgtW1dlYlNjcm9sbGVySW1wRGVsZWdhdGUgc2Nyb2xsZXJJbXA6YW5pbWF0ZUtub2JB
bHBoYVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxlckltcERlbGVnYXRlIHNj
cm9sbGVySW1wOmFuaW1hdGVUcmFja0FscGhhVG86ZHVyYXRpb246XSk6CisgICAgICAgICgtW1dl
YlNjcm9sbGVySW1wRGVsZWdhdGUgc2Nyb2xsZXJJbXA6YW5pbWF0ZVVJU3RhdGVUcmFuc2l0aW9u
V2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxlckltcERlbGVnYXRlIHNjcm9s
bGVySW1wOmFuaW1hdGVFeHBhbnNpb25UcmFuc2l0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhV2lsbFBhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRDb250ZW50
QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFeGl0ZWRD
b250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bW91c2VN
b3ZlZEluQ29udGVudEFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6
Om1vdXNlRW50ZXJlZFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6bW91c2VFeGl0ZWRTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OndpbGxTdGFydExpdmVSZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6d2lsbEVuZExpdmVSZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRBcmVhRGlkU2hvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRIaWRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEVuZFNjcm9sbEdlc3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om1heUJlZ2luU2Nyb2xsR2VzdHVyZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bG9ja092ZXJsYXlTY3JvbGxiYXJT
dGF0ZVRvSGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGxiYXJzQ2FuQmVBY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6
OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjp3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFy
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjppbnZhbGlkYXRlU2Nyb2xs
YmFyUGFydExheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dmVy
dGljYWxTY3JvbGxiYXJMYXllckRpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aG9yaXpvbnRhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzaG91bGRTY3JvbGxiYXJQYXJ0aWNpcGF0ZUlu
SGl0VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5
Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xsZWQpOgorICAgICAgICAo
c2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVNYWM6OnJlZ2lzdGVyU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lTWFjOjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xs
ZXJJbXBQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6c2Nyb2xsYmFyUGFpbnRlclBhaW50KTogRGVsZXRlZC4KKwor
MjAxNi0wMy0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCiAg
ICAgICAgIFtPUyBYXSBbUlRMIFNjcm9sbGJhcnNdIE92ZXJsYXkgUlRMIHNjcm9sbGJhcnMgYW5p
bWF0ZSBpbiBmcm9tIHRoZSB3cm9uZyBzaWRlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU5NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCBkZTYyZmUxMjRiY2YwODYwZmY1NTZhZDNh
MmVmNDY2Y2Y1NGY3MDQxLi5hOWZhYjdkODU1MGYyN2JkOGU4YzlmMWFmNDQwY2RiMzAwZGIyY2Nh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aApAQCAtNjksOCArNjksOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZD4gbV9zY3JvbGxB
bmltYXRpb25IZWxwZXI7CiAgICAgUmV0YWluUHRyPFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwogCi0gICAgUmV0YWluUHRy
PFNjcm9sbGVySW1wUGFpcj4gbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcjsKLSAgICBSZXRh
aW5QdHI8V2ViU2Nyb2xsZXJJbXBQYWlyRGVsZWdhdGU+IG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJEZWxlZ2F0ZTsKKyAgICBSZXRhaW5QdHI8U2Nyb2xsZXJJbXBQYWlyPiBtX3Njcm9sbGVy
SW1wUGFpcjsKKyAgICBSZXRhaW5QdHI8V2ViU2Nyb2xsZXJJbXBQYWlyRGVsZWdhdGU+IG1fc2Ny
b2xsZXJJbXBQYWlyRGVsZWdhdGU7CiAgICAgUmV0YWluUHRyPFdlYlNjcm9sbGVySW1wRGVsZWdh
dGU+IG1faG9yaXpvbnRhbFNjcm9sbGVySW1wRGVsZWdhdGU7CiAgICAgUmV0YWluUHRyPFdlYlNj
cm9sbGVySW1wRGVsZWdhdGU+IG1fdmVydGljYWxTY3JvbGxlckltcERlbGVnYXRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXgg
ZTRjZDIzZmVlM2U1ZmViZGFhZTcwMmRmNTY3NmQzMmZmZjAwNWY0Yy4uZTBmMjMwZmM5NGI4NWI0
MWRiNDlkMGIyOTFlMWRmZWQ4OTdmMDhlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgU2Ny
b2xsYmFyVGhlbWVNYWMqIG1hY1Njcm9sbGJhclRoZW1lKCkKICAgICByZXR1cm4gIXNjcm9sbGJh
clRoZW1lLmlzTW9ja1RoZW1lKCkgPyBzdGF0aWNfY2FzdDxTY3JvbGxiYXJUaGVtZU1hYyo+KCZz
Y3JvbGxiYXJUaGVtZSkgOiBudWxscHRyOwogfQogCi1zdGF0aWMgTlNTY3JvbGxlckltcCAqc2Ny
b2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcikKK3N0YXRpYyBO
U1Njcm9sbGVySW1wICpzY3JvbGxlckltcEZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJh
cikKIHsKICAgICBpZiAoU2Nyb2xsYmFyVGhlbWVNYWMqIHNjcm9sbGJhclRoZW1lID0gbWFjU2Ny
b2xsYmFyVGhlbWUoKSkKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclRoZW1lLT5wYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CkBAIC0yMzYsNyArMjM2LDcgQEAgLSAoTlNQb2ludClzY3Jv
bGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJbXBQYWlyIGNvbnZlcnRD
b250ZW50UG8KICAgICBpZiAoIXNjcm9sbGJhcikKICAgICAgICAgcmV0dXJuIE5TWmVyb1BvaW50
OwogCi0gICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxi
YXIoKnNjcm9sbGJhcikpOworICAgIEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZv
clNjcm9sbGJhcigqc2Nyb2xsYmFyKSk7CiAKICAgICByZXR1cm4gc2Nyb2xsYmFyLT5jb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3KFdlYkNvcmU6OkludFBvaW50KHBvaW50SW5Db250ZW50QXJlYSkp
OwogfQpAQCAtMjc3LDcgKzI3Nyw3IEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiBAaW50ZXJm
YWNlIFdlYlNjcm9sbGJhclBhcnRBbmltYXRpb24gOiBOU0FuaW1hdGlvbgogewogICAgIFNjcm9s
bGJhciogX3Njcm9sbGJhcjsKLSAgICBSZXRhaW5QdHI8TlNTY3JvbGxlckltcD4gX3Njcm9sbGJh
clBhaW50ZXI7CisgICAgUmV0YWluUHRyPE5TU2Nyb2xsZXJJbXA+IF9zY3JvbGxlckltcDsKICAg
ICBGZWF0dXJlVG9BbmltYXRlIF9mZWF0dXJlVG9BbmltYXRlOwogICAgIENHRmxvYXQgX3N0YXJ0
VmFsdWU7CiAgICAgQ0dGbG9hdCBfZW5kVmFsdWU7CkBAIC0zMDcsNyArMzA3LDcgQEAgLSAodm9p
ZClzdGFydEFuaW1hdGlvbgogewogICAgIEFTU0VSVChfc2Nyb2xsYmFyKTsKIAotICAgIF9zY3Jv
bGxiYXJQYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJhcik7
CisgICAgX3Njcm9sbGVySW1wID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKl9zY3JvbGxiYXIp
OwogCiAgICAgW3N1cGVyIHN0YXJ0QW5pbWF0aW9uXTsKIH0KQEAgLTMzNiwxNiArMzM2LDE2IEBA
IC0gKHZvaWQpc2V0Q3VycmVudFByb2dyZXNzOihOU0FuaW1hdGlvblByb2dyZXNzKXByb2dyZXNz
CiAKICAgICBzd2l0Y2ggKF9mZWF0dXJlVG9BbmltYXRlKSB7CiAgICAgY2FzZSBUaHVtYkFscGhh
OgotICAgICAgICBbX3Njcm9sbGJhclBhaW50ZXIgc2V0S25vYkFscGhhOmN1cnJlbnRWYWx1ZV07
CisgICAgICAgIFtfc2Nyb2xsZXJJbXAgc2V0S25vYkFscGhhOmN1cnJlbnRWYWx1ZV07CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgVHJhY2tBbHBoYToKLSAgICAgICAgW19zY3JvbGxiYXJQYWlu
dGVyIHNldFRyYWNrQWxwaGE6Y3VycmVudFZhbHVlXTsKKyAgICAgICAgW19zY3JvbGxlckltcCBz
ZXRUcmFja0FscGhhOmN1cnJlbnRWYWx1ZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVUlT
dGF0ZVRyYW5zaXRpb246Ci0gICAgICAgIFtfc2Nyb2xsYmFyUGFpbnRlciBzZXRVaVN0YXRlVHJh
bnNpdGlvblByb2dyZXNzOmN1cnJlbnRWYWx1ZV07CisgICAgICAgIFtfc2Nyb2xsZXJJbXAgc2V0
VWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzczpjdXJyZW50VmFsdWVdOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEV4cGFuc2lvblRyYW5zaXRpb246Ci0gICAgICAgIFtfc2Nyb2xsYmFyUGFpbnRl
ciBzZXRFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVlXTsKKyAgICAgICAg
W19zY3JvbGxlckltcCBzZXRFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVl
XTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC00MzYsNyArNDM2LDcgQEAgLSAoTlNQb2lu
dCltb3VzZUxvY2F0aW9uSW5TY3JvbGxlckZvclNjcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICop
c2Nyb2xsZXJJbXAKICAgICBpZiAoIV9zY3JvbGxiYXIpCiAgICAgICAgIHJldHVybiBOU1plcm9Q
b2ludDsKIAotICAgIEFTU0VSVF9VTlVTRUQoc2Nyb2xsZXJJbXAsIHNjcm9sbGVySW1wID09IHNj
cm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9zY3JvbGxiYXIpKTsKKyAgICBBU1NFUlRfVU5V
U0VEKHNjcm9sbGVySW1wLCBzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigq
X3Njcm9sbGJhcikpOwogCiAgICAgcmV0dXJuIF9zY3JvbGxiYXItPmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXcoX3Njcm9sbGJhci0+c2Nyb2xsYWJsZUFyZWEoKS5sYXN0S25vd25Nb3VzZVBvc2l0
aW9uKCkpOwogfQpAQCAtNTAzLDcgKzUwMyw3IEBAIC0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Ny
b2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmltYXRlS25vYkFscGhhVG86KENHRmxvYXQpbmV3CiAg
ICAgaWYgKCFfc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoc2Nyb2xs
ZXJJbXAgPT0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJhcikpOworICAg
IEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqX3Njcm9sbGJh
cikpOwogCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJQYWludGVyID0gKE5TU2Nyb2xsZXJJ
bXAgKilzY3JvbGxlckltcDsKICAgICBpZiAoIVtzZWxmIHNjcm9sbEFuaW1hdG9yXS0+c2Nyb2xs
YmFyc0NhbkJlQWN0aXZlKCkpIHsKQEAgLTUyNiw3ICs1MjYsNyBAQCAtICh2b2lkKXNjcm9sbGVy
SW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZVRyYWNrQWxwaGFUbzooQ0dG
bG9hdCluZQogICAgIGlmICghX3Njcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9zY3JvbGxi
YXIpKTsKKyAgICBBU1NFUlQoc2Nyb2xsZXJJbXAgPT0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIo
Kl9zY3JvbGxiYXIpKTsKIAogICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVyUGFpbnRlciA9IChO
U1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXA7CiAgICAgW3NlbGYgc2V0VXBBbHBoYUFuaW1hdGlv
bjpfdHJhY2tBbHBoYUFuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVyIHBh
cnQ6V2ViQ29yZTo6QmFja1RyYWNrUGFydCBhbmltYXRlQWxwaGFUbzpuZXdUcmFja0FscGhhIGR1
cmF0aW9uOmR1cmF0aW9uXTsKQEAgLTUzNywyNiArNTM3LDI0IEBAIC0gKHZvaWQpc2Nyb2xsZXJJ
bXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmltYXRlVUlTdGF0ZVRyYW5zaXRpb25X
aXRoRHVyCiAgICAgaWYgKCFfc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NF
UlQoc2Nyb2xsZXJJbXAgPT0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqX3Njcm9sbGJh
cikpOwotCi0gICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsYmFyUGFpbnRlciA9IChOU1Njcm9sbGVy
SW1wICopc2Nyb2xsZXJJbXA7CisgICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGVySW1w
Rm9yU2Nyb2xsYmFyKCpfc2Nyb2xsYmFyKSk7CiAKICAgICAvLyBVSVN0YXRlVHJhbnNpdGlvbiBh
bHdheXMgYW5pbWF0ZXMgdG8gMS4gSW4gY2FzZSBhbiBhbmltYXRpb24gaXMgaW4gcHJvZ3Jlc3Mg
dGhpcyBhdm9pZHMgYSBoYXJkIHRyYW5zaXRpb24uCi0gICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0
VWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzczoxIC0gW3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0
aW9uUHJvZ3Jlc3NdXTsKKyAgICBbc2Nyb2xsZXJJbXAgc2V0VWlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzczoxIC0gW3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3NdXTsKIAogICAg
IC8vIElmIHRoZSBVSSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGhhcHBlbmluZywgdGhlbiB3ZSBhcmUg
bm8gbG9uZ2VyIG1vdmluZyB0aGUgc2Nyb2xsYmFyIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgog
ICAgIGlmIChfc2Nyb2xsYmFyLT5zdXBwb3J0c1VwZGF0ZU9uU2Vjb25kYXJ5VGhyZWFkKCkpCi0g
ICAgICAgIFtzY3JvbGxiYXJQYWludGVyIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOk5PXTsKKyAg
ICAgICAgW3Njcm9sbGVySW1wIHNldFVzZVByZXNlbnRhdGlvblZhbHVlOk5PXTsKIAogICAgIGlm
ICghX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uKQotICAgICAgICBfdWlTdGF0ZVRyYW5zaXRp
b25BbmltYXRpb24gPSBhZG9wdE5TKFtbV2ViU2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBhbGxvY10g
aW5pdFdpdGhTY3JvbGxiYXI6X3Njcm9sbGJhciAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVh
dHVyZVRvQW5pbWF0ZTpVSVN0YXRlVHJhbnNpdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFuaW1hdGVGcm9tOltzY3JvbGxiYXJQYWludGVyIHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jl
c3NdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlVG86MS4wCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZHVyYXRpb25dKTsKKyAgICAgICAgX3Vp
U3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uID0gYWRvcHROUyhbW1dlYlNjcm9sbGJhclBhcnRBbmlt
YXRpb24gYWxsb2NdIGluaXRXaXRoU2Nyb2xsYmFyOl9zY3JvbGxiYXIKKyAgICAgICAgICAgIGZl
YXR1cmVUb0FuaW1hdGU6VUlTdGF0ZVRyYW5zaXRpb24KKyAgICAgICAgICAgIGFuaW1hdGVGcm9t
OltzY3JvbGxlckltcCB1aVN0YXRlVHJhbnNpdGlvblByb2dyZXNzXQorICAgICAgICAgICAgYW5p
bWF0ZVRvOjEuMAorICAgICAgICAgICAgZHVyYXRpb246ZHVyYXRpb25dKTsKICAgICBlbHNlIHsK
ICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIHRoZSBhbmltYXRpb24s
IGp1c3QgcmVzZXQgdGhlIHZhbHVlcyBpbiBjYXNlIHRoZXkgaGF2ZSBjaGFuZ2VkLgotICAgICAg
ICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBh
aW50ZXIgdWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzc11dOworICAgICAgICBbX3VpU3RhdGVUcmFu
c2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGVySW1wIHVpU3RhdGVUcmFuc2l0
aW9uUHJvZ3Jlc3NdXTsKICAgICAgICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBzZXRF
bmRWYWx1ZToxLjBdOwogICAgICAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uIHNldER1
cmF0aW9uOmR1cmF0aW9uXTsKICAgICB9CkBAIC01NjgsMjIgKzU2NiwyMCBAQCAtICh2b2lkKXNj
cm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZUV4cGFuc2lvblRy
YW5zaXRpb25XaXRoRAogICAgIGlmICghX3Njcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQVNTRVJUKHNjcm9sbGVySW1wID09IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKl9z
Y3JvbGxiYXIpKTsKLQotICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGJhclBhaW50ZXIgPSAoTlNT
Y3JvbGxlckltcCAqKXNjcm9sbGVySW1wOworICAgIEFTU0VSVChzY3JvbGxlckltcCA9PSBzY3Jv
bGxlckltcEZvclNjcm9sbGJhcigqX3Njcm9sbGJhcikpOwogCiAgICAgLy8gRXhwYW5zaW9uVHJh
bnNpdGlvbiBhbHdheXMgYW5pbWF0ZXMgdG8gMS4gSW4gY2FzZSBhbiBhbmltYXRpb24gaXMgaW4g
cHJvZ3Jlc3MgdGhpcyBhdm9pZHMgYSBoYXJkIHRyYW5zaXRpb24uCi0gICAgW3Njcm9sbGJhclBh
aW50ZXIgc2V0RXhwYW5zaW9uVHJhbnNpdGlvblByb2dyZXNzOjEgLSBbc2Nyb2xsZXJJbXAgZXhw
YW5zaW9uVHJhbnNpdGlvblByb2dyZXNzXV07CisgICAgW3Njcm9sbGVySW1wIHNldEV4cGFuc2lv
blRyYW5zaXRpb25Qcm9ncmVzczoxIC0gW3Njcm9sbGVySW1wIGV4cGFuc2lvblRyYW5zaXRpb25Q
cm9ncmVzc11dOwogCiAgICAgaWYgKCFfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbikgewog
ICAgICAgICBfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbiA9IGFkb3B0TlMoW1tXZWJTY3Jv
bGxiYXJQYXJ0QW5pbWF0aW9uIGFsbG9jXSBpbml0V2l0aFNjcm9sbGJhcjpfc2Nyb2xsYmFyCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZVRvQW5pbWF0ZTpFeHBhbnNpb25UcmFuc2l0
aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlRnJvbTpbc2Nyb2xsYmFy
UGFpbnRlciBleHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3NdCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFuaW1hdGVUbzoxLjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGR1cmF0aW9uOmR1cmF0aW9uXSk7CisgICAgICAgICAgICBmZWF0dXJlVG9BbmltYXRlOkV4
cGFuc2lvblRyYW5zaXRpb24KKyAgICAgICAgICAgIGFuaW1hdGVGcm9tOltzY3JvbGxlckltcCBl
eHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3NdCisgICAgICAgICAgICBhbmltYXRlVG86MS4wCisg
ICAgICAgICAgICBkdXJhdGlvbjpkdXJhdGlvbl0pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IElmIHdlIGRvbid0IG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYW5pbWF0aW9uLCBqdXN0IHJlc2V0
IHRoZSB2YWx1ZXMgaW4gY2FzZSB0aGV5IGhhdmUgY2hhbmdlZC4KLSAgICAgICAgW19leHBhbnNp
b25UcmFuc2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBhaW50ZXIgdWlT
dGF0ZVRyYW5zaXRpb25Qcm9ncmVzc11dOworICAgICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25B
bmltYXRpb24gc2V0U3RhcnRWYWx1ZTpbc2Nyb2xsZXJJbXAgdWlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzc11dOwogICAgICAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25BbmltYXRpb24gc2V0RW5kVmFs
dWU6MS4wXTsKICAgICAgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0aW9uIHNldER1cmF0
aW9uOmR1cmF0aW9uXTsKICAgICB9CkBAIC02MjYsMTcgKzYyMiwxNyBAQCBTY3JvbGxBbmltYXRv
ck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQog
ICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViU2Nyb2xs
QW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6dGhp
c10pOwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyID0gYWRvcHROUyhbW05TQ2xhc3NGcm9t
U3RyaW5nKEAiTlNTY3JvbGxBbmltYXRpb25IZWxwZXIiKSBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0
ZTptX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlLmdldCgpXSk7CiAKLSAgICBtX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViU2Nyb2xsZXJJbXBQ
YWlyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsYWJsZUFyZWE6JnNjcm9sbGFibGVBcmVh
XSk7Ci0gICAgbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tOU1Njcm9s
bGVySW1wUGFpciBhbGxvY10gaW5pdF0pOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIHNldERlbGVnYXRlOm1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQo
KV07Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0U2Nyb2xsZXJTdHlsZTpy
ZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKV07CisgICAgbV9zY3JvbGxlckltcFBhaXJEZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhT
Y3JvbGxhYmxlQXJlYTomc2Nyb2xsYWJsZUFyZWFdKTsKKyAgICBtX3Njcm9sbGVySW1wUGFpciA9
IGFkb3B0TlMoW1tOU1Njcm9sbGVySW1wUGFpciBhbGxvY10gaW5pdF0pOworICAgIFttX3Njcm9s
bGVySW1wUGFpciBzZXREZWxlZ2F0ZTptX3Njcm9sbGVySW1wUGFpckRlbGVnYXRlLmdldCgpXTsK
KyAgICBbbV9zY3JvbGxlckltcFBhaXIgc2V0U2Nyb2xsZXJTdHlsZTpyZWNvbW1lbmRlZFNjcm9s
bGVyU3R5bGUoKV07CiB9CiAKIFNjcm9sbEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMo
KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBbbV9zY3JvbGxiYXJQ
YWludGVyQ29udHJvbGxlckRlbGVnYXRlIGludmFsaWRhdGVdOwotICAgIFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgW21fc2Nyb2xsZXJJbXBQYWly
RGVsZWdhdGUgaW52YWxpZGF0ZV07CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIHNldERlbGVnYXRl
Om5pbF07CiAgICAgW21faG9yaXpvbnRhbFNjcm9sbGVySW1wRGVsZWdhdGUgaW52YWxpZGF0ZV07
CiAgICAgW21fdmVydGljYWxTY3JvbGxlckltcERlbGVnYXRlIGludmFsaWRhdGVdOwogICAgIFtt
X3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGludmFsaWRhdGVdOwpAQCAtNzc2LDM0ICs3
NzIsMzQgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRB
cmVhV2lsbFBhaW50KCkgY29uc3QKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Njcm9sbGVy
SW1wUGFpciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgY29udGVudEFyZWFXaWxsRHJhd107
CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIGNvbnRlbnRBcmVhV2lsbERyYXddOwogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRDb250ZW50QXJlYSgpCiB7Ci0gICAgaWYg
KFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2Nr
ZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xv
Y2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKKyAgICBbbV9zY3JvbGxlckltcFBhaXIgbW91
c2VFbnRlcmVkQ29udGVudEFyZWFdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3Vz
ZUV4aXRlZENvbnRlbnRBcmVhKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Njcm9sbGVy
SW1wUGFpciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgbW91c2VFeGl0ZWRDb250ZW50QXJl
YV07CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIG1vdXNlRXhpdGVkQ29udGVudEFyZWFdOwogfQog
CiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZU1vdmVkSW5Db250ZW50QXJlYSgpCiB7Ci0g
ICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRl
SXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3Rh
dGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJD
b250cm9sbGVyIG1vdXNlTW92ZWRJbkNvbnRlbnRBcmVhXTsKKyAgICBbbV9zY3JvbGxlckltcFBh
aXIgbW91c2VNb3ZlZEluQ29udGVudEFyZWFdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
Ojptb3VzZUVudGVyZWRTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNvbnN0CkBAIC04
MTIsMTAgKzgwOCwxMCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUVudGVyZWRTY3Jv
bGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpIGNvbnN0CiAgICAgaWYgKHJlY29tbWVuZGVkU2Ny
b2xsZXJTdHlsZSgpICE9IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0
YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVy
U3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChOU1Njcm9sbGVySW1w
ICpwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKSkKKyAg
ICBpZiAoTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpz
Y3JvbGxiYXIpKQogICAgICAgICBbcGFpbnRlciBtb3VzZUVudGVyZWRTY3JvbGxlcl07CiB9CiAK
QEAgLTgyNSw3MyArODIxLDczIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRXhpdGVk
U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGlmIChyZWNvbW1lbmRl
ZFNjcm9sbGVyU3R5bGUoKSAhPSBOU1Njcm9sbGVyU3R5bGVMZWdhY3kpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBvdmVybGF5U2Nyb2xs
ZXJTdGF0ZUlzTG9ja2VkXSkKKyAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3Jv
bGxlclN0YXRlSXNMb2NrZWRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoTlNTY3JvbGxl
ckltcCAqcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcikp
CisgICAgaWYgKE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBzY3JvbGxlckltcEZvclNjcm9sbGJh
cigqc2Nyb2xsYmFyKSkKICAgICAgICAgW3BhaW50ZXIgbW91c2VFeGl0ZWRTY3JvbGxlcl07CiB9
CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlSXNEb3duSW5TY3JvbGxiYXIoU2Nyb2xs
YmFyKiBzY3JvbGxiYXIsIGJvb2wgbW91c2VJc0Rvd24pIGNvbnN0CiB7Ci0gICAgaWYgKFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQor
ICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Ny
b2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKSkgeworICAgIGlmIChOU1Njcm9s
bGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcikpIHsK
ICAgICAgICAgW3BhaW50ZXIgc2V0VHJhY2tpbmc6bW91c2VJc0Rvd25dOwogICAgICAgICBpZiAo
bW91c2VJc0Rvd24pCi0gICAgICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBi
ZWdpblNjcm9sbEdlc3R1cmVdOworICAgICAgICAgICAgW21fc2Nyb2xsZXJJbXBQYWlyIGJlZ2lu
U2Nyb2xsR2VzdHVyZV07CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIGVuZFNjcm9sbEdlc3R1cmVdOworICAgICAgICAgICAgW21fc2Nyb2xs
ZXJJbXBQYWlyIGVuZFNjcm9sbEdlc3R1cmVdOwogICAgIH0KIH0KIAogdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChb
bV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAg
IHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHN0YXJ0TGl2ZVJl
c2l6ZV07CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIHN0YXJ0TGl2ZVJlc2l6ZV07CiB9CiAKIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCgpIGNvbnN0CiB7Ci0gICAgaWYg
KFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2Nr
ZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xv
Y2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIGNvbnRlbnRBcmVhRGlkUmVzaXplXTsKKyAgICBbbV9zY3JvbGxlckltcFBhaXIgY29udGVu
dEFyZWFEaWRSZXNpemVdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2
ZVJlc2l6ZSgpCiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJs
YXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3Zl
cmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJldHVybjsKIAotICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGVuZExpdmVSZXNpemVdOworICAgIFttX3Njcm9sbGVy
SW1wUGFpciBlbmRMaXZlUmVzaXplXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y29u
dGVudEFyZWFEaWRTaG93KCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFttX3Njcm9sbGVySW1w
UGFpciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgd2luZG93T3JkZXJlZEluXTsKKyAgICBb
bV9zY3JvbGxlckltcFBhaXIgd2luZG93T3JkZXJlZEluXTsKIH0KIAogdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6Y29udGVudEFyZWFEaWRIaWRlKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCisgICAgaWYgKFtt
X3Njcm9sbGVySW1wUGFpciBvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgd2luZG93T3JkZXJl
ZE91dF07CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIHdpbmRvd09yZGVyZWRPdXRdOwogfQogCiB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUoKSBjb25zdAogewot
ICAgIGlmIChbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBvdmVybGF5U2Nyb2xsZXJTdGF0
ZUlzTG9ja2VkXSkKKyAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxlclN0
YXRlSXNMb2NrZWRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBbbV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlciBiZWdpblNjcm9sbEdlc3R1cmVdOworICAgIFttX3Njcm9sbGVySW1wUGFpciBi
ZWdpblNjcm9sbEdlc3R1cmVdOwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChtX3doZWVsRXZlbnRUZXN0VHJpZ2dlcikKQEAg
LTkwMSwxMCArODk3LDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEJlZ2luU2Nyb2xs
R2VzdHVyZSgpIGNvbnN0CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEVuZFNjcm9sbEdl
c3R1cmUoKSBjb25zdAogewotICAgIGlmIChbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBv
dmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkXSkKKyAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWly
IG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQogICAgICAgICByZXR1cm47CiAKLSAgICBb
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBlbmRTY3JvbGxHZXN0dXJlXTsKKyAgICBbbV9z
Y3JvbGxlckltcFBhaXIgZW5kU2Nyb2xsR2VzdHVyZV07CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKG1fd2hlZWxFdmVudFRl
c3RUcmlnZ2VyKQpAQCAtOTE0LDE5ICs5MTAsMTkgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
ZGlkRW5kU2Nyb2xsR2VzdHVyZSgpIGNvbnN0CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1h
eUJlZ2luU2Nyb2xsR2VzdHVyZSgpIGNvbnN0CiB7Ci0gICAgaWYgKFttX3Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQorICAgIGlmIChbbV9z
Y3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGJlZ2luU2Nyb2xsR2Vz
dHVyZV07Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgY29udGVudEFyZWFTY3Jv
bGxlZF07CisgICAgW21fc2Nyb2xsZXJJbXBQYWlyIGJlZ2luU2Nyb2xsR2VzdHVyZV07CisgICAg
W21fc2Nyb2xsZXJJbXBQYWlyIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOwogfQogCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpsb2NrT3ZlcmxheVNjcm9sbGJhclN0YXRlVG9IaWRkZW4oYm9vbCBzaG91
bGRMb2NrU3RhdGUpCiB7CiAgICAgaWYgKHNob3VsZExvY2tTdGF0ZSkKLSAgICAgICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgbG9ja092ZXJsYXlTY3JvbGxlclN0YXRlOk5TT3Zlcmxh
eVNjcm9sbGVyU3RhdGVIaWRkZW5dOworICAgICAgICBbbV9zY3JvbGxlckltcFBhaXIgbG9ja092
ZXJsYXlTY3JvbGxlclN0YXRlOk5TT3ZlcmxheVNjcm9sbGVyU3RhdGVIaWRkZW5dOwogICAgIGVs
c2UgewotICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciB1bmxvY2tPdmVybGF5
U2Nyb2xsZXJTdGF0ZV07CisgICAgICAgIFttX3Njcm9sbGVySW1wUGFpciB1bmxvY2tPdmVybGF5
U2Nyb2xsZXJTdGF0ZV07CiAKICAgICAgICAgLy8gV2UgbmV2ZXIgdXBkYXRlIHNjcm9sbGVyIHN0
eWxlIGZvciBQYWludGVyQ29udHJvbGxlcnMgdGhhdCBhcmUgbG9ja2VkLiBJZiB3ZSBoYXZlIGEg
cGVuZGluZwogICAgICAgICAvLyBuZWVkIHRvIHVwZGF0ZSB0aGUgc3R5bGUsIGRvIGl0IG9uY2Ug
d2UndmUgdW5sb2NrZWQgdGhlIHNjcm9sbGVyIHN0YXRlLgpAQCAtOTM3LDEyICs5MzMsMTIgQEAg
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVu
KGJvb2wgc2hvdWxkTG9ja1N0YXRlKQogCiBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxi
YXJzQ2FuQmVBY3RpdmUoKSBjb25zdAogewotICAgIHJldHVybiAhW21fc2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF07CisgICAgcmV0dXJuICFb
bV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF07CiB9CiAKIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciog
c2Nyb2xsYmFyKQogewotICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBzY3JvbGxiYXJQYWlu
dGVyRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOworICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIg
PSBzY3JvbGxlckltcEZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKICAgICBpZiAoIXBhaW50ZXIp
CiAgICAgICAgIHJldHVybjsKIApAQCAtOTUzLDE0ICs5NDksMTQgQEAgdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAg
ICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gc2Nyb2xsYmFyLT5zY3JvbGxhYmxlQXJlYSgp
LmxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgW3BhaW50ZXIgc2V0TGF5ZXI6
bGF5ZXItPnBsYXRmb3JtTGF5ZXIoKV07CiAKLSAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlciBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOworICAgIFttX3Njcm9sbGVySW1w
UGFpciBzZXRWZXJ0aWNhbFNjcm9sbGVySW1wOnBhaW50ZXJdOwogICAgIGlmIChzY3JvbGxhYmxl
QXJlYSgpLmluTGl2ZVJlc2l6ZSgpKQogICAgICAgICBbcGFpbnRlciBzZXRLbm9iQWxwaGE6MV07
CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKLSAgICBOU1Njcm9sbGVySW1wICpwYWludGVyID0g
c2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKKyAgICBOU1Njcm9sbGVy
SW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7CiAgICAg
aWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTk2OSwxMiArOTY1LDEyIEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxi
YXIqIHNjcm9sbGJhcikKICAgICBtX3ZlcnRpY2FsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSA9IG51bGxw
dHI7CiAKICAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgIFttX3Njcm9sbGJhclBh
aW50ZXJDb250cm9sbGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmlsXTsKKyAgICBbbV9zY3Jv
bGxlckltcFBhaXIgc2V0VmVydGljYWxTY3JvbGxlckltcDpuaWxdOwogfQogCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xs
YmFyKQogewotICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBzY3JvbGxiYXJQYWludGVyRm9y
U2Nyb2xsYmFyKCpzY3JvbGxiYXIpOworICAgIE5TU2Nyb2xsZXJJbXAgKnBhaW50ZXIgPSBzY3Jv
bGxlckltcEZvclNjcm9sbGJhcigqc2Nyb2xsYmFyKTsKICAgICBpZiAoIXBhaW50ZXIpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtOTg1LDE0ICs5ODEsMTQgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKICAgICBp
ZiAoR3JhcGhpY3NMYXllciogbGF5ZXIgPSBzY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkubGF5
ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpCiAgICAgICAgIFtwYWludGVyIHNldExheWVyOmxh
eWVyLT5wbGF0Zm9ybUxheWVyKCldOwogCi0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIgc2V0SG9yaXpvbnRhbFNjcm9sbGVySW1wOnBhaW50ZXJdOworICAgIFttX3Njcm9sbGVySW1w
UGFpciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6cGFpbnRlcl07CiAgICAgaWYgKHNjcm9sbGFi
bGVBcmVhKCkuaW5MaXZlUmVzaXplKCkpCiAgICAgICAgIFtwYWludGVyIHNldEtub2JBbHBoYTox
XTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0gICAgTlNTY3JvbGxlckltcCAqcGFpbnRl
ciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7CisgICAgTlNTY3Jv
bGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOwog
ICAgIGlmICghcGFpbnRlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDAxLDEyICs5OTcsMTIg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiAgICAgbV9ob3Jpem9udGFsU2Nyb2xsZXJJbXBEZWxlZ2F0
ZSA9IG51bGxwdHI7CiAKICAgICBbcGFpbnRlciBzZXREZWxlZ2F0ZTpuaWxdOwotICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldEhvcml6b250YWxTY3JvbGxlckltcDpuaWxdOwor
ICAgIFttX3Njcm9sbGVySW1wUGFpciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6bmlsXTsKIH0K
IAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW52YWxpZGF0ZVNjcm9sbGJhclBhcnRMYXllcnMo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIpCiB7Ci0gICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNj
cm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7CisgICAgTlNTY3JvbGxlcklt
cCAqcGFpbnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpzY3JvbGxiYXIpOwogICAgIFtw
YWludGVyIHNldE5lZWRzRGlzcGxheTpZRVNdOwogfQogCkBAIC0xMDE3LDcgKzEwMTMsNyBAQCB2
b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp2ZXJ0aWNhbFNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKCkK
ICAgICBpZiAoIXNjcm9sbGJhcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTlNTY3JvbGxlcklt
cCAqcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoKnNjcm9sbGJhcik7Cisg
ICAgTlNTY3JvbGxlckltcCAqcGFpbnRlciA9IHNjcm9sbGVySW1wRm9yU2Nyb2xsYmFyKCpzY3Jv
bGxiYXIpOwogICAgIGlmICghcGFpbnRlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDMxLDcg
KzEwMjcsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpob3Jpem9udGFsU2Nyb2xsYmFyTGF5
ZXJEaWRDaGFuZ2UoKQogICAgIGlmICghc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigq
c2Nyb2xsYmFyKTsKKyAgICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JT
Y3JvbGxiYXIoKnNjcm9sbGJhcik7CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm47
CiAKQEAgLTEwNDgsNyArMTA0NCw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFNj
cm9sbGJhclBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKFNjcm9sbGJhciogc2Nyb2xsCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgLy8gT3ZlcmxheSBzY3JvbGxiYXJzIHNob3VsZCBwYXJ0aWNp
cGF0ZSBpbiBoaXQgdGVzdGluZyB3aGVuZXZlciB0aGV5IGFyZSBhdCBhbGwgdmlzaWJsZS4KLSAg
ICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcigq
c2Nyb2xsYmFyKTsKKyAgICBOU1Njcm9sbGVySW1wICpwYWludGVyID0gc2Nyb2xsZXJJbXBGb3JT
Y3JvbGxiYXIoKnNjcm9sbGJhcik7CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgcmV0dXJuIFtwYWludGVyIGtub2JBbHBoYV0gPiAwOwpAQCAtMTA1OSw3ICsx
MDU1LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxl
ZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk
IHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQog
ICAgIC8vIGlzbid0IHJlYWxseSBzY3JvbGxpbmcgaW4gdGhhdCBjYXNlLiBXZSBzaG91bGQgb25s
eSBwYXNzIHRoZSBtZXNzYWdlIG9uIHRvIHRoZQogICAgIC8vIFNjcm9sbGVySW1wUGFpciB3aGVu
IHdlJ3JlIHJlYWxseSBzY3JvbGxpbmcgb24gYW4gYWN0aXZlIHBhZ2UuCi0gICAgaWYgKFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQor
ICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0p
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3Njcm9sbGFibGVBcmVhLmlzSGFuZGxpbmdX
aGVlbEV2ZW50KCkpCkBAIC0xMjg0LDcgKzEyODAsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
OjppbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0eWxlKCkKIHsKLSAgICBpZiAoW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIgb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZF0pIHsKKyAg
ICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKSB7
CiAgICAgICAgIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlID0gdHJ1ZTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTEyOTcsMTYgKzEyOTMsMTYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSgpCiAgICAgCiAgICAgbWFjVGhlbWUtPnVzZXNPdmVybGF5
U2Nyb2xsYmFyc0NoYW5nZWQoKTsKIAotICAgIE5TU2Nyb2xsZXJTdHlsZSBuZXdTdHlsZSA9IFtt
X3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNjcm9sbGVyU3R5bGVdOworICAgIE5TU2Nyb2xs
ZXJTdHlsZSBuZXdTdHlsZSA9IFttX3Njcm9sbGVySW1wUGFpciBzY3JvbGxlclN0eWxlXTsKIAog
ICAgIGlmIChTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyID0gc2Nyb2xsYWJsZUFyZWEoKS52
ZXJ0aWNhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyLT5pbnZhbGlk
YXRlKCk7CiAKLSAgICAgICAgTlNTY3JvbGxlckltcCAqb2xkVmVydGljYWxQYWludGVyID0gW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgdmVydGljYWxTY3JvbGxlckltcF07CisgICAgICAg
IE5TU2Nyb2xsZXJJbXAgKm9sZFZlcnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGVySW1wUGFpciB2
ZXJ0aWNhbFNjcm9sbGVySW1wXTsKICAgICAgICAgTlNTY3JvbGxlckltcCAqbmV3VmVydGljYWxQ
YWludGVyID0gW05TU2Nyb2xsZXJJbXAgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6bmV3U3R5bGUgY29u
dHJvbFNpemU6KE5TQ29udHJvbFNpemUpdmVydGljYWxTY3JvbGxiYXItPmNvbnRyb2xTaXplKCkg
aG9yaXpvbnRhbDpOTyByZXBsYWNpbmdTY3JvbGxlckltcDpvbGRWZXJ0aWNhbFBhaW50ZXJdOwog
ICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbGJhckxheW91dERpcmVjdGlvbihuZXdW
ZXJ0aWNhbFBhaW50ZXIpOwogCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
IHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmV3VmVydGljYWxQYWludGVyXTsKKyAgICAgICAgW21f
c2Nyb2xsZXJJbXBQYWlyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmV3VmVydGljYWxQYWludGVy
XTsKICAgICAgICAgbWFjVGhlbWUtPnNldE5ld1BhaW50ZXJGb3JTY3JvbGxiYXIoKnZlcnRpY2Fs
U2Nyb2xsYmFyLCBuZXdWZXJ0aWNhbFBhaW50ZXIpOwogCiAgICAgICAgIC8vIFRoZSBkaWZmZXJl
bnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZlcmVudCB0aGlja25lc3Nlcywgc28gd2UgbXVz
dCByZS1zZXQgdGhlIApAQCAtMTMxOSwxMSArMTMxNSwxMSBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjp1cGRhdGVTY3JvbGxlclN0eWxlKCkKICAgICBpZiAoU2Nyb2xsYmFyKiBob3Jpem9udGFs
U2Nyb2xsYmFyID0gc2Nyb2xsYWJsZUFyZWEoKS5ob3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwogCi0gICAgICAgIE5TU2Ny
b2xsZXJJbXAgKm9sZEhvcml6b250YWxQYWludGVyID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgaG9yaXpvbnRhbFNjcm9sbGVySW1wXTsKKyAgICAgICAgTlNTY3JvbGxlckltcCAqb2xk
SG9yaXpvbnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxlckltcFBhaXIgaG9yaXpvbnRhbFNjcm9sbGVy
SW1wXTsKICAgICAgICAgTlNTY3JvbGxlckltcCAqbmV3SG9yaXpvbnRhbFBhaW50ZXIgPSBbTlNT
Y3JvbGxlckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSBjb250cm9sU2l6ZTooTlND
b250cm9sU2l6ZSlob3Jpem9udGFsU2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpIGhvcml6b250YWw6
WUVTIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZEhvcml6b250YWxQYWludGVyXTsKICAgICAgICAg
bV9zY3JvbGxhYmxlQXJlYS5zZXRTY3JvbGxiYXJMYXlvdXREaXJlY3Rpb24obmV3SG9yaXpvbnRh
bFBhaW50ZXIpOwogCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldEhv
cml6b250YWxTY3JvbGxlckltcDpuZXdIb3Jpem9udGFsUGFpbnRlcl07CisgICAgICAgIFttX3Nj
cm9sbGVySW1wUGFpciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6bmV3SG9yaXpvbnRhbFBhaW50
ZXJdOwogICAgICAgICBtYWNUaGVtZS0+c2V0TmV3UGFpbnRlckZvclNjcm9sbGJhcigqaG9yaXpv
bnRhbFNjcm9sbGJhciwgbmV3SG9yaXpvbnRhbFBhaW50ZXIpOwogCiAgICAgICAgIC8vIFRoZSBk
aWZmZXJlbnQgc2Nyb2xsYmFyIHN0eWxlcyBoYXZlIGRpZmZlcmVudCB0aGlja25lc3Nlcywgc28g
d2UgbXVzdCByZS1zZXQgdGhlIApAQCAtMTM1OSw4ICsxMzU1LDggQEAgdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJGaXJlZCgpCiB7CiAgICAgLy8gVG8g
Zm9yY2UgdGhlIHNjcm9sbGJhcnMgdG8gZmxhc2gsIHdlIGhhdmUgdG8gY2FsbCBoaWRlIGZpcnN0
LiBPdGhlcndpc2UsIHRoZSBTY3JvbGxlckltcFBhaXIKICAgICAvLyBtaWdodCB0aGluayB0aGF0
IHRoZSBzY3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcgYW5kIGJhaWwgZWFybHkuCi0gICAg
W21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgaGlkZU92ZXJsYXlTY3JvbGxlcnNdOwotICAg
IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGZsYXNoU2Nyb2xsZXJzXTsKKyAgICBbbV9z
Y3JvbGxlckltcFBhaXIgaGlkZU92ZXJsYXlTY3JvbGxlcnNdOworICAgIFttX3Njcm9sbGVySW1w
UGFpciBmbGFzaFNjcm9sbGVyc107CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNlbmRD
b250ZW50QXJlYVNjcm9sbGVkU29vbihjb25zdCBGbG9hdFNpemUmIGRlbHRhKQpAQCAtMTM3Niw3
ICsxMzcyLDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xs
ZWRTb29uKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OnNlbmRDb250ZW50QXJlYVNjcm9sbGVkKGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7Ci0gICAg
W21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgY29udGVudEFyZWFTY3JvbGxlZEluRGlyZWN0
aW9uOk5TTWFrZVBvaW50KGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpKV07CisgICAgW21f
c2Nyb2xsZXJJbXBQYWlyIGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjpOU01ha2VQb2lu
dChkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSldOwogfQogCiB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpzZW5kQ29udGVudEFyZWFTY3JvbGxlZFRpbWVyRmlyZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IDliZDIzY2Uw
NGJkM2M0NzI2YTY2YzBiNzQ5ZDI5MjgwZGM4NWEyY2IuLjQwMTEwZjcyM2YwZjQzNDMxNTlhZjFi
NGQwOTQ1YWQxMzA3YzVkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw5ICsxNTksOSBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lTWFjOjpyZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgYm9vbCBpc0hvcml6b250YWwgPSBzY3JvbGxiYXIub3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyOwotICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGJhclBh
aW50ZXIgPSBbTlNTY3JvbGxlckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpyZWNvbW1lbmRlZFNj
cm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpzY3JvbGxiYXJDb250cm9sU2l6ZVRvTlNDb250cm9s
U2l6ZShzY3JvbGxiYXIuY29udHJvbFNpemUoKSkgaG9yaXpvbnRhbDppc0hvcml6b250YWwgcmVw
bGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKLSAgICBzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5z
ZXRTY3JvbGxiYXJMYXlvdXREaXJlY3Rpb24oc2Nyb2xsYmFyUGFpbnRlcik7Ci0gICAgc2Nyb2xs
YmFyTWFwKCktPmFkZCgmc2Nyb2xsYmFyLCBzY3JvbGxiYXJQYWludGVyKTsKKyAgICBOU1Njcm9s
bGVySW1wICpzY3JvbGxlckltcCA9IFtOU1Njcm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxl
OnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xT
aXplVG9OU0NvbnRyb2xTaXplKHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKSBob3Jpem9udGFsOmlz
SG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDpuaWxdOworICAgIHNjcm9sbGJhci5zY3Jv
bGxhYmxlQXJlYSgpLnNldFNjcm9sbGJhckxheW91dERpcmVjdGlvbihzY3JvbGxlckltcCk7Cisg
ICAgc2Nyb2xsYmFyTWFwKCktPmFkZCgmc2Nyb2xsYmFyLCBzY3JvbGxlckltcCk7CiAgICAgdXBk
YXRlRW5hYmxlZFN0YXRlKHNjcm9sbGJhcik7CiAgICAgdXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0
eWxlKHNjcm9sbGJhcik7CiB9CkBAIC0yMjMsOSArMjIzLDkgQEAgdm9pZCBTY3JvbGxiYXJUaGVt
ZU1hYzo6cHJlZmVyZW5jZXNDaGFuZ2VkKCkKIGludCBTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xs
YmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplKQogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICBOU1Njcm9sbGVySW1wICpzY3JvbGxiYXJQ
YWludGVyID0gW05TU2Nyb2xsZXJJbXAgc2Nyb2xsZXJJbXBXaXRoU3R5bGU6cmVjb21tZW5kZWRT
Y3JvbGxlclN0eWxlKCkgY29udHJvbFNpemU6c2Nyb2xsYmFyQ29udHJvbFNpemVUb05TQ29udHJv
bFNpemUoY29udHJvbFNpemUpIGhvcml6b250YWw6Tk8gcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmls
XTsKLSAgICBbc2Nyb2xsYmFyUGFpbnRlciBzZXRFeHBhbmRlZDpZRVNdOwotICAgIHJldHVybiBb
c2Nyb2xsYmFyUGFpbnRlciB0cmFja0JveFdpZHRoXTsKKyAgICBOU1Njcm9sbGVySW1wICpzY3Jv
bGxlckltcCA9IFtOU1Njcm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxlOnJlY29tbWVuZGVk
U2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRy
b2xTaXplKGNvbnRyb2xTaXplKSBob3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5p
bF07CisgICAgW3Njcm9sbGVySW1wIHNldEV4cGFuZGVkOllFU107CisgICAgcmV0dXJuIFtzY3Jv
bGxlckltcCB0cmFja0JveFdpZHRoXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
fQogCkBAIC01MDgsMTcgKzUwOCwxNyBAQCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpzZXRQYWlu
dENoYXJhY3RlcmlzdGljc0ZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhcgogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXN0YXRpYyB2b2lkIHNjcm9sbGJhclBhaW50
ZXJQYWludChOU1Njcm9sbGVySW1wICpzY3JvbGxiYXJQYWludGVyLCBib29sIGVuYWJsZWQpCitz
dGF0aWMgdm9pZCBzY3JvbGxlckltcFBhaW50KE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVySW1wLCBi
b29sIGVuYWJsZWQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIC8v
IFVzZSByZWN0Rm9yUGFydDogaGVyZTsgaXQgd2lsbCB0YWtlIHRoZSBleHBhbnNpb24gdHJhbnNp
dGlvbiBwcm9ncmVzcyBpbnRvIGFjY291bnQuCi0gICAgTlNSZWN0IHRyYWNrUmVjdCA9IFtzY3Jv
bGxiYXJQYWludGVyIHJlY3RGb3JQYXJ0Ok5TU2Nyb2xsZXJLbm9iU2xvdF07Ci0gICAgW3Njcm9s
bGJhclBhaW50ZXIgZHJhd0tub2JTbG90SW5SZWN0OnRyYWNrUmVjdCBoaWdobGlnaHQ6Tk9dOwor
ICAgIE5TUmVjdCB0cmFja1JlY3QgPSBbc2Nyb2xsZXJJbXAgcmVjdEZvclBhcnQ6TlNTY3JvbGxl
cktub2JTbG90XTsKKyAgICBbc2Nyb2xsZXJJbXAgZHJhd0tub2JTbG90SW5SZWN0OnRyYWNrUmVj
dCBoaWdobGlnaHQ6Tk9dOwogCiAgICAgLy8gSWYgdGhlIHNjcm9sbGJhciBpcyBub3QgZW5hYmxl
ZCwgdGhlbiB0aGVyZSBpcyBub3RoaW5nIHRvIHNjcm9sbCB0bywgYW5kIHdlIHNob3VsZG4ndAog
ICAgIC8vIGNhbGwgZHJhd0tub2IuCiAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIFtzY3JvbGxi
YXJQYWludGVyIGRyYXdLbm9iXTsKKyAgICAgICAgW3Njcm9sbGVySW1wIGRyYXdLbm9iXTsKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCkBAIC01MjYsMTUgKzUyNiwxNiBAQCBi
b29sIFNjcm9sbGJhclRoZW1lTWFjOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjbwogewogICAgIHNldFBhaW50Q2hhcmFjdGVyaXN0aWNzRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAKLSAgICBpZiAoIXNjcm9sbGJhci5zdXBwb3J0c1VwZGF0
ZU9uU2Vjb25kYXJ5VGhyZWFkKCkpIHsKLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlz
Q3VycmVudGx5RHJhd2luZ0ludG9MYXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllciwg
Y29udGV4dC5pc0NBTGF5ZXJDb250ZXh0KCkpOworICAgIGlmIChzY3JvbGxiYXIuc3VwcG9ydHNV
cGRhdGVPblNlY29uZGFyeVRocmVhZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIFRl
bXBvcmFyeUNoYW5nZTxib29sPiBpc0N1cnJlbnRseURyYXdpbmdJbnRvTGF5ZXIoZ19pc0N1cnJl
bnRseURyYXdpbmdJbnRvTGF5ZXIsIGNvbnRleHQuaXNDQUxheWVyQ29udGV4dCgpKTsKICAgICAK
LSAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwot
ICAgICAgICBjb250ZXh0LmNsaXAoZGFtYWdlUmVjdCk7Ci0gICAgICAgIGNvbnRleHQudHJhbnNs
YXRlKHNjcm9sbGJhci5mcmFtZVJlY3QoKS54KCksIHNjcm9sbGJhci5mcmFtZVJlY3QoKS55KCkp
OwotICAgICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRl
eHQpOwotICAgICAgICBzY3JvbGxiYXJQYWludGVyUGFpbnQoc2Nyb2xsYmFyTWFwKCktPmdldCgm
c2Nyb2xsYmFyKS5nZXQoKSwgc2Nyb2xsYmFyLmVuYWJsZWQoKSk7Ci0gICAgfQorICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICBjb250ZXh0LmNs
aXAoZGFtYWdlUmVjdCk7CisgICAgY29udGV4dC50cmFuc2xhdGUoc2Nyb2xsYmFyLmZyYW1lUmVj
dCgpLngoKSwgc2Nyb2xsYmFyLmZyYW1lUmVjdCgpLnkoKSk7CisgICAgTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0IGxvY2FsQ29udGV4dChjb250ZXh0KTsKKyAgICBzY3JvbGxlckltcFBhaW50
KHNjcm9sbGJhck1hcCgpLT5nZXQoJnNjcm9sbGJhcikuZ2V0KCksIHNjcm9sbGJhci5lbmFibGVk
KCkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>