<?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>135887</bug_id>
          
          <creation_ts>2014-08-13 10:06:24 -0700</creation_ts>
          <short_desc>CSSValueList should never contain null values.</short_desc>
          <delta_ts>2014-08-13 14:06:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028816</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-08-13 10:06:24 -0700</bug_when>
    <thetext>An LVR I&apos;ve been meaning to do for a while.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028817</commentid>
    <comment_count>1</comment_count>
      <attachid>236533</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-08-13 10:12:04 -0700</bug_when>
    <thetext>Created attachment 236533
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028821</commentid>
    <comment_count>2</comment_count>
      <attachid>236533</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-08-13 10:29:44 -0700</bug_when>
    <thetext>Comment on attachment 236533
Patch

What is this, 2013? r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028900</commentid>
    <comment_count>3</comment_count>
      <attachid>236533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-13 14:06:39 -0700</bug_when>
    <thetext>Comment on attachment 236533
Patch

Clearing flags on attachment: 236533

Committed r172536: &lt;http://trac.webkit.org/changeset/172536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028901</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-13 14:06:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236533</attachid>
            <date>2014-08-13 10:12:04 -0700</date>
            <delta_ts>2014-08-13 14:06:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135887.diff</filename>
            <type>text/plain</type>
            <size>62422</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNzQ0NDUxLi4wNzRiNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA5
IEBACisyMDE0LTA4LTEzICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAg
ICAgICBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5ldmVyIGNvbnRhaW4gbnVsbCB2YWx1ZXMuCisgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzU4ODc+CisKKyAgICAgICAgSXQncyBub3QgbGVn
YWwgZm9yIGEgQ1NTVmFsdWVMaXN0IHRvIGNvbnRhaW4gbnVsbCBDU1NWYWx1ZXMsIHNvIG1ha2UK
KyAgICAgICAgaXQgc3RvcmUgYSBWZWN0b3Igb2YgUmVmPENTU1ZhbHVlPiBpbnRlcm5hbGx5IGlu
c3RlYWQuCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIGF2b2lkIGVtaXR0
aW5nIGEgbnVtYmVyIG9mIG51bGwgY2hlY2tzLgorICAgICAgICBJdCB3aWxsIGFsc28gYWxsb3cg
YSBmdXR1cmUgcGF0Y2ggdG8gbWFrZSBDU1NWYWx1ZUxpc3QgdmVuZCBDU1NWYWx1ZSYKKyAgICAg
ICAgaW5zdGVhZCBvZiBDU1NWYWx1ZSouCisKKyAgICAgICAgTW9zdCBvZiB0aGUgcGF0Y2ggaXMg
Zml4aW5nIHVwIHRoaW5ncyBvbiB0aGVpciB3YXkgaW50byBhIENTU1ZhbHVlTGlzdAorICAgICAg
ICB0byBub3QgYmUgbnVsbCBhdCB0aGUgY2FsbCBzaXRlLCBub3cgdGhhdCBhcHBlbmQoKSBhbmQg
cHJlcGVuZCgpIGFyZQorICAgICAgICB0YWtpbmcgUGFzc1JlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBj
c3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckJh
c2ljU2hhcGUpOgorICAgICAgICAqIGNzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmg6CisgICAgICAg
ICogY3NzL0NTU0JvcmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJvcmRl
ckltYWdlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NCb3JkZXJJbWFnZS5oOgorICAgICAgICAq
IGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVGb3JJbWFnZVNsaWNlU2lkZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvck5pbmVQ
aWVjZUltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JOaW5lUGllY2VJbWFn
ZVF1YWQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsdWVGb3JOaW5lUGllY2VJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpnZXRCb3JkZXJSYWRpdXNTaG9ydGhhbmRWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclNoYWRvdyk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvckZpbHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6YWRkVmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OnNjcm9sbFNuYXBDb29yZGluYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVU
aW1pbmdGdW5jdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGxTb3VyY2VUeXBlVG9D
U1NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50VG9DU1NWYWx1ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzaGFwZVByb3BlcnR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0
ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpnZXRDU1NQcm9wZXJ0eVZhbHVlc0ZvclNob3J0aGFuZFByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6Z2V0Q1NT
UHJvcGVydHlWYWx1ZXNGb3JTaWRlc1Nob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjpnZXRDU1NQcm9wZXJ0eVZhbHVlc0ZvckdyaWRTaG9ydGhhbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6Z2V0QmFja2dyb3Vu
ZFNob3J0aGFuZFZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmg6CisgICAgICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGb250U2VsZWN0b3I6OmFkZEZvbnRGYWNlUnVsZSk6CisgICAgICAgICogY3NzL0NT
U1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIp
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VUcmFuc2xhdGVUcmFuc2Zvcm1WYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVByaW1pdGl2ZVN0cmluZ1ZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6YWRkRmlsbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VOb25FbGVtZW50U25hcFBvaW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlU2Nyb2xsU25hcERlc3RpbmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsU2hvcnRoYW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6YWRkQW5pbWF0aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUFuaW1hdGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlVHJhbnNpdGlvblNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlUXVvdGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VD
b250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUFuaW1hdGlvblByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVJvd3NBbmRBcmVhcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZExpbmVOYW1lcyk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1NpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZUJhc2ljU2hhcGVBbmRPckJveCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OnBhcnNlRm9udFZhcmlhbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNl
QnVpbHRpbkZpbHRlckFyZ3VtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlRmlsdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFz
aXNTdHlsZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQ
cm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eTo6d3JhcFZhbHVlSW5D
b21tYVNlcGFyYXRlZExpc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpDU1NWYWx1ZUxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVmFsdWVMaXN0OjpyZW1vdmVBbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVMaXN0OjpoYXNWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6OmNvcHkp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ZhbHVlTGlzdDo6YWRkU3VicmVzb3VyY2VTdHlsZVVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWVMaXN0OjpoYXNGYWlsZWRPckNhbmNlbGVkU3VicmVzb3VyY2VzKToKKyAgICAgICAg
KiBjc3MvQ1NTVmFsdWVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUxpc3Q6Oml0
ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjppdGVtV2l0aG91dEJvdW5kc0No
ZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6YXBwZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6cHJlcGVuZCk6CisgICAgICAgICogY3NzL1NWR0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludE9yZGVy
KToKKyAgICAgICAgKiBjc3MvU1ZHQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6cGFyc2VQYWludE9yZGVyKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZXJnZVRleHREZWNvcmF0aW9uVmFsdWVzKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhl
Y3V0ZVRvZ2dsZVN0eWxlSW5MaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvbnRGYWNlU3JjRWxlbWVudDo6c3JjVmFs
dWUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoOjp0b0NTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoLmg6
CisKIDIwMTQtMDgtMTIgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlbW92ZSBpc0luQ2FudmFzU3VidHJlZSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNp
Y1NoYXBlRnVuY3Rpb25zLmNwcAppbmRleCAwNjA2NjMxLi5kNTI5ZDRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRp
YyBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBiYXNpY1NoYXBlUmFkaXVzVG9DU1NWYWx1
ZShjb25zdCBSZW5kZXJTdHlsCiAgICAgcmV0dXJuIDA7CiB9CiAKLVBhc3NSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IEJh
c2ljU2hhcGUqIGJhc2ljU2hhcGUpCitQYXNzUmVmPENTU1ZhbHVlPiB2YWx1ZUZvckJhc2ljU2hh
cGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBCYXNpY1NoYXBlKiBiYXNpY1NoYXBl
KQogewogICAgIENTU1ZhbHVlUG9vbCYgcG9vbCA9IGNzc1ZhbHVlUG9vbCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuaAppbmRleCAyZjA2YWQ3Li5lYWIxMGNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YTsKIGNsYXNzIENTU1ZhbHVlOwogY2xh
c3MgUmVuZGVyU3R5bGU7CiAKLVBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yQmFzaWNTaGFw
ZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IEJhc2ljU2hhcGUqKTsKK1Bhc3NSZWY8Q1NTVmFs
dWU+IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IEJhc2ljU2hh
cGUqKTsKIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBjb25zdCBDU1NCYXNpY1NoYXBlKik7CiAKIGZsb2F0
IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRlKGNvbnN0IEJhc2ljU2hhcGVDZW50ZXJDb29y
ZGluYXRlJiwgZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0JvcmRl
ckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCb3JkZXJJbWFnZS5jcHAKaW5kZXgg
YWMzZTUxZS4uZjk0NmJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0JvcmRl
ckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQm9yZGVySW1hZ2UuY3BwCkBA
IC0yMiwzMCArMjIsMjkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPENT
U1ZhbHVlTGlzdD4gY3JlYXRlQm9yZGVySW1hZ2VWYWx1ZShQYXNzUmVmUHRyPENTU1ZhbHVlPiBp
bWFnZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gaW1hZ2VTbGljZSwgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gYm9yZGVyU2xpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBvdXRzZXQsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHJlcGVhdCkKK1Bhc3NSZWY8Q1NTVmFsdWVMaXN0PiBjcmVhdGVCb3JkZXJJbWFnZVZhbHVlKFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGltYWdlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBpbWFnZVNsaWNl
LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBib3JkZXJTbGljZSwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
b3V0c2V0LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiByZXBlYXQpCiB7Ci0gICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKKyAg
ICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAg
aWYgKGltYWdlKQotICAgICAgICBsaXN0LT5hcHBlbmQoaW1hZ2UpOworICAgICAgICBsaXN0Lmdl
dCgpLmFwcGVuZCgqaW1hZ2UpOwogCiAgICAgaWYgKGJvcmRlclNsaWNlIHx8IG91dHNldCkgewot
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0U2xhc2ggPSBDU1NWYWx1ZUxpc3Q6OmNy
ZWF0ZVNsYXNoU2VwYXJhdGVkKCk7CisgICAgICAgIGF1dG8gbGlzdFNsYXNoID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVTbGFzaFNlcGFyYXRlZCgpOwogICAgICAgICBpZiAoaW1hZ2VTbGljZSkKLSAg
ICAgICAgICAgIGxpc3RTbGFzaC0+YXBwZW5kKGltYWdlU2xpY2UpOworICAgICAgICAgICAgbGlz
dFNsYXNoLmdldCgpLmFwcGVuZCgqaW1hZ2VTbGljZSk7CiAKICAgICAgICAgaWYgKGJvcmRlclNs
aWNlKQotICAgICAgICAgICAgbGlzdFNsYXNoLT5hcHBlbmQoYm9yZGVyU2xpY2UpOworICAgICAg
ICAgICAgbGlzdFNsYXNoLmdldCgpLmFwcGVuZCgqYm9yZGVyU2xpY2UpOwogCiAgICAgICAgIGlm
IChvdXRzZXQpCi0gICAgICAgICAgICBsaXN0U2xhc2gtPmFwcGVuZChvdXRzZXQpOworICAgICAg
ICAgICAgbGlzdFNsYXNoLmdldCgpLmFwcGVuZCgqb3V0c2V0KTsKIAotICAgICAgICBsaXN0LT5h
cHBlbmQobGlzdFNsYXNoKTsKKyAgICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoV1RGOjptb3ZlKGxp
c3RTbGFzaCkpOwogICAgIH0gZWxzZSBpZiAoaW1hZ2VTbGljZSkKLSAgICAgICAgbGlzdC0+YXBw
ZW5kKGltYWdlU2xpY2UpOworICAgICAgICBsaXN0LmdldCgpLmFwcGVuZCgqaW1hZ2VTbGljZSk7
CiAgICAgaWYgKHJlcGVhdCkKLSAgICAgICAgbGlzdC0+YXBwZW5kKHJlcGVhdCk7Ci0gICAgcmV0
dXJuIGxpc3QucmVsZWFzZSgpOworICAgICAgICBsaXN0LmdldCgpLmFwcGVuZCgqcmVwZWF0KTsK
KyAgICByZXR1cm4gbGlzdDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0JvcmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQm9yZGVySW1hZ2UuaAppbmRleCBiMDc2OWYzLi4wNmZhNTQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQm9yZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQm9yZGVySW1hZ2UuaApAQCAtMjcsOCArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjcmVhdGVCb3JkZXJJbWFnZVZhbHVlKFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGltYWdlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBpbWFnZVNsaWNl
LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBib3JkZXJTbGljZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IG91dHNldCwg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gcmVwZWF0KTsKK1Bhc3NSZWY8Q1NTVmFsdWVMaXN0PiBjcmVh
dGVCb3JkZXJJbWFnZVZhbHVlKFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGltYWdlLCBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBpbWFnZVNsaWNlLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBib3JkZXJTbGljZSwg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gb3V0c2V0LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiByZXBlYXQp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggNWJiZjQyNS4uNTZlZmFkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgQ1NTVmFsdWVJRCB2YWx1ZUZvclJlcGVh
dFJ1bGUoaW50IHJ1bGUpCiAgICAgfQogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gdmFsdWVGb3JJbWFnZVNsaWNlU2lkZShjb25zdCBMZW5ndGgmIGxlbmd0aCkKK3N0
YXRpYyBQYXNzUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckltYWdlU2xpY2VTaWRlKGNv
bnN0IExlbmd0aCYgbGVuZ3RoKQogewogICAgIC8vIFRoZXNlIHZhbHVlcyBjYW4gYmUgcGVyY2Vu
dGFnZXMsIG51bWJlcnMsIG9yIHdoaWxlIGFuIGFuaW1hdGlvbiBvZiBtaXhlZCB0eXBlcyBpcyBp
biBwcm9ncmVzcywKICAgICAvLyBhIGNhbGN1bGF0aW9uIHRoYXQgY29tYmluZXMgYSBwZXJjZW50
YWdlIGFuZCBhIG51bWJlci4KQEAgLTQ3Nyw3ICs0NzcsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gdmFsdWVGb3JJbWFnZVNsaWNlU2lkZShjb25zdCBMZW5ndGgmIGxl
bmd0aAogICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZSgwLCBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUik7CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU0JvcmRlcklt
YWdlU2xpY2VWYWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFnZVNsaWNlKGNvbnN0IE5pbmVQaWVj
ZUltYWdlJiBpbWFnZSkKK3N0YXRpYyBQYXNzUmVmPENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZT4g
dmFsdWVGb3JOaW5lUGllY2VJbWFnZVNsaWNlKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBpbWFnZSkK
IHsKICAgICBhdXRvJiBzbGljZXMgPSBpbWFnZS5pbWFnZVNsaWNlcygpOwogCkBAIC01MTYsNyAr
NTE2LDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlPiB2YWx1
ZUZvck5pbmVQaWVjZUltYWdlU2xpY2UoY29uc3QgTmkKICAgICByZXR1cm4gQ1NTQm9yZGVySW1h
Z2VTbGljZVZhbHVlOjpjcmVhdGUoY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUocXVhZC5yZWxl
YXNlKCkpLCBpbWFnZS5maWxsKCkpOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFnZVF1YWQoY29uc3QgTGVuZ3RoQm94JiBib3gp
CitzdGF0aWMgUGFzc1JlZjxDU1NQcmltaXRpdmVWYWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFn
ZVF1YWQoY29uc3QgTGVuZ3RoQm94JiBib3gpCiB7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiB0b3A7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByaWdodDsKQEAgLTU4MCw3
ICs1ODAsNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFn
ZVJlcGVhdChjb25zdCBOaW5lUGllY2VJbWFnZSYgaW1hZwogICAgIHJldHVybiBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZShQYWlyOjpjcmVhdGUoaG9yaXpvbnRhbFJlcGVhdC5yZWxlYXNlKCks
IHZlcnRpY2FsUmVwZWF0LnJlbGVhc2UoKSkpOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFnZShjb25zdCBOaW5lUGllY2VJbWFnZSYgaW1hZ2Up
CitzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gdmFsdWVGb3JOaW5lUGllY2VJbWFnZShjb25zdCBO
aW5lUGllY2VJbWFnZSYgaW1hZ2UpCiB7CiAgICAgaWYgKCFpbWFnZS5oYXNJbWFnZSgpKQogICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
Tm9uZSk7CkBAIC03NTcsMjcgKzc1NywyNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZUxpc3Q+
IGdldEJvcmRlclJhZGl1c1Nob3J0aGFuZFZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdAogICAg
IFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGJvdHRvbUxlZnRSYWRpdXMgPSBnZXRCb3JkZXJSYWRpdXND
b3JuZXJWYWx1ZXMoc3R5bGUtPmJvcmRlckJvdHRvbUxlZnRSYWRpdXMoKSwgc3R5bGUpOwogCiAg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gaG9yaXpvbnRhbFJhZGlpID0gQ1NTVmFsdWVMaXN0Ojpj
cmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgIGhvcml6b250YWxSYWRpaS0+YXBwZW5kKHRvcExl
ZnRSYWRpdXMtPml0ZW0oMCkpOworICAgIGhvcml6b250YWxSYWRpaS0+YXBwZW5kKCp0b3BMZWZ0
UmFkaXVzLT5pdGVtKDApKTsKICAgICBpZiAoc2hvd0hvcml6b250YWxUb3BSaWdodCkKLSAgICAg
ICAgaG9yaXpvbnRhbFJhZGlpLT5hcHBlbmQodG9wUmlnaHRSYWRpdXMtPml0ZW0oMCkpOworICAg
ICAgICBob3Jpem9udGFsUmFkaWktPmFwcGVuZCgqdG9wUmlnaHRSYWRpdXMtPml0ZW0oMCkpOwog
ICAgIGlmIChzaG93SG9yaXpvbnRhbEJvdHRvbVJpZ2h0KQotICAgICAgICBob3Jpem9udGFsUmFk
aWktPmFwcGVuZChib3R0b21SaWdodFJhZGl1cy0+aXRlbSgwKSk7CisgICAgICAgIGhvcml6b250
YWxSYWRpaS0+YXBwZW5kKCpib3R0b21SaWdodFJhZGl1cy0+aXRlbSgwKSk7CiAgICAgaWYgKHNo
b3dIb3Jpem9udGFsQm90dG9tTGVmdCkKLSAgICAgICAgaG9yaXpvbnRhbFJhZGlpLT5hcHBlbmQo
Ym90dG9tTGVmdFJhZGl1cy0+aXRlbSgwKSk7CisgICAgICAgIGhvcml6b250YWxSYWRpaS0+YXBw
ZW5kKCpib3R0b21MZWZ0UmFkaXVzLT5pdGVtKDApKTsKIAotICAgIGxpc3QuZ2V0KCkuYXBwZW5k
KGhvcml6b250YWxSYWRpaS5yZWxlYXNlKCkpOworICAgIGxpc3QuZ2V0KCkuYXBwZW5kKGhvcml6
b250YWxSYWRpaS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+
IHZlcnRpY2FsUmFkaWlMaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgp
OwotICAgIHZlcnRpY2FsUmFkaWlMaXN0LT5hcHBlbmQodG9wTGVmdFJhZGl1cy0+aXRlbSgxKSk7
CisgICAgdmVydGljYWxSYWRpaUxpc3QtPmFwcGVuZCgqdG9wTGVmdFJhZGl1cy0+aXRlbSgxKSk7
CiAgICAgaWYgKHNob3dWZXJ0aWNhbFRvcFJpZ2h0KQotICAgICAgICB2ZXJ0aWNhbFJhZGlpTGlz
dC0+YXBwZW5kKHRvcFJpZ2h0UmFkaXVzLT5pdGVtKDEpKTsKKyAgICAgICAgdmVydGljYWxSYWRp
aUxpc3QtPmFwcGVuZCgqdG9wUmlnaHRSYWRpdXMtPml0ZW0oMSkpOwogICAgIGlmIChzaG93VmVy
dGljYWxCb3R0b21SaWdodCkKLSAgICAgICAgdmVydGljYWxSYWRpaUxpc3QtPmFwcGVuZChib3R0
b21SaWdodFJhZGl1cy0+aXRlbSgxKSk7CisgICAgICAgIHZlcnRpY2FsUmFkaWlMaXN0LT5hcHBl
bmQoKmJvdHRvbVJpZ2h0UmFkaXVzLT5pdGVtKDEpKTsKICAgICBpZiAoc2hvd1ZlcnRpY2FsQm90
dG9tTGVmdCkKLSAgICAgICAgdmVydGljYWxSYWRpaUxpc3QtPmFwcGVuZChib3R0b21MZWZ0UmFk
aXVzLT5pdGVtKDEpKTsKKyAgICAgICAgdmVydGljYWxSYWRpaUxpc3QtPmFwcGVuZCgqYm90dG9t
TGVmdFJhZGl1cy0+aXRlbSgxKSk7CiAKICAgICBpZiAoIXZlcnRpY2FsUmFkaWlMaXN0LT5lcXVh
bHMoKnRvQ1NTVmFsdWVMaXN0KGxpc3QuZ2V0KCkuaXRlbSgwKSkpKQotICAgICAgICBsaXN0Lmdl
dCgpLmFwcGVuZCh2ZXJ0aWNhbFJhZGlpTGlzdC5yZWxlYXNlKCkpOworICAgICAgICBsaXN0Lmdl
dCgpLmFwcGVuZCh2ZXJ0aWNhbFJhZGlpTGlzdC5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIHJl
dHVybiBsaXN0OwogfQpAQCAtODU5LDEyICs4NTksMTIgQEAgc3RhdGljIGlubGluZSBQYXNzUmVm
PENTU1ByaW1pdGl2ZVZhbHVlPiBhZGp1c3RMZW5ndGhGb3Jab29tKGNvbnN0IExlbmd0aCYgbGVu
Z3QKICAgICByZXR1cm4gYWRqdXN0ID09IEFkanVzdFBpeGVsVmFsdWVzID8gem9vbUFkanVzdGVk
UGl4ZWxWYWx1ZShsZW5ndGgudmFsdWUoKSwgc3R5bGUpIDogY3NzVmFsdWVQb29sKCkuY3JlYXRl
VmFsdWUobGVuZ3RoKTsKIH0KIAotUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4
dHJhY3Rvcjo6dmFsdWVGb3JTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgQWRqdXN0UGl4ZWxW
YWx1ZXNGb3JDb21wdXRlZFN0eWxlIGFkanVzdCkKK1Bhc3NSZWY8Q1NTVmFsdWU+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yU2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywg
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIEFkanVz
dFBpeGVsVmFsdWVzRm9yQ29tcHV0ZWRTdHlsZSBhZGp1c3QpCiB7CiAgICAgaWYgKCFzaGFkb3cp
CiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NT
VmFsdWVOb25lKTsKIAotICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgYXV0byBsaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwogICAgIGZvciAoY29uc3QgU2hhZG93RGF0YSogY3Vy
clNoYWRvd0RhdGEgPSBzaGFkb3c7IGN1cnJTaGFkb3dEYXRhOyBjdXJyU2hhZG93RGF0YSA9IGN1
cnJTaGFkb3dEYXRhLT5uZXh0KCkpIHsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiB4ID0gYWRqdXN0TGVuZ3RoRm9yWm9vbShjdXJyU2hhZG93RGF0YS0+eCgpLCBzdHlsZSwgYWRq
dXN0KTsKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB5ID0gYWRqdXN0TGVuZ3Ro
Rm9yWm9vbShjdXJyU2hhZG93RGF0YS0+eSgpLCBzdHlsZSwgYWRqdXN0KTsKQEAgLTg3Miw5ICs4
NzIsOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1
ZUZvclNoYWRvdyhjb25zdCBTaGFkb3dEYXRhKiBzaAogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHNwcmVhZCA9IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlUZXh0U2hhZG93ID8g
UGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4oKSA6IGFkanVzdExlbmd0aEZvclpvb20oY3Vy
clNoYWRvd0RhdGEtPnNwcmVhZCgpLCBzdHlsZSwgYWRqdXN0KTsKICAgICAgICAgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBzdHlsZSA9IHByb3BlcnR5SUQgPT0gQ1NTUHJvcGVydHlUZXh0U2hh
ZG93IHx8IGN1cnJTaGFkb3dEYXRhLT5zdHlsZSgpID09IE5vcm1hbCA/IFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+KCkgOiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVJbnNldCk7CiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29sb3Ig
PSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVDb2xvclZhbHVlKGN1cnJTaGFkb3dEYXRhLT5jb2xvcigp
LnJnYigpKTsKLSAgICAgICAgbGlzdC0+cHJlcGVuZChDU1NTaGFkb3dWYWx1ZTo6Y3JlYXRlKHgu
cmVsZWFzZSgpLCB5LnJlbGVhc2UoKSwgYmx1ci5yZWxlYXNlKCksIHNwcmVhZC5yZWxlYXNlKCks
IHN0eWxlLnJlbGVhc2UoKSwgY29sb3IucmVsZWFzZSgpKSk7CisgICAgICAgIGxpc3QuZ2V0KCku
cHJlcGVuZChDU1NTaGFkb3dWYWx1ZTo6Y3JlYXRlKHgucmVsZWFzZSgpLCB5LnJlbGVhc2UoKSwg
Ymx1ci5yZWxlYXNlKCksIHNwcmVhZC5yZWxlYXNlKCksIHN0eWxlLnJlbGVhc2UoKSwgY29sb3Iu
cmVsZWFzZSgpKSk7CiAgICAgfQotICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKKyAgICByZXR1
cm4gV1RGOjptb3ZlKGxpc3QpOwogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtOTYz
LDcgKzk2Myw3IEBAIFBhc3NSZWY8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnZh
bHVlRm9yRmlsdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsCiAgICAgICAgICAgICBmaWx0ZXJW
YWx1ZSA9IFdlYktpdENTU0ZpbHRlclZhbHVlOjpjcmVhdGUoV2ViS2l0Q1NTRmlsdGVyVmFsdWU6
OlVua25vd25GaWx0ZXJPcGVyYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoZmlsdGVyVmFsdWUucmVsZWFzZSgpKTsKKyAgICAg
ICAgbGlzdC5nZXQoKS5hcHBlbmQoZmlsdGVyVmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIFdURjo6bW92ZShsaXN0KTsKQEAgLTk4MiwxOSArOTgyLDE4IEBAIHN0
YXRpYyBQYXNzUmVmPENTU1ZhbHVlPiBzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja0JyZWFkdGgo
Y29uc3QgR3JpZExlbmd0aCYgdHJhCiAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVG
b3JMZW5ndGgodHJhY2tCcmVhZHRoTGVuZ3RoLCBzdHlsZSk7CiB9CiAKLXN0YXRpYyBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja1NpemUoY29uc3QgR3JpZFRy
YWNrU2l6ZSYgdHJhY2tTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCitzdGF0aWMgUGFz
c1JlZjxDU1NWYWx1ZT4gc3BlY2lmaWVkVmFsdWVGb3JHcmlkVHJhY2tTaXplKGNvbnN0IEdyaWRU
cmFja1NpemUmIHRyYWNrU2l6ZSwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQogewogICAgIHN3
aXRjaCAodHJhY2tTaXplLnR5cGUoKSkgewogICAgIGNhc2UgTGVuZ3RoVHJhY2tTaXppbmc6CiAg
ICAgICAgIHJldHVybiBzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tTaXpl
Lmxlbmd0aCgpLCBzdHlsZSk7Ci0gICAgY2FzZSBNaW5NYXhUcmFja1NpemluZzoKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlQodHJhY2tTaXplLnR5cGUoKSA9PSBNaW5NYXhUcmFja1Npemlu
Zyk7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IG1pbk1heFRyYWNrQnJlYWR0aHMgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAgICAgICAgIG1pbk1heFRyYWNr
QnJlYWR0aHMtPmFwcGVuZChzcGVjaWZpZWRWYWx1ZUZvckdyaWRUcmFja0JyZWFkdGgodHJhY2tT
aXplLm1pblRyYWNrQnJlYWR0aCgpLCBzdHlsZSkpOwogICAgICAgICBtaW5NYXhUcmFja0JyZWFk
dGhzLT5hcHBlbmQoc3BlY2lmaWVkVmFsdWVGb3JHcmlkVHJhY2tCcmVhZHRoKHRyYWNrU2l6ZS5t
YXhUcmFja0JyZWFkdGgoKSwgc3R5bGUpKTsKICAgICAgICAgcmV0dXJuIENTU0Z1bmN0aW9uVmFs
dWU6OmNyZWF0ZSgibWlubWF4KCIsIG1pbk1heFRyYWNrQnJlYWR0aHMpOwogICAgIH0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgYWRk
VmFsdWVzRm9yTmFtZWRHcmlkTGluZXNBdEluZGV4KGNvbnN0IE9yZGVyZWROYW1lZEdyaWRMaW5l
c01hcCYgb3JkZXJlZE5hbWVkR3JpZExpbmVzLCBzaXplX3QgaSwgQ1NTVmFsdWVMaXN0JiBsaXN0
KQpAQCAtMTAwNiw3ICsxMDA1LDcgQEAgc3RhdGljIHZvaWQgYWRkVmFsdWVzRm9yTmFtZWRHcmlk
TGluZXNBdEluZGV4KGNvbnN0IE9yZGVyZWROYW1lZEdyaWRMaW5lc01hcCYgb3IKICAgICBSZWZQ
dHI8Q1NTR3JpZExpbmVOYW1lc1ZhbHVlPiBsaW5lTmFtZXMgPSBDU1NHcmlkTGluZU5hbWVzVmFs
dWU6OmNyZWF0ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZWRHcmlkTGluZXMu
c2l6ZSgpOyArK2kpCiAgICAgICAgIGxpbmVOYW1lcy0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZVZhbHVlKG5hbWVkR3JpZExpbmVzW2ldLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklO
RykpOwotICAgIGxpc3QuYXBwZW5kKGxpbmVOYW1lcy5yZWxlYXNlKCkpOworICAgIGxpc3QuYXBw
ZW5kKGxpbmVOYW1lcy5yZWxlYXNlTm9uTnVsbCgpKTsKIH0KIAogc3RhdGljIFBhc3NSZWY8Q1NT
VmFsdWU+IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uLCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUp
CkBAIC0xMTM2LDcgKzExMzUsNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZUxpc3Q+IHNjcm9s
bFNuYXBDb29yZGluYXRlcyhSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFZlYwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBjdXJyZW50Q29vcmRpbmF0ZS0+YXBwZW5kKHpvb21BZGp1c3RlZFBp
eGVsVmFsdWUodmFsdWVGb3JMZW5ndGgocG9pbnQsIDApLCBzdHlsZSkpOwogCi0gICAgICAgIHNu
YXBDb29yZGluYXRlc1ZhbHVlLT5hcHBlbmQoUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+KFdURjo6
bW92ZShjdXJyZW50Q29vcmRpbmF0ZSkpKTsKKyAgICAgICAgc25hcENvb3JkaW5hdGVzVmFsdWUt
PmFwcGVuZChjdXJyZW50Q29vcmRpbmF0ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAg
cmV0dXJuIHNuYXBDb29yZGluYXRlc1ZhbHVlLnJlbGVhc2VOb25OdWxsKCk7CiB9CkBAIC0xMTY4
LDcgKzExNjcsNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZUxpc3Q+IGdldER1cmF0aW9uVmFs
dWUoY29uc3QgQW5pbWF0aW9uTGlzdCogYW5pbUxpc3QpCiAgICAgcmV0dXJuIGxpc3Q7CiB9CiAK
LXN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjcmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGNv
bnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKK3N0YXRpYyBQYXNzUmVmPENTU1Zh
bHVlPiBjcmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1p
bmdGdW5jdGlvbikKIHsKICAgICBzd2l0Y2ggKHRpbWluZ0Z1bmN0aW9uLT50eXBlKCkpIHsKICAg
ICBjYXNlIFRpbWluZ0Z1bmN0aW9uOjpDdWJpY0JlemllckZ1bmN0aW9uOiB7CkBAIC0xMTg1LDEy
ICsxMTg0LDEwIEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjcmVhdGVUaW1pbmdGdW5j
dGlvblZhbHVlKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pCiAgICAgICAgICAgICBjYXNlIEN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb246OkVhc2VPdXQ6CiAgICAgICAgICAgICAgICAgdmFsdWVJ
ZCA9IENTU1ZhbHVlRWFzZU91dDsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6RWFzZUluT3V0OgorICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBU1NFUlQoYmV6aWVyVGltaW5nRnVuY3Rpb24tPnRp
bWluZ0Z1bmN0aW9uUHJlc2V0KCkgPT0gQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbjo6RWFzZUlu
T3V0KTsKICAgICAgICAgICAgICAgICB2YWx1ZUlkID0gQ1NTVmFsdWVFYXNlSW5PdXQ7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZSh2YWx1ZUlkKTsKICAgICAgICAgfQpAQCAtMTIwMCwxMSArMTE5NywxMCBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3JlYXRlVGltaW5nRnVuY3Rpb25WYWx1ZShjb25zdCBU
aW1pbmdGdW5jdGlvbiogdGltaQogICAgICAgICBjb25zdCBTdGVwc1RpbWluZ0Z1bmN0aW9uKiBz
dGVwc1RpbWluZ0Z1bmN0aW9uID0gc3RhdGljX2Nhc3Q8Y29uc3QgU3RlcHNUaW1pbmdGdW5jdGlv
bio+KHRpbWluZ0Z1bmN0aW9uKTsKICAgICAgICAgcmV0dXJuIENTU1N0ZXBzVGltaW5nRnVuY3Rp
b25WYWx1ZTo6Y3JlYXRlKHN0ZXBzVGltaW5nRnVuY3Rpb24tPm51bWJlck9mU3RlcHMoKSwgc3Rl
cHNUaW1pbmdGdW5jdGlvbi0+c3RlcEF0U3RhcnQoKSk7CiAgICAgfQotICAgIGNhc2UgVGltaW5n
RnVuY3Rpb246OkxpbmVhckZ1bmN0aW9uOgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCh0
aW1pbmdGdW5jdGlvbi0+dHlwZSgpID09IFRpbWluZ0Z1bmN0aW9uOjpMaW5lYXJGdW5jdGlvbik7
CiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NT
VmFsdWVMaW5lYXIpOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gMDsKIH0KIAogc3RhdGljIFBhc3NSZWY8Q1NTVmFsdWVMaXN0PiBnZXRUaW1pbmdGdW5jdGlv
blZhbHVlKGNvbnN0IEFuaW1hdGlvbkxpc3QqIGFuaW1MaXN0KQpAQCAtMTQzNCwxOCArMTQzMCwx
NSBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gZmlsbFJlcGVhdFRvQ1NTVmFsdWUoRUZpbGxS
ZXBlYXQgeFJlcGVhdCwgRUZpbGxSZXBlYXQgeQogICAgIHJldHVybiBXVEY6Om1vdmUobGlzdCk7
CiB9CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBmaWxsU291cmNlVHlwZVRvQ1NTVmFs
dWUoRU1hc2tTb3VyY2VUeXBlIHR5cGUpCitzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZT4gZmlsbFNv
dXJjZVR5cGVUb0NTU1ZhbHVlKEVNYXNrU291cmNlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgewogICAgIGNhc2UgTWFza0FscGhhOgogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
KCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVBbHBoYSk7Ci0gICAgY2FzZSBNYXNrTHVtaW5hbmNlOgor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVCh0eXBlID09IE1hc2tMdW1pbmFuY2UpOwogICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoQ1NTVmFsdWVMdW1pbmFuY2Up
OwogICAgIH0KLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgcmV0dXJuIDA7CiB9
CiAKIHN0YXRpYyBQYXNzUmVmPENTU1ZhbHVlPiBmaWxsU2l6ZVRvQ1NTVmFsdWUoY29uc3QgRmls
bFNpemUmIGZpbGxTaXplLCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpCkBAIC0xNDc3LDcgKzE0
NzAsNyBAQCBzdGF0aWMgUGFzc1JlZjxDU1NWYWx1ZUxpc3Q+IGNvbnRlbnRUb0NTU1ZhbHVlKGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICAgICAgaWYgKGNvbnRlbnREYXRhLT5pc0NvdW50
ZXIoKSkKICAgICAgICAgICAgIGxpc3QuZ2V0KCkuYXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZVZhbHVlKHRvQ291bnRlckNvbnRlbnREYXRhKGNvbnRlbnREYXRhKS0+Y291bnRlcigpLmlkZW50
aWZpZXIoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19DT1VOVEVSX05BTUUpKTsKICAgICAgICAg
ZWxzZSBpZiAoY29udGVudERhdGEtPmlzSW1hZ2UoKSkKLSAgICAgICAgICAgIGxpc3QuZ2V0KCku
YXBwZW5kKHRvSW1hZ2VDb250ZW50RGF0YShjb250ZW50RGF0YSktPmltYWdlKCkuY3NzVmFsdWUo
KSk7CisgICAgICAgICAgICBsaXN0LmdldCgpLmFwcGVuZCgqdG9JbWFnZUNvbnRlbnREYXRhKGNv
bnRlbnREYXRhKS0+aW1hZ2UoKS5jc3NWYWx1ZSgpKTsKICAgICAgICAgZWxzZSBpZiAoY29udGVu
dERhdGEtPmlzVGV4dCgpKQogICAgICAgICAgICAgbGlzdC5nZXQoKS5hcHBlbmQoY3NzVmFsdWVQ
b29sKCkuY3JlYXRlVmFsdWUodG9UZXh0Q29udGVudERhdGEoY29udGVudERhdGEpLT50ZXh0KCks
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKSk7CiAgICAgfQpAQCAtMTY5MCw3ICsxNjgz
LDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjb21wdXRlUmVuZGVy
U3R5bGVGb3JQcm9wZXJ0eShOb2RlKiBzdHlsZWQKIH0KIAogI2lmIEVOQUJMRShDU1NfU0hBUEVT
KQotc3RhdGljIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHNoYXBlUHJvcGVydHlWYWx1ZShjb25zdCBS
ZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUpCitzdGF0aWMg
UGFzc1JlZjxDU1NWYWx1ZT4gc2hhcGVQcm9wZXJ0eVZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZSwgY29uc3QgU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSkKIHsKICAgICBpZiAoIXNoYXBlVmFs
dWUpCiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVOb25lKTsKQEAgLTE2OTgsOCArMTY5MSwxMSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gc2hhcGVQcm9wZXJ0eVZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgY29u
c3QgUwogICAgIGlmIChzaGFwZVZhbHVlLT50eXBlKCkgPT0gU2hhcGVWYWx1ZTo6VHlwZTo6Qm94
KQogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc2hhcGVWYWx1ZS0+
Y3NzQm94KCkpOwogCi0gICAgaWYgKHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBTaGFwZVZhbHVlOjpU
eXBlOjpJbWFnZSkKLSAgICAgICAgcmV0dXJuIHNoYXBlVmFsdWUtPmltYWdlKCkgPyBzaGFwZVZh
bHVlLT5pbWFnZSgpLT5jc3NWYWx1ZSgpIDogY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmll
clZhbHVlKENTU1ZhbHVlTm9uZSk7CisgICAgaWYgKHNoYXBlVmFsdWUtPnR5cGUoKSA9PSBTaGFw
ZVZhbHVlOjpUeXBlOjpJbWFnZSkgeworICAgICAgICBpZiAoc2hhcGVWYWx1ZS0+aW1hZ2UoKSkK
KyAgICAgICAgICAgIHJldHVybiAqc2hhcGVWYWx1ZS0+aW1hZ2UoKS0+Y3NzVmFsdWUoKTsKKyAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1
ZU5vbmUpOworICAgIH0KIAogICAgIEFTU0VSVChzaGFwZVZhbHVlLT50eXBlKCkgPT0gU2hhcGVW
YWx1ZTo6VHlwZTo6U2hhcGUpOwogCkBAIC0xNzA3LDcgKzE3MDMsNyBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gc2hhcGVQcm9wZXJ0eVZhbHVlKGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSwgY29uc3QgUwogICAgIGxpc3QtPmFwcGVuZCh2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUsIHNo
YXBlVmFsdWUtPnNoYXBlKCkpKTsKICAgICBpZiAoc2hhcGVWYWx1ZS0+Y3NzQm94KCkgIT0gQm94
TWlzc2luZykKICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVl
KHNoYXBlVmFsdWUtPmNzc0JveCgpKSk7Ci0gICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOworICAg
IHJldHVybiBsaXN0LnJlbGVhc2VOb25OdWxsKCk7CiB9CiAjZW5kaWYKIApAQCAtMTc3OSw3ICsx
Nzc1LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgICAgIFJlZlB0cjxDU1NW
YWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CiAg
ICAgICAgICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3VyckxheWVyID0gbGF5ZXJzOyBjdXJy
TGF5ZXI7IGN1cnJMYXllciA9IGN1cnJMYXllci0+bmV4dCgpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKGN1cnJMYXllci0+aW1hZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5k
KGN1cnJMYXllci0+aW1hZ2UoKS0+Y3NzVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGxp
c3QtPmFwcGVuZCgqY3VyckxheWVyLT5pbWFnZSgpLT5jc3NWYWx1ZSgpKTsKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKSk7CiAgICAgICAgICAgICB9CkBA
IC0yMDMyLDE0ICsyMDI4LDE0IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVF
eHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAg
ICAgICAgbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY3Vyc29ycy0+c2l6ZSgpOyArK2kp
CiAgICAgICAgICAgICAgICAgICAgIGlmIChTdHlsZUltYWdlKiBpbWFnZSA9IGN1cnNvcnMtPmF0
KGkpLmltYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoaW1hZ2Ut
PmNzc1ZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKCppbWFn
ZS0+Y3NzVmFsdWUoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBSZWZQdHI8Q1NTVmFs
dWU+IHZhbHVlID0gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmN1cnNvcigpKTsK
KyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShzdHls
ZS0+Y3Vyc29yKCkpOwogICAgICAgICAgICAgaWYgKGxpc3QpIHsKLSAgICAgICAgICAgICAgICBs
aXN0LT5hcHBlbmQodmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICBsaXN0LT5hcHBl
bmQoV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFz
ZSgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnJlbGVhc2UoKTsK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om1vdmUodmFsdWUpOwogICAgICAgICB9CiAjaWYgRU5B
QkxFKENVUlNPUl9WSVNJQklMSVRZKQogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q3Vy
c29yVmlzaWJpbGl0eToKQEAgLTI0MjEsNyArMjQxNyw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0CiAgICAgICAgICAgICAvLyBnZXRQcm9wZXJ0eUNTU1ZhbHVlKCkgcmV0dXJucyBDU1NWYWx1
ZUxpc3QuCiAgICAgICAgICAgICBpZiAoc3R5bGUtPnRleHRJbmRlbnRMaW5lKCkgPT0gVGV4dElu
ZGVudEVhY2hMaW5lIHx8IHN0eWxlLT50ZXh0SW5kZW50VHlwZSgpID09IFRleHRJbmRlbnRIYW5n
aW5nKSB7CiAgICAgICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgICAgICBsaXN0LT5h
cHBlbmQodGV4dEluZGVudC5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZCh0ZXh0SW5kZW50LnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGlmIChzdHls
ZS0+dGV4dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50RWFjaExpbmUpCiAgICAgICAgICAgICAg
ICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVXZWJraXRFYWNoTGluZSkpOwogICAgICAgICAgICAgICAgIGlmIChzdHlsZS0+dGV4
dEluZGVudFR5cGUoKSA9PSBUZXh0SW5kZW50SGFuZ2luZykKQEAgLTI4MTksNyArMjgxNSw3IEBA
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVu
ZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVWYWx1ZShhbmltYXRpb24uZHVyYXRpb24oKSwgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19TKSk7CiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChj
cmVhdGVUaW1pbmdGdW5jdGlvblZhbHVlKGFuaW1hdGlvbi50aW1pbmdGdW5jdGlvbigpLmdldCgp
KSk7CiAgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVh
dGVWYWx1ZShhbmltYXRpb24uZGVsYXkoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zTGlzdC0+YXBwZW5kKGxpc3QpOworICAgICAg
ICAgICAgICAgICAgICB0cmFuc2l0aW9uc0xpc3QtPmFwcGVuZChsaXN0LnJlbGVhc2VOb25OdWxs
KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNpdGlv
bnNMaXN0LnJlbGVhc2UoKTsKICAgICAgICAgICAgIH0KQEAgLTMxOTAsNyArMzE4Niw3IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpnZXRDU1NQcm9w
ZXJ0eVZhbHVlc0ZvclNob3J0aGFuCiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENT
U1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNob3J0aGFuZC5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1
ZT4gdmFsdWUgPSBwcm9wZXJ0eVZhbHVlKHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbaV0sIERvTm90
VXBkYXRlTGF5b3V0KTsKLSAgICAgICAgbGlzdC0+YXBwZW5kKHZhbHVlKTsKKyAgICAgICAgbGlz
dC0+YXBwZW5kKHZhbHVlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIH0KICAgICByZXR1cm4gbGlz
dC5yZWxlYXNlKCk7CiB9CkBAIC0zMjEyLDEzICszMjA4LDEzIEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWVMaXN0PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjpnZXRDU1NQcm9wZXJ0eVZhbHVlc0ZvclNp
ZGVzU2hvCiAgICAgYm9vbCBzaG93Qm90dG9tID0gIWNvbXBhcmVDU1NWYWx1ZVB0cih0b3BWYWx1
ZSwgYm90dG9tVmFsdWUpIHx8IHNob3dMZWZ0OwogICAgIGJvb2wgc2hvd1JpZ2h0ID0gIWNvbXBh
cmVDU1NWYWx1ZVB0cih0b3BWYWx1ZSwgcmlnaHRWYWx1ZSkgfHwgc2hvd0JvdHRvbTsKIAotICAg
IGxpc3QtPmFwcGVuZCh0b3BWYWx1ZS5yZWxlYXNlKCkpOworICAgIGxpc3QtPmFwcGVuZCh0b3BW
YWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBpZiAoc2hvd1JpZ2h0KQotICAgICAgICBsaXN0
LT5hcHBlbmQocmlnaHRWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICBsaXN0LT5hcHBlbmQocmln
aHRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBpZiAoc2hvd0JvdHRvbSkKLSAgICAgICAg
bGlzdC0+YXBwZW5kKGJvdHRvbVZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIGxpc3QtPmFwcGVu
ZChib3R0b21WYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBpZiAoc2hvd0xlZnQpCi0gICAg
ICAgIGxpc3QtPmFwcGVuZChsZWZ0VmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgbGlzdC0+YXBw
ZW5kKGxlZnRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIHJldHVybiBsaXN0LnJlbGVh
c2UoKTsKIH0KQEAgLTMyMjgsNyArMzIyNCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBD
b21wdXRlZFN0eWxlRXh0cmFjdG9yOjpnZXRDU1NQcm9wZXJ0eVZhbHVlc0ZvckdyaWRTaG9yCiAg
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU2xhc2hT
ZXBhcmF0ZWQoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNob3J0aGFuZC5sZW5ndGgo
KTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBwcm9wZXJ0eVZhbHVl
KHNob3J0aGFuZC5wcm9wZXJ0aWVzKClbaV0sIERvTm90VXBkYXRlTGF5b3V0KTsKLSAgICAgICAg
bGlzdC0+YXBwZW5kKHZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIGxpc3QtPmFwcGVuZCh2YWx1
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICB9CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwog
fQpAQCAtMzMxOCw4ICszMzE0LDggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IENvbXB1dGVk
U3R5bGVFeHRyYWN0b3I6OmdldEJhY2tncm91bmRTaG9ydGhhbmRWYWx1ZSgpIGMKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ2xpcCB9OwogCiAgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU2xhc2hTZXBhcmF0ZWQoKTsKLSAgICBsaXN0
LT5hcHBlbmQoZ2V0Q1NTUHJvcGVydHlWYWx1ZXNGb3JTaG9ydGhhbmRQcm9wZXJ0aWVzKFN0eWxl
UHJvcGVydHlTaG9ydGhhbmQoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kLCBwcm9wZXJ0aWVzQmVmb3Jl
U2xhc2hTZXBlcmF0b3IsIFdURl9BUlJBWV9MRU5HVEgocHJvcGVydGllc0JlZm9yZVNsYXNoU2Vw
ZXJhdG9yKSkpKTsKLSAgICBsaXN0LT5hcHBlbmQoZ2V0Q1NTUHJvcGVydHlWYWx1ZXNGb3JTaG9y
dGhhbmRQcm9wZXJ0aWVzKFN0eWxlUHJvcGVydHlTaG9ydGhhbmQoQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kLCBwcm9wZXJ0aWVzQWZ0ZXJTbGFzaFNlcGVyYXRvciwgV1RGX0FSUkFZX0xFTkdUSChwcm9w
ZXJ0aWVzQWZ0ZXJTbGFzaFNlcGVyYXRvcikpKSk7CisgICAgbGlzdC0+YXBwZW5kKCpnZXRDU1NQ
cm9wZXJ0eVZhbHVlc0ZvclNob3J0aGFuZFByb3BlcnRpZXMoU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZChDU1NQcm9wZXJ0eUJhY2tncm91bmQsIHByb3BlcnRpZXNCZWZvcmVTbGFzaFNlcGVyYXRvciwg
V1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzQmVmb3JlU2xhc2hTZXBlcmF0b3IpKSkpOworICAg
IGxpc3QtPmFwcGVuZCgqZ2V0Q1NTUHJvcGVydHlWYWx1ZXNGb3JTaG9ydGhhbmRQcm9wZXJ0aWVz
KFN0eWxlUHJvcGVydHlTaG9ydGhhbmQoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kLCBwcm9wZXJ0aWVz
QWZ0ZXJTbGFzaFNlcGVyYXRvciwgV1RGX0FSUkFZX0xFTkdUSChwcm9wZXJ0aWVzQWZ0ZXJTbGFz
aFNlcGVyYXRvcikpKSk7CiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggMWEw
OTUzZC4uZGExMjIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uaApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IHN2Z1Byb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCwgRVVwZGF0ZUxheW91
dCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxTVkdQYWludD4gYWRqdXN0U1ZHUGFpbnRGb3JDdXJy
ZW50Q29sb3IoUGFzc1JlZlB0cjxTVkdQYWludD4sIFJlbmRlclN0eWxlKikgY29uc3Q7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JTaGFkb3coY29uc3QgU2hhZG93
RGF0YSosIENTU1Byb3BlcnR5SUQsIGNvbnN0IFJlbmRlclN0eWxlKiwgQWRqdXN0UGl4ZWxWYWx1
ZXNGb3JDb21wdXRlZFN0eWxlID0gQWRqdXN0UGl4ZWxWYWx1ZXMpOworICAgIHN0YXRpYyBQYXNz
UmVmPENTU1ZhbHVlPiB2YWx1ZUZvclNoYWRvdyhjb25zdCBTaGFkb3dEYXRhKiwgQ1NTUHJvcGVy
dHlJRCwgY29uc3QgUmVuZGVyU3R5bGUqLCBBZGp1c3RQaXhlbFZhbHVlc0ZvckNvbXB1dGVkU3R5
bGUgPSBBZGp1c3RQaXhlbFZhbHVlcyk7CiAgICAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gY3VycmVudENvbG9yT3JWYWxpZENvbG9yKFJlbmRlclN0eWxlKiwgY29uc3QgQ29sb3ImKSBj
b25zdDsKIAogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBnZXRDU1NQcm9wZXJ0eVZhbHVl
c0ZvclNob3J0aGFuZFByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcAppbmRleCBmNzgxNWVmLi40
NjQ4ODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcApAQCAtMTY4LDgg
KzE2OCw4IEBAIHZvaWQgQ1NTRm9udFNlbGVjdG9yOjphZGRGb250RmFjZVJ1bGUoY29uc3QgU3R5
bGVSdWxlRm9udEZhY2UqIGZvbnRGYWNlUnVsZSkKICAgICAgICAgLy8gZm9udC12YXJpYW50IGRl
c2NyaXB0b3IgY2FuIGJlIGEgdmFsdWUgbGlzdC4KICAgICAgICAgaWYgKGZvbnRWYXJpYW50LT5p
c1ByaW1pdGl2ZVZhbHVlKCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxp
c3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICBs
aXN0LT5hcHBlbmQoZm9udFZhcmlhbnQpOwotICAgICAgICAgICAgZm9udFZhcmlhbnQgPSBsaXN0
OworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGZvbnRWYXJpYW50LnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICAgICAgZm9udFZhcmlhbnQgPSBsaXN0LnJlbGVhc2VOb25OdWxsKCk7CiAgICAg
ICAgIH0gZWxzZSBpZiAoIWZvbnRWYXJpYW50LT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDJjZjlkY2IuLmVlMjIzOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGljIGJv
b2wgaGFzUHJlZml4KGNvbnN0IGNoYXIqIHN0cmluZywgdW5zaWduZWQgbGVuZ3RoLCBjb25zdCBj
aGFyKiBwcmVmaXgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlUHJpbWl0aXZlVmFsdWVQYWlyKFBhc3NSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IGZpcnN0LCBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzZWNv
bmQpCitzdGF0aWMgUGFzc1JlZjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlUHJpbWl0aXZlVmFs
dWVQYWlyKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGZpcnN0LCBQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBzZWNvbmQpCiB7CiAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZVZhbHVlKFBhaXI6OmNyZWF0ZShmaXJzdCwgc2Vjb25kKSk7CiB9CkBAIC0xMjU2LDcgKzEy
NTYsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZVRyYW5zbGF0ZVRyYW5zZm9ybVZhbHVlKE11dGFibGVT
dHlsZVByb3BlcnRpZXMqIHByb3BlcnRpZXMsIENTUwogICAgIGlmICghc3VjY2VzcykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHJlc3VsdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBhcmF0ZWQoKTsKLSAgICByZXN1bHQtPmFwcGVuZCh0cmFu
c2Zvcm1WYWx1ZS5yZWxlYXNlKCkpOworICAgIHJlc3VsdC0+YXBwZW5kKHRyYW5zZm9ybVZhbHVl
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgIHByb3BlcnRpZXMtPmFkZFBhcnNlZFByb3BlcnR5KENT
U1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtLCByZXN1bHQucmVsZWFzZSgpLCBp
bXBvcnRhbnQpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2OTcsNyArMTY5Nyw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjp2YWxpZFVuaXQoQ1NTUGFyc2VyVmFsdWUqIHZhbHVlLCBVbml0cyB1bml0
ZmxhZ3MsIENTU1BhcnNlck1vZGUKICAgICByZXR1cm4gYjsKIH0KIAotaW5saW5lIFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1BhcnNlcjo6Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1Zh
bHVlKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK2lubGluZSBQYXNzUmVmPENTU1ByaW1pdGl2ZVZh
bHVlPiBDU1NQYXJzZXI6OmNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZShDU1NQYXJzZXJWYWx1
ZSogdmFsdWUpCiB7CiAgICAgaWYgKG1fcGFyc2VkQ2FsY3VsYXRpb24pIHsKICAgICAgICAgQVNT
RVJUKGlzQ2FsY3VsYXRpb24odmFsdWUpKTsKQEAgLTE3MTcsNyArMTcxNyw3IEBAIGlubGluZSBQ
YXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OmNyZWF0ZVByaW1pdGl2ZU51
bWVyaWNWYWx1ZShDU1NQCiAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHZh
bHVlLT5mVmFsdWUsIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXM+KHZh
bHVlLT51bml0KSk7CiB9CiAKLWlubGluZSBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBD
U1NQYXJzZXI6OmNyZWF0ZVByaW1pdGl2ZVN0cmluZ1ZhbHVlKENTU1BhcnNlclZhbHVlKiB2YWx1
ZSkKK2lubGluZSBQYXNzUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OmNyZWF0ZVBy
aW1pdGl2ZVN0cmluZ1ZhbHVlKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsKICAgICBBU1NFUlQo
dmFsdWUtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcgfHwgdmFsdWUtPnVu
aXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVCk7CiAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZVZhbHVlKHZhbHVlLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
U1RSSU5HKTsKQEAgLTMwOTMsMjEgKzMwOTMsMjIgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OmFkZEZpbGxWYWx1ZShSZWZQdHI8Q1NTVmFsdWU+JiBs
dmFsLCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBydmFsKQordm9pZCBDU1NQYXJzZXI6OmFkZEZpbGxW
YWx1ZShSZWZQdHI8Q1NTVmFsdWU+JiBsdmFsLCBQYXNzUmVmPENTU1ZhbHVlPiBydmFsKQogewot
ICAgIGlmIChsdmFsKSB7Ci0gICAgICAgIGlmIChsdmFsLT5pc0Jhc2VWYWx1ZUxpc3QoKSkKLSAg
ICAgICAgICAgIHRvQ1NTVmFsdWVMaXN0KGx2YWwuZ2V0KCkpLT5hcHBlbmQocnZhbCk7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gb2xkbFZhbChsdmFs
LnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9
IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgIGxpc3Qt
PmFwcGVuZChvbGRsVmFsKTsKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChydmFsKTsKLSAgICAg
ICAgICAgIGx2YWwgPSBsaXN0OwotICAgICAgICB9CisgICAgaWYgKCFsdmFsKSB7CisgICAgICAg
IGx2YWwgPSBXVEY6Om1vdmUocnZhbCk7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgZWxz
ZQotICAgICAgICBsdmFsID0gcnZhbDsKKworICAgIGlmIChsdmFsLT5pc0Jhc2VWYWx1ZUxpc3Qo
KSkgeworICAgICAgICB0b0NTU1ZhbHVlTGlzdCgqbHZhbCkuYXBwZW5kKFdURjo6bW92ZShydmFs
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgbGlzdC5nZXQoKS5hcHBlbmQobHZhbC5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICBsaXN0LmdldCgpLmFwcGVuZChXVEY6Om1vdmUocnZhbCkp
OworICAgIGx2YWwgPSBXVEY6Om1vdmUobGlzdCk7CiB9CiAKIHN0YXRpYyBib29sIGlzSXRlbVBv
c2l0aW9uS2V5d29yZChDU1NWYWx1ZUlEIGlkKQpAQCAtMzE4NywxMSArMzE4OCw5IEBAIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZU5vbkVsZW1lbnRTbmFwUG9pbnRzKENTU1Byb3BlcnR5SUQgcHJvcElk
LCBib29sIGltcG9ydGFudCkKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiB2YWx1ZXMgPSBD
U1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgd2hpbGUgKENTU1BhcnNl
clZhbHVlKiB2YWwgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpKSB7Ci0gICAgICAgIFJlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VkVmFsdWU7Ci0gICAgICAgIGlmICh2YWxpZFVuaXQodmFsLCBGUGVyY2Vu
dCB8IEZMZW5ndGgpKSB7Ci0gICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IGNyZWF0ZVByaW1pdGl2
ZU51bWVyaWNWYWx1ZSh2YWwpOwotICAgICAgICAgICAgdmFsdWVzLT5hcHBlbmQocGFyc2VkVmFs
dWUucmVsZWFzZSgpKTsKLSAgICAgICAgfSBlbHNlIGlmICh2YWwtPnVuaXQgPT0gQ1NTUGFyc2Vy
VmFsdWU6OkZ1bmN0aW9uCisgICAgICAgIGlmICh2YWxpZFVuaXQodmFsLCBGUGVyY2VudCB8IEZM
ZW5ndGgpKQorICAgICAgICAgICAgdmFsdWVzLT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJp
Y1ZhbHVlKHZhbCkpOworICAgICAgICBlbHNlIGlmICh2YWwtPnVuaXQgPT0gQ1NTUGFyc2VyVmFs
dWU6OkZ1bmN0aW9uCiAgICAgICAgICAgICAmJiB2YWwtPmZ1bmN0aW9uLT5hcmdzICE9IDAKICAg
ICAgICAgICAgICYmIHZhbC0+ZnVuY3Rpb24tPmFyZ3MtPnNpemUoKSA9PSAxCiAgICAgICAgICAg
ICAmJiBlcXVhbElnbm9yaW5nQ2FzZSh2YWwtPmZ1bmN0aW9uLT5uYW1lLCAicmVwZWF0KCIpKSB7
CkBAIC0zMjI5LDggKzMyMjgsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VTY3JvbGxTbmFwRGVz
dGluYXRpb24oQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGlmICgh
dmFsaWRVbml0KGN1clBhcnNlclZhbCwgRlBlcmNlbnQgfCBGTGVuZ3RoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWVZID0gY3JlYXRlUHJpbWl0
aXZlTnVtZXJpY1ZhbHVlKGN1clBhcnNlclZhbCk7Ci0gICAgcG9zaXRpb24tPmFwcGVuZChjc3NW
YWx1ZVgucmVsZWFzZSgpKTsKLSAgICBwb3NpdGlvbi0+YXBwZW5kKGNzc1ZhbHVlWS5yZWxlYXNl
KCkpOworICAgIHBvc2l0aW9uLT5hcHBlbmQoY3NzVmFsdWVYLnJlbGVhc2VOb25OdWxsKCkpOwor
ICAgIHBvc2l0aW9uLT5hcHBlbmQoY3NzVmFsdWVZLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIGFk
ZFByb3BlcnR5KHByb3BJZCwgcG9zaXRpb24sIGltcG9ydGFudCk7CiAgICAgbV92YWx1ZUxpc3Qt
Pm5leHQoKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTMzMjgsMTUgKzMzMjcsMTUgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlRmlsbFNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgY29uc3Qg
Q1NTUHJvcGVydHlJRCogcHIKICAgICAgICAgICAgICAgICBDU1NQYXJzZXJWYWx1ZSogcGFyc2Vy
VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgICAgICAgICAgICAgIGlmIChwYXJz
ZUZpbGxQcm9wZXJ0eShwcm9wZXJ0aWVzW2ldLCBwcm9wSWQxLCBwcm9wSWQyLCB2YWwxLCB2YWwy
KSkgewogICAgICAgICAgICAgICAgICAgICBwYXJzZWRQcm9wZXJ0eVtpXSA9IGZvdW5kID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICAgICAgYWRkRmlsbFZhbHVlKHZhbHVlc1tpXSwgdmFsMS5yZWxl
YXNlKCkpOworICAgICAgICAgICAgICAgICAgICBhZGRGaWxsVmFsdWUodmFsdWVzW2ldLCB2YWwx
LnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllc1tp
XSA9PSBDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3NpdGlvbiB8fCBwcm9wZXJ0aWVzW2ldID09IENT
U1Byb3BlcnR5V2Via2l0TWFza1Bvc2l0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgYWRk
RmlsbFZhbHVlKHBvc2l0aW9uWVZhbHVlLCB2YWwyLnJlbGVhc2UoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBhZGRGaWxsVmFsdWUocG9zaXRpb25ZVmFsdWUsIHZhbDIucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzW2ldID09IENTU1Byb3Bl
cnR5QmFja2dyb3VuZFJlcGVhdCB8fCBwcm9wZXJ0aWVzW2ldID09IENTU1Byb3BlcnR5V2Via2l0
TWFza1JlcGVhdCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZpbGxWYWx1ZShyZXBlYXRZ
VmFsdWUsIHZhbDIucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFkZEZpbGxW
YWx1ZShyZXBlYXRZVmFsdWUsIHZhbDIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChwcm9wZXJ0aWVzW2ldID09IENTU1Byb3BlcnR5QmFja2dyb3VuZE9yaWdpbiB8
fCBwcm9wZXJ0aWVzW2ldID09IENTU1Byb3BlcnR5V2Via2l0TWFza09yaWdpbikgewogICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gUmVwYXJzZSB0aGUgdmFsdWUgYXMgYSBjbGlwLCBhbmQgc2Vl
IGlmIHdlIHN1Y2NlZWQuCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VCYWNrZ3Jv
dW5kQ2xpcChwYXJzZXJWYWx1ZSwgdmFsMSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWRkRmlsbFZhbHVlKGNsaXBWYWx1ZSwgdmFsMS5yZWxlYXNlKCkpOyAvLyBUaGUgcHJvcGVydHkg
cGFyc2VkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRGaWxs
VmFsdWUoY2xpcFZhbHVlLCB2YWwxLnJlbGVhc2VOb25OdWxsKCkpOyAvLyBUaGUgcHJvcGVydHkg
cGFyc2VkIHN1Y2Nlc3NmdWxseS4KICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhZGRGaWxsVmFsdWUoY2xpcFZhbHVlLCBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsgLy8gU29tZSB2YWx1ZSB3YXMgdXNl
ZCBmb3Igb3JpZ2luIHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBjbGlwLiBKdXN0IHJlc2V0IGNs
aXAgaW5zdGVhZC4KICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMzQwMiwyMSArMzQwMSwyMiBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VGaWxsU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQgcHJvcElk
LCBjb25zdCBDU1NQcm9wZXJ0eUlEKiBwcgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIENT
U1BhcnNlcjo6YWRkQW5pbWF0aW9uVmFsdWUoUmVmUHRyPENTU1ZhbHVlPiYgbHZhbCwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcnZhbCkKK3ZvaWQgQ1NTUGFyc2VyOjphZGRBbmltYXRpb25WYWx1ZShS
ZWZQdHI8Q1NTVmFsdWU+JiBsdmFsLCBQYXNzUmVmPENTU1ZhbHVlPiBydmFsKQogewotICAgIGlm
IChsdmFsKSB7Ci0gICAgICAgIGlmIChsdmFsLT5pc1ZhbHVlTGlzdCgpKQotICAgICAgICAgICAg
dG9DU1NWYWx1ZUxpc3QobHZhbC5nZXQoKSktPmFwcGVuZChydmFsKTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBvbGRWYWwobHZhbC5yZWxlYXNlKCkp
OwotICAgICAgICAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxp
c3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICBsaXN0LT5hcHBlbmQob2xk
VmFsKTsKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChydmFsKTsKLSAgICAgICAgICAgIGx2YWwg
PSBsaXN0OwotICAgICAgICB9CisgICAgaWYgKCFsdmFsKSB7CisgICAgICAgIGx2YWwgPSBXVEY6
Om1vdmUocnZhbCk7CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgZWxzZQotICAgICAgICBs
dmFsID0gcnZhbDsKKworICAgIGlmIChsdmFsLT5pc1ZhbHVlTGlzdCgpKSB7CisgICAgICAgIHRv
Q1NTVmFsdWVMaXN0KCpsdmFsKS5hcHBlbmQoV1RGOjptb3ZlKHJ2YWwpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFT
ZXBhcmF0ZWQoKTsKKyAgICBsaXN0LmdldCgpLmFwcGVuZChsdmFsLnJlbGVhc2VOb25OdWxsKCkp
OworICAgIGxpc3QuZ2V0KCkuYXBwZW5kKFdURjo6bW92ZShydmFsKSk7CisgICAgbHZhbCA9IFdU
Rjo6bW92ZShsaXN0KTsKIH0KIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0aW9uU2hvcnRo
YW5kKGJvb2wgaW1wb3J0YW50KQpAQCAtMzQ1OCw3ICszNDU4LDcgQEAgYm9vbCBDU1NQYXJzZXI6
OnBhcnNlQW5pbWF0aW9uU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogICAgICAgICAgICAgICAg
IFJlZlB0cjxDU1NWYWx1ZT4gdmFsOwogICAgICAgICAgICAgICAgIGlmIChwYXJzZUFuaW1hdGlv
blByb3BlcnR5KGFuaW1hdGlvblByb3BlcnRpZXMucHJvcGVydGllcygpW2ldLCB2YWwsIGNvbnRl
eHQpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFByb3BlcnR5W2ldID0gZm91bmQgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICBhZGRBbmltYXRpb25WYWx1ZSh2YWx1ZXNbaV0sIHZh
bC5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgICAgICBhZGRBbmltYXRpb25WYWx1ZSh2YWx1
ZXNbaV0sIHZhbC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzUxOSw3ICszNTE5LDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlVHJhbnNpdGlvblNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHBy
b3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2
YWw7CiAgICAgICAgICAgICAgICAgaWYgKHBhcnNlQW5pbWF0aW9uUHJvcGVydHkoc2hvcnRoYW5k
LnByb3BlcnRpZXMoKVtpXSwgdmFsLCBjb250ZXh0KSkgewogICAgICAgICAgICAgICAgICAgICBw
YXJzZWRQcm9wZXJ0eVtpXSA9IGZvdW5kID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYWRk
QW5pbWF0aW9uVmFsdWUodmFsdWVzW2ldLCB2YWwucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgYWRkQW5pbWF0aW9uVmFsdWUodmFsdWVzW2ldLCB2YWwucmVsZWFzZU5vbk51bGwoKSk7
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG1vcmUg
dmFsdWVzIHRvIHByb2Nlc3MgYnV0ICdub25lJyBvciAnYWxsJyB3ZXJlIGFscmVhZHkgZGVmaW5l
ZCBhcyB0aGUgYW5pbWF0aW9uIHByb3BlcnR5LCB0aGUgZGVjbGFyYXRpb24gYmVjb21lcyBpbnZh
bGlkLgpAQCAtMzc1MywxMiArMzc1Myw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVF1b3RlcyhD
U1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CiAgICAgUmVmUHRyPENTU1Zh
bHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgpOwog
ICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSogdmFsID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkg
ewotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHBhcnNlZFZhbHVlOwotICAgICAgICBpZiAodmFs
LT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKQotICAgICAgICAgICAgcGFy
c2VkVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbC0+c3RyaW5nLCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAgaWYgKHZhbC0+
dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykKICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB2YWx1ZXMtPmFwcGVuZChwYXJzZWRWYWx1ZS5yZWxlYXNlKCkpOworICAgICAg
ICB2YWx1ZXMtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbC0+c3RyaW5nLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORykpOwogICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4
dCgpOwogICAgIH0KICAgICBpZiAodmFsdWVzLT5sZW5ndGgoKSkgewpAQCAtMzg1OSw3ICszODU2
LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29udGVudChDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgIH0KICAgICAgICAgaWYgKCFwYXJzZWRWYWx1ZSkKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB2YWx1ZXMtPmFwcGVuZChwYXJzZWRWYWx1ZS5yZWxl
YXNlKCkpOworICAgICAgICB2YWx1ZXMtPmFwcGVuZChwYXJzZWRWYWx1ZS5yZWxlYXNlTm9uTnVs
bCgpKTsKICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICB9CiAKQEAgLTQ1MDYsMjEg
KzQ1MDMsMjEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmlsbFByb3BlcnR5KENTU1Byb3BlcnR5
SUQgcHJvcElkLCBDU1NQcm9wZXJ0eUlEJiBwcm9wSWQxLAogCiAgICAgICAgICAgICBpZiAodmFs
dWUgJiYgIXZhbHVlcykgewogICAgICAgICAgICAgICAgIHZhbHVlcyA9IENTU1ZhbHVlTGlzdDo6
Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZCh2
YWx1ZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5kKHZhbHVlLnJl
bGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAodmFsdWUy
ICYmICF2YWx1ZXMyKSB7CiAgICAgICAgICAgICAgICAgdmFsdWVzMiA9IENTU1ZhbHVlTGlzdDo6
Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKLSAgICAgICAgICAgICAgICB2YWx1ZXMyLT5hcHBlbmQo
dmFsdWUyLnJlbGVhc2UoKSk7CisgICAgICAgICAgICAgICAgdmFsdWVzMi0+YXBwZW5kKHZhbHVl
Mi5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKHZh
bHVlcykKLSAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChjdXJyVmFsdWUucmVsZWFzZSgp
KTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChjdXJyVmFsdWUucmVsZWFzZU5vbk51
bGwoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBjdXJyVmFs
dWUucmVsZWFzZSgpOwogICAgICAgICAgICAgaWYgKGN1cnJWYWx1ZTIpIHsKICAgICAgICAgICAg
ICAgICBpZiAodmFsdWVzMikKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVzMi0+YXBwZW5kKGN1
cnJWYWx1ZTIucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzMi0+YXBwZW5k
KGN1cnJWYWx1ZTIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICB2YWx1ZTIgPSBjdXJyVmFsdWUyLnJlbGVhc2UoKTsKICAgICAgICAg
ICAgIH0KQEAgLTQ4MTUsMTEgKzQ4MTIsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlQW5pbWF0
aW9uUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIFJlZlB0cjxDU1NWYWx1ZT4mIHIKIAog
ICAgICAgICAgICAgaWYgKHZhbHVlICYmICF2YWx1ZXMpIHsKICAgICAgICAgICAgICAgICB2YWx1
ZXMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7Ci0gICAgICAgICAgICAg
ICAgdmFsdWVzLT5hcHBlbmQodmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICB2YWx1
ZXMtPmFwcGVuZCh2YWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgaWYgKHZhbHVlcykKLSAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChjdXJy
VmFsdWUucmVsZWFzZSgpKTsKKyAgICAgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZChjdXJyVmFs
dWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
dmFsdWUgPSBjdXJyVmFsdWUucmVsZWFzZSgpOwogCkBAIC00OTIzLDkgKzQ5MjAsOSBAQCBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFBvc2l0aW9uKCkKICAgICBpZiAo
aGFzU2VlblNwYW5LZXl3b3JkKQogICAgICAgICB2YWx1ZXMtPmFwcGVuZChjc3NWYWx1ZVBvb2wo
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVTcGFuKSk7CiAgICAgaWYgKG51bWVyaWNW
YWx1ZSkKLSAgICAgICAgdmFsdWVzLT5hcHBlbmQobnVtZXJpY1ZhbHVlLnJlbGVhc2UoKSk7Cisg
ICAgICAgIHZhbHVlcy0+YXBwZW5kKG51bWVyaWNWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICBpZiAoZ3JpZExpbmVOYW1lKQotICAgICAgICB2YWx1ZXMtPmFwcGVuZChncmlkTGluZU5hbWUu
cmVsZWFzZSgpKTsKKyAgICAgICAgdmFsdWVzLT5hcHBlbmQoZ3JpZExpbmVOYW1lLnJlbGVhc2VO
b25OdWxsKCkpOwogICAgIEFTU0VSVCh2YWx1ZXMtPmxlbmd0aCgpKTsKICAgICByZXR1cm4gdmFs
dWVzLnJlbGVhc2UoKTsKIH0KQEAgLTQ5OTksNyArNDk5Niw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZUdyaWRUZW1wbGF0ZVJvd3NBbmRBcmVhcyhQYXNzUmVmUHRyPENTU1ZhbHVlPiB0ZW1wbGF0
ZUNvbHVtCiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gcGFyc2VHcmlkVHJh
Y2tTaXplKCptX3ZhbHVlTGlzdCk7CiAgICAgICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIHRlbXBsYXRlUm93cy0+YXBwZW5kKHZh
bHVlLnJlbGVhc2UoKSk7CisgICAgICAgICAgICB0ZW1wbGF0ZVJvd3MtPmFwcGVuZCh2YWx1ZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB0ZW1wbGF0ZVJv
d3MtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVB
dXRvKSk7CiAKQEAgLTUyMDQsNyArNTIwMSw3IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZUdyaWRM
aW5lTmFtZXMoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIENTU1ZhbHVlTGlzdCYKICAg
ICAgICAgaWRlbnRMaXN0LT5uZXh0KCk7CiAgICAgfQogICAgIGlmICghcHJldmlvdXNOYW1lZEFy
ZWFUcmFpbGluZ0xpbmVOYW1lcykKLSAgICAgICAgdmFsdWVMaXN0LmFwcGVuZChsaW5lTmFtZXMu
cmVsZWFzZSgpKTsKKyAgICAgICAgdmFsdWVMaXN0LmFwcGVuZChsaW5lTmFtZXMucmVsZWFzZU5v
bk51bGwoKSk7CiAKICAgICBpbnB1dExpc3QubmV4dCgpOwogfQpAQCAtNTIzNCw3ICs1MjMxLDcg
QEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja0xpc3QoKQog
ICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IHBhcnNlR3JpZFRyYWNrU2l6ZSgq
bV92YWx1ZUxpc3QpOwogICAgICAgICAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIHZhbHVlcy0+YXBwZW5kKHZhbHVlLnJlbGVhc2Uo
KSk7CisgICAgICAgICAgICB2YWx1ZXMtPmFwcGVuZCh2YWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICAgICAgfQogICAgICAgICBzZWVuVHJhY2tTaXplT3JSZXBlYXRGdW5jdGlvbiA9IHRydWU7
CiAKQEAgLTUyNzYsNyArNTI3Myw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUcmFja1Jl
cGVhdEZ1bmN0aW9uKENTU1ZhbHVlTGlzdCYgbGlzdCkKICAgICAgICAgaWYgKCF0cmFja1NpemUp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmVwZWF0ZWRWYWx1ZXMtPmFw
cGVuZCh0cmFja1NpemUucmVsZWFzZSgpKTsKKyAgICAgICAgcmVwZWF0ZWRWYWx1ZXMtPmFwcGVu
ZCh0cmFja1NpemUucmVsZWFzZU5vbk51bGwoKSk7CiAKICAgICAgICAgLy8gVGhpcyB0YWtlcyBj
YXJlIG9mIGFueSB0cmFpbGluZyA8Y3VzdG9tLWlkZW50PiogaW4gdGhlIGdyYW1tYXIuCiAgICAg
ICAgIGN1cnJlbnRWYWx1ZSA9IGFyZ3VtZW50cy0+Y3VycmVudCgpOwpAQCAtNTI4Niw3ICs1Mjgz
LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFs
dWVMaXN0JiBsaXN0KQogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXBldGl0aW9uczsg
KytpKSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcmVwZWF0ZWRWYWx1ZXMtPmxl
bmd0aCgpOyArK2opCi0gICAgICAgICAgICBsaXN0LmFwcGVuZChyZXBlYXRlZFZhbHVlcy0+aXRl
bVdpdGhvdXRCb3VuZHNDaGVjayhqKSk7CisgICAgICAgICAgICBsaXN0LmFwcGVuZCgqcmVwZWF0
ZWRWYWx1ZXMtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaikpOwogICAgIH0KIAogICAgIG1fdmFs
dWVMaXN0LT5uZXh0KCk7CkBAIC01MzE2LDggKzUzMTMsOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0
TGlzdAogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlz
dD4gcGFyc2VkQXJndW1lbnRzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVDb21tYVNlcGFyYXRlZCgp
OwotICAgICAgICBwYXJzZWRBcmd1bWVudHMtPmFwcGVuZChtaW5UcmFja0JyZWFkdGgpOwotICAg
ICAgICBwYXJzZWRBcmd1bWVudHMtPmFwcGVuZChtYXhUcmFja0JyZWFkdGgpOworICAgICAgICBw
YXJzZWRBcmd1bWVudHMtPmFwcGVuZChtaW5UcmFja0JyZWFkdGgucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgICAgIHBhcnNlZEFyZ3VtZW50cy0+YXBwZW5kKG1heFRyYWNrQnJlYWR0aC5yZWxlYXNl
Tm9uTnVsbCgpKTsKICAgICAgICAgcmV0dXJuIENTU0Z1bmN0aW9uVmFsdWU6OmNyZWF0ZSgibWlu
bWF4KCIsIHBhcnNlZEFyZ3VtZW50cyk7CiAgICAgfQogCkBAIC02MDQ2LDEwICs2MDQzLDExIEBA
IFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VCYXNpY1NoYXBlQW5kT3JCb3go
Q1NTUHJvcGVydHlJRCBwcm9wSWQpCiAgICAgICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IHNoYXBlVmFsdWUgPSBwYXJzZUJhc2ljU2hhcGUoKTsKICAgICAgICAgICAgIGlmICghc2hh
cGVWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIGxp
c3QtPmFwcGVuZChzaGFwZVZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBsaXN0LT5hcHBl
bmQoc2hhcGVWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIHNoYXBlRm91bmQg
PSB0cnVlOwogICAgICAgICB9IGVsc2UgaWYgKGlzQm94VmFsdWUodmFsdWVJZCwgcHJvcElkKSAm
JiAhYm94Rm91bmQpIHsKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChwYXJzZVZhbGlkUHJpbWl0
aXZlKHZhbHVlSWQsIHZhbHVlKSk7CisgICAgICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IHBhcnNlZFZhbHVlID0gcGFyc2VWYWxpZFByaW1pdGl2ZSh2YWx1ZUlkLCB2YWx1ZSk7Cisg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQocGFyc2VkVmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAg
ICAgICAgICAgICBib3hGb3VuZCA9IHRydWU7CiAgICAgICAgICAgICBtX3ZhbHVlTGlzdC0+bmV4
dCgpOwogICAgICAgICB9IGVsc2UKQEAgLTYzNzUsNyArNjM3Myw3IEBAIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZUZvbnRWYXJpYW50KGJvb2wgaW1wb3J0YW50KQogICAgICAgICBtX3ZhbHVlTGlzdC0+
bmV4dCgpOwogCiAgICAgICAgIGlmICh2YWx1ZXMpCi0gICAgICAgICAgICB2YWx1ZXMtPmFwcGVu
ZChwYXJzZWRWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgdmFsdWVzLT5hcHBlbmQocGFy
c2VkVmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
YWRkUHJvcGVydHkoQ1NTUHJvcGVydHlGb250VmFyaWFudCwgcGFyc2VkVmFsdWUucmVsZWFzZSgp
LCBpbXBvcnRhbnQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC05MTQ4LDcgKzkxNDYs
NyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTUGFyc2VyOjpwYXJzZVRyYW5zZm9ybSgp
CiAgICAgICAgIGlmICghcGFyc2VkVHJhbnNmb3JtVmFsdWUpCiAgICAgICAgICAgICByZXR1cm4g
MDsKIAotICAgICAgICBsaXN0LT5hcHBlbmQocGFyc2VkVHJhbnNmb3JtVmFsdWUucmVsZWFzZSgp
KTsKKyAgICAgICAgbGlzdC0+YXBwZW5kKHBhcnNlZFRyYW5zZm9ybVZhbHVlLnJlbGVhc2VOb25O
dWxsKCkpOwogICAgIH0KIAogICAgIHJldHVybiBsaXN0LnJlbGVhc2UoKTsKQEAgLTkzNDMsNyAr
OTM0MSw3IEBAIFBhc3NSZWZQdHI8V2ViS2l0Q1NTRmlsdGVyVmFsdWU+IENTU1BhcnNlcjo6cGFy
c2VCdWlsdGluRmlsdGVyQXJndW1lbnRzKENTU1BhcnNlCiAgICAgICAgIGlmICghc2hhZG93VmFs
dWVMaXN0IHx8IHNoYWRvd1ZhbHVlTGlzdC0+bGVuZ3RoKCkgIT0gMSkKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICAKLSAgICAgICAgZmlsdGVyVmFsdWUtPmFwcGVuZCgoc2hhZG93VmFs
dWVMaXN0LnJlbGVhc2UoKSktPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCkpOworICAgICAgICBm
aWx0ZXJWYWx1ZS0+YXBwZW5kKCpzaGFkb3dWYWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hl
Y2soMCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKQEAgLTkzNjksNyAr
OTM2Nyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbHRlcihDU1NQYXJzZXJWYWx1ZUxpc3Qq
IHZhbHVlTGlzdCwgUmVmUHRyPENTU1ZhbHVlPiYgcmVzCiAgICAgICAgIGlmICh2YWx1ZS0+dW5p
dCA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewogICAgICAgICAgICAgUmVmUHRyPFdl
YktpdENTU0ZpbHRlclZhbHVlPiByZWZlcmVuY2VGaWx0ZXJWYWx1ZSA9IFdlYktpdENTU0ZpbHRl
clZhbHVlOjpjcmVhdGUoV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OlJlZmVyZW5jZUZpbHRlck9wZXJh
dGlvbik7CiAgICAgICAgICAgICByZWZlcmVuY2VGaWx0ZXJWYWx1ZS0+YXBwZW5kKENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19V
UkkpKTsKLSAgICAgICAgICAgIGxpc3QtPmFwcGVuZChyZWZlcmVuY2VGaWx0ZXJWYWx1ZS5yZWxl
YXNlKCkpOworICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHJlZmVyZW5jZUZpbHRlclZhbHVlLnJl
bGVhc2VOb25OdWxsKCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgY29uc3QgQ1NT
UGFyc2VyU3RyaW5nIG5hbWUgPSB2YWx1ZS0+ZnVuY3Rpb24tPm5hbWU7CiAgICAgICAgICAgICB1
bnNpZ25lZCBtYXhpbXVtQXJndW1lbnRDb3VudCA9IDE7CkBAIC05Mzg3LDcgKzkzODUsNyBAQCBi
b29sIENTU1BhcnNlcjo6cGFyc2VGaWx0ZXIoQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Qs
IFJlZlB0cjxDU1NWYWx1ZT4mIHJlcwogICAgICAgICAgICAgaWYgKCFmaWx0ZXJWYWx1ZSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGxp
c3QtPmFwcGVuZChmaWx0ZXJWYWx1ZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgbGlzdC0+YXBw
ZW5kKGZpbHRlclZhbHVlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC05Njk1LDggKzk2OTMsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VUZXh0RW1waGFzaXNTdHls
ZShib29sIGltcG9ydGFudCkKIAogICAgIGlmIChmaWxsICYmIHNoYXBlKSB7CiAgICAgICAgIFJl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHBhcnNlZFZhbHVlcyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3Bh
Y2VTZXBhcmF0ZWQoKTsKLSAgICAgICAgcGFyc2VkVmFsdWVzLT5hcHBlbmQoZmlsbC5yZWxlYXNl
KCkpOwotICAgICAgICBwYXJzZWRWYWx1ZXMtPmFwcGVuZChzaGFwZS5yZWxlYXNlKCkpOworICAg
ICAgICBwYXJzZWRWYWx1ZXMtPmFwcGVuZChmaWxsLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAg
ICBwYXJzZWRWYWx1ZXMtPmFwcGVuZChzaGFwZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAg
YWRkUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUZXh0RW1waGFzaXNTdHlsZSwgcGFyc2VkVmFs
dWVzLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDI2NzYyYjguLmUyZWJkM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKQEAgLTE0MSw5ICsxNDEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZUZpbGxQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgQ1NTUHJvcGVydHlJRCYgcHJvcElkMSwgQ1NT
UHJvcGVydHlJRCYgcHJvcElkMiwgUmVmUHRyPENTU1ZhbHVlPiYsIFJlZlB0cjxDU1NWYWx1ZT4m
KTsKICAgICBib29sIHBhcnNlRmlsbFNob3J0aGFuZChDU1NQcm9wZXJ0eUlELCBjb25zdCBDU1NQ
cm9wZXJ0eUlEKiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVydGllcywgYm9vbCBpbXBvcnRhbnQp
OwogCi0gICAgdm9pZCBhZGRGaWxsVmFsdWUoUmVmUHRyPENTU1ZhbHVlPiYgbHZhbCwgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gcnZhbCk7Ci0KLSAgICB2b2lkIGFkZEFuaW1hdGlvblZhbHVlKFJlZlB0
cjxDU1NWYWx1ZT4mIGx2YWwsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHJ2YWwpOworICAgIHZvaWQg
YWRkRmlsbFZhbHVlKFJlZlB0cjxDU1NWYWx1ZT4mIGx2YWwsIFBhc3NSZWY8Q1NTVmFsdWU+IHJ2
YWwpOworICAgIHZvaWQgYWRkQW5pbWF0aW9uVmFsdWUoUmVmUHRyPENTU1ZhbHVlPiYgbHZhbCwg
UGFzc1JlZjxDU1NWYWx1ZT4gcnZhbCk7CiAKICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJz
ZUFuaW1hdGlvbkRlbGF5KCk7CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcGFyc2VBbmltYXRp
b25EaXJlY3Rpb24oKTsKQEAgLTQxMyw4ICs0MTIsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0
cjxTdHlsZVJ1bGVCYXNlPiBjcmVhdGVWaWV3cG9ydFJ1bGUoKTsKICNlbmRpZgogCi0gICAgUGFz
c1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKENT
U1BhcnNlclZhbHVlKik7Ci0gICAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY3JlYXRl
UHJpbWl0aXZlU3RyaW5nVmFsdWUoQ1NTUGFyc2VyVmFsdWUqKTsKKyAgICBQYXNzUmVmPENTU1By
aW1pdGl2ZVZhbHVlPiBjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoQ1NTUGFyc2VyVmFsdWUq
KTsKKyAgICBQYXNzUmVmPENTU1ByaW1pdGl2ZVZhbHVlPiBjcmVhdGVQcmltaXRpdmVTdHJpbmdW
YWx1ZShDU1NQYXJzZXJWYWx1ZSopOwogCiAgICAgc3RhdGljIFVSTCBjb21wbGV0ZVVSTChjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5LmNwcAppbmRleCBlNmVjMjAyLi5kZTBhY2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eS5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgQ1NTUHJvcGVydHlJRCBTdHlsZVByb3BlcnR5
TWV0YWRhdGE6OnNob3J0aGFuZElEKCkgY29uc3QKIAogdm9pZCBDU1NQcm9wZXJ0eTo6d3JhcFZh
bHVlSW5Db21tYVNlcGFyYXRlZExpc3QoKQogewotICAgIFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUg
PSBtX3ZhbHVlLnJlbGVhc2UoKTsKLSAgICBtX3ZhbHVlID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVD
b21tYVNlcGFyYXRlZCgpOwotICAgIHRvQ1NTVmFsdWVMaXN0KG1fdmFsdWUuZ2V0KCkpLT5hcHBl
bmQodmFsdWUucmVsZWFzZSgpKTsKKyAgICBhdXRvIGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0
ZUNvbW1hU2VwYXJhdGVkKCk7CisgICAgbGlzdC5nZXQoKS5hcHBlbmQobV92YWx1ZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICBtX3ZhbHVlID0gV1RGOjptb3ZlKGxpc3QpOwogfQogCiBlbnVtIExv
Z2ljYWxCb3hTaWRlIHsgQmVmb3JlU2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNpZGUg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXggY2M4MjRkNi4uOWVhYTdhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTQzLDE3ICs0MywyMyBAQCBDU1NW
YWx1ZUxpc3Q6OkNTU1ZhbHVlTGlzdChDU1NQYXJzZXJWYWx1ZUxpc3QmIHBhcnNlclZhbHVlcykK
IHsKICAgICBtX3ZhbHVlTGlzdFNlcGFyYXRvciA9IFNwYWNlU2VwYXJhdG9yOwogICAgIG1fdmFs
dWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocGFyc2VyVmFsdWVzLnNpemUoKSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9IHBhcnNlclZhbHVlcy5zaXplKCk7IGkgPCBzaXplOyAr
K2kpCi0gICAgICAgIG1fdmFsdWVzLnVuY2hlY2tlZEFwcGVuZChwYXJzZXJWYWx1ZXMudmFsdWVB
dChpKS0+Y3JlYXRlQ1NTVmFsdWUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6ZSA9
IHBhcnNlclZhbHVlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgUmVmUHRyPENT
U1ZhbHVlPiB2YWx1ZSA9IHBhcnNlclZhbHVlcy52YWx1ZUF0KGkpLT5jcmVhdGVDU1NWYWx1ZSgp
OworICAgICAgICBBU1NFUlQodmFsdWUpOworICAgICAgICBtX3ZhbHVlcy51bmNoZWNrZWRBcHBl
bmQodmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQogfQogCiBib29sIENTU1ZhbHVlTGlz
dDo6cmVtb3ZlQWxsKENTU1ZhbHVlKiB2YWwpCiB7CisgICAgLy8gRklYTUU6IFdoeSBldmVuIHRh
a2UgYSBwb2ludGVyPworICAgIGlmICghdmFsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICBib29sIGZvdW5kID0gZmFsc2U7Ci0gICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8
IG1fdmFsdWVzLnNpemUoKTsgaW5kZXgrKykgewotICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+JiB2
YWx1ZSA9IG1fdmFsdWVzLmF0KGluZGV4KTsKLSAgICAgICAgaWYgKHZhbHVlICYmIHZhbCAmJiB2
YWx1ZS0+ZXF1YWxzKCp2YWwpKSB7Ci0gICAgICAgICAgICBtX3ZhbHVlcy5yZW1vdmUoaW5kZXgp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewor
ICAgICAgICBpZiAobV92YWx1ZXNbaV0uZ2V0KCkuZXF1YWxzKCp2YWwpKSB7CisgICAgICAgICAg
ICBtX3ZhbHVlcy5yZW1vdmUoaSk7CiAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAg
IH0KICAgICB9CkBAIC02Myw5ICs2OSwxMiBAQCBib29sIENTU1ZhbHVlTGlzdDo6cmVtb3ZlQWxs
KENTU1ZhbHVlKiB2YWwpCiAKIGJvb2wgQ1NTVmFsdWVMaXN0OjpoYXNWYWx1ZShDU1NWYWx1ZSog
dmFsKSBjb25zdAogewotICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBtX3ZhbHVl
cy5zaXplKCk7IGluZGV4KyspIHsKLSAgICAgICAgY29uc3QgUmVmUHRyPENTU1ZhbHVlPiYgdmFs
dWUgPSBtX3ZhbHVlcy5hdChpbmRleCk7Ci0gICAgICAgIGlmICh2YWx1ZSAmJiB2YWwgJiYgdmFs
dWUtPmVxdWFscygqdmFsKSkKKyAgICAvLyBGSVhNRTogV2h5IGV2ZW4gdGFrZSBhIHBvaW50ZXI/
CisgICAgaWYgKCF2YWwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIHNpemUgPSBtX3ZhbHVlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1fdmFsdWVzW2ldLmdldCgpLmVxdWFscygqdmFsKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC04Nyw4ICs5Niw4IEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWVMaXN0PiBDU1NWYWx1ZUxpc3Q6OmNvcHkoKQogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KLSAgICBmb3IgKHNpemVfdCBpbmRl
eCA9IDA7IGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpOyBpbmRleCsrKQotICAgICAgICBuZXdMaXN0
LT5hcHBlbmQobV92YWx1ZXNbaW5kZXhdKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXpl
ID0gbV92YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBuZXdMaXN0LT5hcHBl
bmQobV92YWx1ZXNbaV0uZ2V0KCkpOwogICAgIHJldHVybiBuZXdMaXN0LnJlbGVhc2UoKTsKIH0K
IApAQCAtMTEwLDExICsxMTksMTAgQEAgU3RyaW5nIENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHVu
c2lnbmVkIHNpemUgPSBtX3ZhbHVlcy5zaXplKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNpemU7IGkrKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX3ZhbHVl
cy5zaXplKCk7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNFbXB0eSgp
KQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzZXBhcmF0b3IpOwotICAgICAgICByZXN1bHQu
YXBwZW5kKG1fdmFsdWVzW2ldLT5jc3NUZXh0KCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKG1f
dmFsdWVzW2ldLmdldCgpLmNzc1RleHQoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdC50
b1N0cmluZygpOwpAQCAtMTIyLDcgKzEzMCwxNyBAQCBTdHJpbmcgQ1NTVmFsdWVMaXN0OjpjdXN0
b21DU1NUZXh0KCkgY29uc3QKIAogYm9vbCBDU1NWYWx1ZUxpc3Q6OmVxdWFscyhjb25zdCBDU1NW
YWx1ZUxpc3QmIG90aGVyKSBjb25zdAogewotICAgIHJldHVybiBtX3ZhbHVlTGlzdFNlcGFyYXRv
ciA9PSBvdGhlci5tX3ZhbHVlTGlzdFNlcGFyYXRvciAmJiBjb21wYXJlQ1NTVmFsdWVWZWN0b3I8
Q1NTVmFsdWU+KG1fdmFsdWVzLCBvdGhlci5tX3ZhbHVlcyk7CisgICAgaWYgKG1fdmFsdWVMaXN0
U2VwYXJhdG9yICE9IG90aGVyLm1fdmFsdWVMaXN0U2VwYXJhdG9yKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAobV92YWx1ZXMuc2l6ZSgpICE9IG90aGVyLm1fdmFsdWVzLnNpemUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgc2l6
ZSA9IG1fdmFsdWVzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBpZiAoIW1fdmFs
dWVzW2ldLmdldCgpLmVxdWFscyhvdGhlci5tX3ZhbHVlc1tpXS5nZXQoKSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIENTU1Zh
bHVlTGlzdDo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKQEAgLTEzMCwyMSAr
MTQ4LDE5IEBAIGJvb2wgQ1NTVmFsdWVMaXN0OjplcXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVy
KSBjb25zdAogICAgIGlmIChtX3ZhbHVlcy5zaXplKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgY29uc3QgUmVmUHRyPENTU1ZhbHVlPiYgdmFsdWUgPSBtX3ZhbHVlc1swXTsK
LSAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUtPmVxdWFscyhvdGhlcik7CisgICAgcmV0dXJuIG1f
dmFsdWVzWzBdLmdldCgpLmVxdWFscyhvdGhlcik7CiB9CiAKIHZvaWQgQ1NTVmFsdWVMaXN0Ojph
ZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyhMaXN0SGFzaFNldDxVUkw+JiB1cmxzLCBjb25zdCBTdHls
ZVNoZWV0Q29udGVudHMqIHN0eWxlU2hlZXQpIGNvbnN0CiB7Ci0gICAgc2l6ZV90IHNpemUgPSBt
X3ZhbHVlcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0g
ICAgICAgIG1fdmFsdWVzW2ldLT5hZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyh1cmxzLCBzdHlsZVNo
ZWV0KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBzaXplID0gbV92YWx1ZXMuc2l6ZSgpOyBp
IDwgc2l6ZTsgKytpKQorICAgICAgICBtX3ZhbHVlc1tpXS5nZXQoKS5hZGRTdWJyZXNvdXJjZVN0
eWxlVVJMcyh1cmxzLCBzdHlsZVNoZWV0KTsKIH0KIAogYm9vbCBDU1NWYWx1ZUxpc3Q6Omhhc0Zh
aWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSBjb25zdAogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV92YWx1ZXNb
aV0tPmhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSkKKyAgICAgICAgaWYgKG1fdmFs
dWVzW2ldLmdldCgpLmhhc0ZhaWxlZE9yQ2FuY2VsZWRTdWJyZXNvdXJjZXMoKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTQsOSArMTcw
LDkgQEAgQ1NTVmFsdWVMaXN0OjpDU1NWYWx1ZUxpc3QoY29uc3QgQ1NTVmFsdWVMaXN0JiBjbG9u
ZUZyb20pCiAgICAgOiBDU1NWYWx1ZShjbG9uZUZyb20uY2xhc3NUeXBlKCksIC8qIGlzQ1NTT01T
YWZlICovIHRydWUpCiB7CiAgICAgbV92YWx1ZUxpc3RTZXBhcmF0b3IgPSBjbG9uZUZyb20ubV92
YWx1ZUxpc3RTZXBhcmF0b3I7Ci0gICAgbV92YWx1ZXMucmVzaXplKGNsb25lRnJvbS5tX3ZhbHVl
cy5zaXplKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7
ICsraSkKLSAgICAgICAgbV92YWx1ZXNbaV0gPSBjbG9uZUZyb20ubV92YWx1ZXNbaV0tPmNsb25l
Rm9yQ1NTT00oKTsKKyAgICBtX3ZhbHVlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNsb25lRnJv
bS5tX3ZhbHVlcy5zaXplKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBjbG9u
ZUZyb20ubV92YWx1ZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBtX3ZhbHVlcy51
bmNoZWNrZWRBcHBlbmQoKmNsb25lRnJvbS5tX3ZhbHVlc1tpXS0+Y2xvbmVGb3JDU1NPTSgpKTsK
IH0KIAogUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IENTU1ZhbHVlTGlzdDo6Y2xvbmVGb3JDU1NP
TSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmgKaW5kZXggYTVjMDA1MS4uMDEyNzky
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaApAQCAtNDksMTMgKzQ5LDEzIEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBzaXplX3QgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXMu
c2l6ZSgpOyB9Ci0gICAgQ1NTVmFsdWUqIGl0ZW0oc2l6ZV90IGluZGV4KSB7IHJldHVybiBpbmRl
eCA8IG1fdmFsdWVzLnNpemUoKSA/IG1fdmFsdWVzW2luZGV4XS5nZXQoKSA6IDA7IH0KLSAgICBj
b25zdCBDU1NWYWx1ZSogaXRlbShzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwg
bV92YWx1ZXMuc2l6ZSgpID8gbV92YWx1ZXNbaW5kZXhdLmdldCgpIDogMDsgfQotICAgIENTU1Zh
bHVlKiBpdGVtV2l0aG91dEJvdW5kc0NoZWNrKHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV92YWx1
ZXNbaW5kZXhdLmdldCgpOyB9Ci0gICAgY29uc3QgQ1NTVmFsdWUqIGl0ZW1XaXRob3V0Qm91bmRz
Q2hlY2soc2l6ZV90IGluZGV4KSBjb25zdCB7IEFTU0VSVChpbmRleCA8IG1fdmFsdWVzLnNpemUo
KSk7IHJldHVybiBtX3ZhbHVlc1tpbmRleF0uZ2V0KCk7IH0KKyAgICBDU1NWYWx1ZSogaXRlbShz
aXplX3QgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpID8gJm1fdmFsdWVz
W2luZGV4XS5nZXQoKSA6IG51bGxwdHI7IH0KKyAgICBjb25zdCBDU1NWYWx1ZSogaXRlbShzaXpl
X3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpID8gJm1fdmFs
dWVzW2luZGV4XS5nZXQoKSA6IG51bGxwdHI7IH0KKyAgICBDU1NWYWx1ZSogaXRlbVdpdGhvdXRC
b3VuZHNDaGVjayhzaXplX3QgaW5kZXgpIHsgcmV0dXJuICZtX3ZhbHVlc1tpbmRleF0uZ2V0KCk7
IH0KKyAgICBjb25zdCBDU1NWYWx1ZSogaXRlbVdpdGhvdXRCb3VuZHNDaGVjayhzaXplX3QgaW5k
ZXgpIGNvbnN0IHsgQVNTRVJUKGluZGV4IDwgbV92YWx1ZXMuc2l6ZSgpKTsgcmV0dXJuICZtX3Zh
bHVlc1tpbmRleF0uZ2V0KCk7IH0KIAotICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8Q1NTVmFs
dWU+KTsKLSAgICB2b2lkIHByZXBlbmQoUGFzc1JlZlB0cjxDU1NWYWx1ZT4pOworICAgIHZvaWQg
YXBwZW5kKFBhc3NSZWY8Q1NTVmFsdWU+KTsKKyAgICB2b2lkIHByZXBlbmQoUGFzc1JlZjxDU1NW
YWx1ZT4pOwogICAgIGJvb2wgcmVtb3ZlQWxsKENTU1ZhbHVlKik7CiAgICAgYm9vbCBoYXNWYWx1
ZShDU1NWYWx1ZSopIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8Q1NTVmFsdWVMaXN0PiBjb3B5KCk7
CkBAIC03OCwyMSArNzgsMTkgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1NWYWx1ZUxpc3Qo
VmFsdWVMaXN0U2VwYXJhdG9yKTsKICAgICBleHBsaWNpdCBDU1NWYWx1ZUxpc3QoQ1NTUGFyc2Vy
VmFsdWVMaXN0Jik7CiAKLSAgICBWZWN0b3I8UmVmUHRyPENTU1ZhbHVlPiwgND4gbV92YWx1ZXM7
CisgICAgVmVjdG9yPFJlZjxDU1NWYWx1ZT4sIDQ+IG1fdmFsdWVzOwogfTsKIAogQ1NTX1ZBTFVF
X1RZUEVfQ0FTVFMoQ1NTVmFsdWVMaXN0LCBpc1ZhbHVlTGlzdCgpKQogCi1pbmxpbmUgdm9pZCBD
U1NWYWx1ZUxpc3Q6OmFwcGVuZChQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK2lubGluZSB2
b2lkIENTU1ZhbHVlTGlzdDo6YXBwZW5kKFBhc3NSZWY8Q1NTVmFsdWU+IHZhbHVlKQogewotICAg
IEFTU0VSVCh2YWx1ZSk7Ci0gICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICBtX3ZhbHVl
cy5hcHBlbmQoV1RGOjptb3ZlKHZhbHVlKSk7CiB9CiAKLWlubGluZSB2b2lkIENTU1ZhbHVlTGlz
dDo6cHJlcGVuZChQYXNzUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSkKK2lubGluZSB2b2lkIENTU1Zh
bHVlTGlzdDo6cHJlcGVuZChQYXNzUmVmPENTU1ZhbHVlPiB2YWx1ZSkKIHsKLSAgICBBU1NFUlQo
dmFsdWUpOwotICAgIG1fdmFsdWVzLmluc2VydCgwLCB2YWx1ZSk7CisgICAgbV92YWx1ZXMuaW5z
ZXJ0KDAsIFdURjo6bW92ZSh2YWx1ZSkpOwogfQogCiAvLyBPYmplY3RzIG9mIHRoaXMgY2xhc3Mg
YXJlIGludGVuZGVkIHRvIGJlIHN0YWNrLWFsbG9jYXRlZCBhbmQgc2NvcGVkIHRvIGEgc2luZ2xl
IGZ1bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NWR0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBiNzc2NDgwLi45ZTgxN2VkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApA
QCAtNDAsMjUgKzQwLDI1IEBAIHN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYWludE9yZGVy
KFBhaW50T3JkZXIgcGFpbnRPcmRlcikKICAgICBjYXNlIFBhaW50T3JkZXJOb3JtYWw6CiAgICAg
ICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcihDU1NWYWx1ZU5v
cm1hbCk7CiAgICAgY2FzZSBQYWludE9yZGVyRmlsbDoKLSAgICAgICAgcGFpbnRPcmRlckxpc3Qt
PmFwcGVuZChmaWxsLnJlbGVhc2UoKSk7CisgICAgICAgIHBhaW50T3JkZXJMaXN0LT5hcHBlbmQo
ZmlsbC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYWludE9y
ZGVyRmlsbE1hcmtlcnM6Ci0gICAgICAgIHBhaW50T3JkZXJMaXN0LT5hcHBlbmQoZmlsbC5yZWxl
YXNlKCkpOwotICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKG1hcmtlcnMucmVsZWFzZSgp
KTsKKyAgICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChmaWxsLnJlbGVhc2VOb25OdWxsKCkp
OworICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKG1hcmtlcnMucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGFpbnRPcmRlclN0cm9rZToKLSAgICAgICAg
cGFpbnRPcmRlckxpc3QtPmFwcGVuZChzdHJva2UucmVsZWFzZSgpKTsKKyAgICAgICAgcGFpbnRP
cmRlckxpc3QtPmFwcGVuZChzdHJva2UucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUGFpbnRPcmRlclN0cm9rZU1hcmtlcnM6Ci0gICAgICAgIHBhaW50T3JkZXJM
aXN0LT5hcHBlbmQoc3Ryb2tlLnJlbGVhc2UoKSk7Ci0gICAgICAgIHBhaW50T3JkZXJMaXN0LT5h
cHBlbmQobWFya2Vycy5yZWxlYXNlKCkpOworICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5k
KHN0cm9rZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVu
ZChtYXJrZXJzLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBh
aW50T3JkZXJNYXJrZXJzOgotICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKG1hcmtlcnMu
cmVsZWFzZSgpKTsKKyAgICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChtYXJrZXJzLnJlbGVh
c2VOb25OdWxsKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhaW50T3JkZXJNYXJrZXJz
U3Ryb2tlOgotICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKG1hcmtlcnMucmVsZWFzZSgp
KTsKLSAgICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChzdHJva2UucmVsZWFzZSgpKTsKKyAg
ICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChtYXJrZXJzLnJlbGVhc2VOb25OdWxsKCkpOwor
ICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKHN0cm9rZS5yZWxlYXNlTm9uTnVsbCgpKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBwYWludE9yZGVyTGlzdC5yZWxlYXNl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU1ZHQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCmluZGV4IGY1YmQ0MTEuLmVkNDcxZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TVkdDU1NQYXJzZXIuY3BwCkBAIC00MDIsMTcgKzQwMiwxNyBAQCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlUGFpbnRPcmRlcigpCiAgICAgY2Fz
ZSBDU1NWYWx1ZUZpbGw6CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgQ1NTVmFsdWVT
dHJva2U6Ci0gICAgICAgIHBhaW50T3JkZXJMaXN0LT5hcHBlbmQoZmlyc3RQYWludE9yZGVyVHlw
ZSA9PSBDU1NWYWx1ZUZpbGwgPyBmaWxsLnJlbGVhc2UoKSA6IHN0cm9rZS5yZWxlYXNlKCkpOwor
ICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKGZpcnN0UGFpbnRPcmRlclR5cGUgPT0gQ1NT
VmFsdWVGaWxsID8gZmlsbC5yZWxlYXNlTm9uTnVsbCgpIDogc3Ryb2tlLnJlbGVhc2VOb25OdWxs
KCkpOwogICAgICAgICBpZiAocGFpbnRUeXBlTGlzdC5zaXplKCkgPiAxKSB7CiAgICAgICAgICAg
ICBpZiAocGFpbnRUeXBlTGlzdC5hdCgxKSA9PSBDU1NWYWx1ZU1hcmtlcnMpCi0gICAgICAgICAg
ICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChtYXJrZXJzLnJlbGVhc2UoKSk7CisgICAgICAg
ICAgICAgICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChtYXJrZXJzLnJlbGVhc2VOb25OdWxsKCkp
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTVmFsdWVNYXJrZXJzOgot
ICAgICAgICBwYWludE9yZGVyTGlzdC0+YXBwZW5kKG1hcmtlcnMucmVsZWFzZSgpKTsKKyAgICAg
ICAgcGFpbnRPcmRlckxpc3QtPmFwcGVuZChtYXJrZXJzLnJlbGVhc2VOb25OdWxsKCkpOwogICAg
ICAgICBpZiAocGFpbnRUeXBlTGlzdC5zaXplKCkgPiAxKSB7CiAgICAgICAgICAgICBpZiAocGFp
bnRUeXBlTGlzdC5hdCgxKSA9PSBDU1NWYWx1ZVN0cm9rZSkKLSAgICAgICAgICAgICAgICBwYWlu
dE9yZGVyTGlzdC0+YXBwZW5kKHN0cm9rZS5yZWxlYXNlKCkpOworICAgICAgICAgICAgICAgIHBh
aW50T3JkZXJMaXN0LT5hcHBlbmQoc3Ryb2tlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRp
bmdTdHlsZS5jcHAKaW5kZXggOWYwYTY5Ny4uMzYzYWIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmNwcApAQCAtMTA1MSwxMCArMTA1MSwxMCBAQCBzdGF0aWMgdm9pZCBt
ZXJnZVRleHREZWNvcmF0aW9uVmFsdWVzKENTU1ZhbHVlTGlzdCogbWVyZ2VkVmFsdWUsIGNvbnN0
IENTU1ZhbHVlTAogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbGluZVRocm91Z2ggPSBj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVMaW5lVGhyb3VnaCk7
CiAKICAgICBpZiAodmFsdWVUb01lcmdlLT5oYXNWYWx1ZSh1bmRlcmxpbmUuZ2V0KCkpICYmICFt
ZXJnZWRWYWx1ZS0+aGFzVmFsdWUodW5kZXJsaW5lLmdldCgpKSkKLSAgICAgICAgbWVyZ2VkVmFs
dWUtPmFwcGVuZCh1bmRlcmxpbmUuZ2V0KCkpOworICAgICAgICBtZXJnZWRWYWx1ZS0+YXBwZW5k
KHVuZGVybGluZS5yZWxlYXNlTm9uTnVsbCgpKTsKIAogICAgIGlmICh2YWx1ZVRvTWVyZ2UtPmhh
c1ZhbHVlKGxpbmVUaHJvdWdoLmdldCgpKSAmJiAhbWVyZ2VkVmFsdWUtPmhhc1ZhbHVlKGxpbmVU
aHJvdWdoLmdldCgpKSkKLSAgICAgICAgbWVyZ2VkVmFsdWUtPmFwcGVuZChsaW5lVGhyb3VnaC5n
ZXQoKSk7CisgICAgICAgIG1lcmdlZFZhbHVlLT5hcHBlbmQobGluZVRocm91Z2gucmVsZWFzZU5v
bk51bGwoKSk7CiB9CiAKIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZVN0eWxlKGNvbnN0IFN0eWxl
UHJvcGVydGllcyogc3R5bGUsIENTU1Byb3BlcnR5T3ZlcnJpZGVNb2RlIG1vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBlYzVhZWNkLi4yNWQ4ZTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTE0Miw3ICsxNDIs
NyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVG9nZ2xlU3R5bGVJbkxpc3QoRnJhbWUmIGZyYW1lLCBF
ZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgRQogICAgIGlmIChzZWxlY3RlZENTU1ZhbHVlLT5p
c1ZhbHVlTGlzdCgpKSB7CiAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNlbGVjdGVkQ1NT
VmFsdWVMaXN0ID0gdG9DU1NWYWx1ZUxpc3Qoc2VsZWN0ZWRDU1NWYWx1ZS5nZXQoKSk7CiAgICAg
ICAgIGlmICghc2VsZWN0ZWRDU1NWYWx1ZUxpc3QtPnJlbW92ZUFsbCh2YWx1ZSkpCi0gICAgICAg
ICAgICBzZWxlY3RlZENTU1ZhbHVlTGlzdC0+YXBwZW5kKHZhbHVlKTsKKyAgICAgICAgICAgIHNl
bGVjdGVkQ1NTVmFsdWVMaXN0LT5hcHBlbmQoKnZhbHVlKTsKICAgICAgICAgaWYgKHNlbGVjdGVk
Q1NTVmFsdWVMaXN0LT5sZW5ndGgoKSkKICAgICAgICAgICAgIG5ld1N0eWxlID0gc2VsZWN0ZWRD
U1NWYWx1ZUxpc3QtPmNzc1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VTcmNFbGVtZW50LmNwcAppbmRleCBiYmZiYzI5Li5lMjRkNjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBQYXNz
UmVmUHRyPENTU1ZhbHVlTGlzdD4gU1ZHRm9udEZhY2VTcmNFbGVtZW50OjpzcmNWYWx1ZSgpIGNv
bnN0CiAgICAgICAgIGVsc2UgaWYgKGlzU1ZHRm9udEZhY2VOYW1lRWxlbWVudChjaGlsZCkpCiAg
ICAgICAgICAgICBzcmNWYWx1ZSA9IHRvU1ZHRm9udEZhY2VOYW1lRWxlbWVudChjaGlsZCkuc3Jj
VmFsdWUoKTsKICAgICAgICAgaWYgKHNyY1ZhbHVlICYmIHNyY1ZhbHVlLT5yZXNvdXJjZSgpLmxl
bmd0aCgpKQotICAgICAgICAgICAgbGlzdC0+YXBwZW5kKHNyY1ZhbHVlLnJlbGVhc2UoKSk7Cisg
ICAgICAgICAgICBsaXN0LT5hcHBlbmQoc3JjVmFsdWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAg
fQogICAgIHJldHVybiBsaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xlbmd0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcAppbmRleCA0MWFm
OTM4Li40N2ViODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmNwcApAQCAtMzM1LDcgKzMzNSw3
IEBAIFNWR0xlbmd0aCBTVkdMZW5ndGg6OmZyb21DU1NQcmltaXRpdmVWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZSogdmFsdWUpCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KIAotUGFzc1JlZlB0cjxDU1NQ
cmltaXRpdmVWYWx1ZT4gU1ZHTGVuZ3RoOjp0b0NTU1ByaW1pdGl2ZVZhbHVlKGNvbnN0IFNWR0xl
bmd0aCYgbGVuZ3RoKQorUGFzc1JlZjxDU1NQcmltaXRpdmVWYWx1ZT4gU1ZHTGVuZ3RoOjp0b0NT
U1ByaW1pdGl2ZVZhbHVlKGNvbnN0IFNWR0xlbmd0aCYgbGVuZ3RoKQogewogICAgIENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMgY3NzVHlwZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVU5L
Tk9XTjsKICAgICBzd2l0Y2ggKGxlbmd0aC51bml0VHlwZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3Ro
LmgKaW5kZXggMjRhYWNmMS4uNDBjOGYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaApAQCAtOTks
NyArOTksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIFNWR0xlbmd0aCBmcm9tQ1NT
UHJpbWl0aXZlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gdG9DU1NQcmltaXRpdmVWYWx1ZShjb25zdCBTVkdMZW5ndGgm
KTsKKyAgICBzdGF0aWMgUGFzc1JlZjxDU1NQcmltaXRpdmVWYWx1ZT4gdG9DU1NQcmltaXRpdmVW
YWx1ZShjb25zdCBTVkdMZW5ndGgmKTsKICAgICBzdGF0aWMgU1ZHTGVuZ3RoTW9kZSBsZW5ndGhN
b2RlRm9yQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCiAg
ICAgU1ZHTGVuZ3RoIGJsZW5kKGNvbnN0IFNWR0xlbmd0aCYgZnJvbSwgZmxvYXQgcHJvZ3Jlc3Mp
IGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>