<?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>201605</bug_id>
          
          <creation_ts>2019-09-09 09:06:48 -0700</creation_ts>
          <short_desc>[LFC][TFC] Introduce cell spacing.</short_desc>
          <delta_ts>2019-09-09 12:01:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569153</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-09 09:06:48 -0700</bug_when>
    <thetext>Table attr cellspacing (border-spacing in CSS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569154</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 09:07:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/55184009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569156</commentid>
    <comment_count>2</comment_count>
      <attachid>378373</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-09 09:13:10 -0700</bug_when>
    <thetext>Created attachment 378373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569183</commentid>
    <comment_count>3</comment_count>
      <attachid>378373</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-09 10:28:42 -0700</bug_when>
    <thetext>Comment on attachment 378373
Patch

Not enabling any tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569198</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-09 11:02:54 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 378373 [details]
&gt; Patch
&gt; 
&gt; Not enabling any tests?
will do it very soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569228</commentid>
    <comment_count>5</comment_count>
      <attachid>378373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 12:01:35 -0700</bug_when>
    <thetext>Comment on attachment 378373
Patch

Clearing flags on attachment: 378373

Committed r249654: &lt;https://trac.webkit.org/changeset/249654&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569229</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 12:01:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378373</attachid>
            <date>2019-09-09 09:13:10 -0700</date>
            <delta_ts>2019-09-09 12:01:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201605-20190909091304.patch</filename>
            <type>text/plain</type>
            <size>23752</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMzZmM0NjlhNWY0MmQ4
ZWE4MGUzNDczMGI2NmEwYmZhM2QzMjdhYy4uMmExNGU1MTczODZiOTJkMWZhYjQzOTliYjI4ZWU0
YzFmNmVmYzZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA5LTA5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBJbnRyb2R1
Y2UgY2VsbCBzcGFjaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAxNjA1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTE4NDAwOT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFk
ZHMgc3VwcG9ydCBmb3IgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgY2VsbCBzcGFjaW5nIChib3Jk
ZXItc3BhY2luZykuIE5vdyBMRkMgbWF0Y2hlcyB0YWJsZSBnZW9tZXRyeSBmb3Igc2ltcGxlIHRh
YmxlIGNvbnRlbnQgd2l0aCBtdWx0aXBsZSBjb2x1bW5zIGFuZCByb3dzLiAKKworICAgICAgICAq
IGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb250ZW50SGVpZ2h0Rm9yRm9y
bWF0dGluZ0NvbnRleHRSb290IGNvbnN0KTogTm93IHdlIGNhbiB1c2UgdGhlIGdlbmVyaWMsIGNo
ZWNrIHRoZSBpbmZsb3cgY29udGVudCBsb2dpYyBmb3IgdGFibGUgaGVpZ2h0LgorICAgICAgICAq
IGxheW91dC9MYXlvdXRVbml0cy5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpIb3Jpem9u
dGFsRWRnZXM6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VmVydGlj
YWxFZGdlczo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6dmVyaWZ5QW5kT3V0cHV0U3VidHJlZSk6Cisg
ICAgICAgICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6
bGF5b3V0VGFibGVDZWxsQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3Jt
YXR0aW5nQ29udGV4dDo6cG9zaXRpb25UYWJsZUNlbGxzKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6c2V0Q29tcHV0ZWRHZW9tZXRyeUZvclJvd3Mp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpzZXRD
b21wdXRlZEdlb21ldHJ5Rm9yU2VjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpU
YWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjplbnN1
cmVUYWJsZUdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lkdGhGb3JDb2x1bW5zKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZWRUYWJsZVdpZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6dXNlQXND
b250ZW50TG9naWNhbFdpZHRoKToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5n
L1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojp0YWJsZUNlbGxIZWlnaHRB
bmRNYXJnaW4gY29uc3QpOgorICAgICAgICAqIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVH
cmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjphcHBlbmRDZWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjp3aWR0aENvbnN0cmFpbnRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVHcmlkOjpDb2x1bW5zQ29u
dGV4dDo6dXNlQXNMb2dpY2FsV2lkdGgpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC90YWJs
ZWZvcm1hdHRpbmcvVGFibGVHcmlkLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxl
R3JpZDo6c2V0SG9yaXpvbnRhbFNwYWNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpU
YWJsZUdyaWQ6Omhvcml6b250YWxTcGFjaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6VGFibGVHcmlkOjpzZXRWZXJ0aWNhbFNwYWNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpUYWJsZUdyaWQ6OnZlcnRpY2FsU3BhY2luZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OmxvZ2ljYWxXaWR0aCBjb25z
dCk6CisKIDIwMTktMDktMDkgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXVtXUEVdIFJlbW92ZSBhdHRyaWJ1dGVzIGRlcHJlY2F0ZWQgZnJvbSBNYXRoTUwzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5j
cHAKaW5kZXggYmFjZjM1Y2NiMjc3NTZhNGJmMzAxOGU0MDcwNWM4MTk2ZTExYjc4Ny4uZDM5NTU4
N2JmMDMxMmYxMmExNmQ3YzYzZTg0ZWQwZDhiOTFlNmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMTE4LDE5ICsx
MTgsMTMgQEAgTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbnRlbnRI
ZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QoY28KICAgICAgICAgQVNTRVJUKCFsaW5lQm94
ZXMuaXNFbXB0eSgpKTsKICAgICAgICAgdG9wID0gbGluZUJveGVzLmZpcnN0KCkubG9naWNhbFRv
cCgpOwogICAgICAgICBib3R0b20gPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20oKTsK
LSAgICB9IGVsc2UgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCgpIHx8IGxheW91dEJveC5pc0RvY3VtZW50Qm94KCkpIHsKKyAgICB9
IGVsc2UgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpIHx8IGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmVzdGFibGlzaGVzVGFibGVG
b3JtYXR0aW5nQ29udGV4dCgpIHx8IGxheW91dEJveC5pc0RvY3VtZW50Qm94KCkpIHsKICAgICAg
ICAgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmhhc0luRmxvd0NoaWxkKCkpIHsKICAgICAg
ICAgICAgIGF1dG8mIGZpcnN0RGlzcGxheUJveCA9IGZvcm1hdHRpbmdDb250ZXh0LmRpc3BsYXlC
b3hGb3JMYXlvdXRCb3goKmZvcm1hdHRpbmdSb290Q29udGFpbmVyLmZpcnN0SW5GbG93Q2hpbGQo
KSwgRXNjYXBlVHlwZTo6QWNjZXNzQ2hpbGRGb3JtYXR0aW5nQ29udGV4dCk7CiAgICAgICAgICAg
ICBhdXRvJiBsYXN0RGlzcGxheUJveCA9IGZvcm1hdHRpbmdDb250ZXh0LmRpc3BsYXlCb3hGb3JM
YXlvdXRCb3goKmZvcm1hdHRpbmdSb290Q29udGFpbmVyLmxhc3RJbkZsb3dDaGlsZCgpLCBFc2Nh
cGVUeXBlOjpBY2Nlc3NDaGlsZEZvcm1hdHRpbmdDb250ZXh0KTsKICAgICAgICAgICAgIHRvcCA9
IGZpcnN0RGlzcGxheUJveC5yZWN0V2l0aE1hcmdpbigpLnRvcCgpOwogICAgICAgICAgICAgYm90
dG9tID0gbGFzdERpc3BsYXlCb3gucmVjdFdpdGhNYXJnaW4oKS5ib3R0b20oKTsKICAgICAgICAg
fQotICAgIH0gZWxzZSBpZiAoZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZXN0YWJsaXNoZXNUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgYXV0byYgcm93TGlzdCA9IGRvd25jYXN0
PFRhYmxlRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdT
dGF0ZShmb3JtYXR0aW5nUm9vdENvbnRhaW5lcikpLnRhYmxlR3JpZCgpLnJvd3MoKTsKLSAgICAg
ICAgQVNTRVJUKCFyb3dMaXN0LmlzRW1wdHkoKSk7Ci0gICAgICAgIHRvcCArPSByb3dMaXN0LmZp
cnN0KCkubG9naWNhbFRvcCgpOwotICAgICAgICBhdXRvJiBsYXN0Um93ID0gcm93TGlzdC5sYXN0
KCk7Ci0gICAgICAgIGJvdHRvbSArPSBsYXN0Um93LmxvZ2ljYWxCb3R0b20oKTsKICAgICB9IGVs
c2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dFVuaXRzLmgKaW5kZXggMzBmYWVkMTZjZWJjMzJkZGJhOWExMjRkNDllNzVjOGExNmNkZDM5Yy4u
OTJiZmZhM2Y0NDZiZjM4OWVmZTY1NjIxMTYwYTk1MTBkMzA2ZmYxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dFVuaXRzLmgKQEAgLTk4LDExICs5OCwxNSBAQCBpbmxpbmUgdm9pZCBQb2ludDo6
bW92ZUJ5KExheW91dFBvaW50IG9mZnNldCkKIHN0cnVjdCBIb3Jpem9udGFsRWRnZXMgewogICAg
IExheW91dFVuaXQgbGVmdDsKICAgICBMYXlvdXRVbml0IHJpZ2h0OworCisgICAgTGF5b3V0VW5p
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIGxlZnQgKyByaWdodDsgfQogfTsKIAogc3RydWN0IFZl
cnRpY2FsRWRnZXMgewogICAgIExheW91dFVuaXQgdG9wOwogICAgIExheW91dFVuaXQgYm90dG9t
OworCisgICAgTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiB0b3AgKyBib3R0b207
IH0KIH07CiAKIHN0cnVjdCBFZGdlcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24u
Y3BwCmluZGV4IDQ1YTkzMWM4ZTI5NzUxZTRhOTRmZTYyZWZlMzhmYjMzM2Q0NDY4ZDQuLjU1ZGYx
Zjk4MzQzZTMxYWVkZTE1ODBjOWQ3NDBhMjRlNWFhN2M2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9WZXJpZmljYXRpb24uY3BwCkBAIC0yNzIsNiArMjcyLDEwIEBAIHN0YXRpYyBib29sIG91dHB1
dE1pc21hdGNoaW5nQmxvY2tCb3hJbmZvcm1hdGlvbklmTmVlZGVkKFRleHRTdHJlYW0mIHN0cmVh
bSwgY29uCiAKIHN0YXRpYyBib29sIHZlcmlmeUFuZE91dHB1dFN1YnRyZWUoVGV4dFN0cmVhbSYg
c3RyZWFtLCBjb25zdCBMYXlvdXRTdGF0ZSYgY29udGV4dCwgY29uc3QgUmVuZGVyQm94JiByZW5k
ZXJlciwgY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CisgICAgLy8gUmVuZGVyaW5nIGNvZGUgZG9l
cyBub3QgaGF2ZSB0aGUgY29uY2VwdCBvZiB0YWJsZSB3cmFwcGVyIGJveC4gU2tpcCBpdCBieSB2
ZXJpZnlpbmcgdGhlIGZpcnN0IGNoaWxkKHRhYmxlIGJveCkgaW5zdGVhZC4gCisgICAgaWYgKGxh
eW91dEJveC5pc1RhYmxlV3JhcHBlckJveCgpKQorICAgICAgICByZXR1cm4gdmVyaWZ5QW5kT3V0
cHV0U3VidHJlZShzdHJlYW0sIGNvbnRleHQsIHJlbmRlcmVyLCAqZG93bmNhc3Q8Q29udGFpbmVy
PihsYXlvdXRCb3gpLmZpcnN0Q2hpbGQoKSk7IAorCiAgICAgYXV0byBtaXNtdGFjaGluZ0dlb21l
dHJ5ID0gb3V0cHV0TWlzbWF0Y2hpbmdCbG9ja0JveEluZm9ybWF0aW9uSWZOZWVkZWQoc3RyZWFt
LCBjb250ZXh0LCByZW5kZXJlciwgbGF5b3V0Qm94KTsKIAogICAgIGlmICghaXM8Q29udGFpbmVy
PihsYXlvdXRCb3gpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNWU2MTFi
MWFjMWYxZTQxNjBhODNhZGMzNjBkMGJhYzY1OGQ5Nzc0Ny4uYzdhNzBhOTMwODlhZDAwYzNjODkx
ZWFiYThlNjZmNTgyYWQyZDNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBA
IC02MSw2NSArNjEsODUgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXQoKQog
ewogICAgIGF1dG8mIGdyaWQgPSBmb3JtYXR0aW5nU3RhdGUoKS50YWJsZUdyaWQoKTsKICAgICBh
dXRvJiBjZWxsTGlzdCA9IGdyaWQuY2VsbHMoKTsKKyAgICBhdXRvJiBjb2x1bW5MaXN0ID0gZ3Jp
ZC5jb2x1bW5zQ29udGV4dCgpLmNvbHVtbnMoKTsKICAgICBBU1NFUlQoIWNlbGxMaXN0LmlzRW1w
dHkoKSk7CiAgICAgLy8gTGF5b3V0IGFuZCBwb3NpdGlvbiBlYWNoIHRhYmxlIGNlbGwgKGFuZCBj
b21wdXRlIHJvdyBoZWlnaHQgYXMgd2VsbCkuCi0gICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlz
LT5sYXlvdXRTdGF0ZSgpOwotICAgIGF1dG8mIHJvd0xpc3QgPSBncmlkLnJvd3MoKTsKLSAgICBh
dXRvJiBjb2x1bW5MaXN0ID0gZ3JpZC5jb2x1bW5zQ29udGV4dCgpLmNvbHVtbnMoKTsKLQogICAg
IGZvciAoYXV0byYgY2VsbCA6IGNlbGxMaXN0KSB7CiAgICAgICAgIGF1dG8mIGNlbGxMYXlvdXRC
b3ggPSBjZWxsLT50YWJsZUNlbGxCb3g7Ci0gICAgICAgIGF1dG8gY2VsbFBvc2l0aW9uID0gY2Vs
bC0+cG9zaXRpb247Ci0KLSAgICAgICAgYXV0byYgY29sdW1uID0gY29sdW1uTGlzdC5hdChjZWxs
UG9zaXRpb24ueCgpKTsKLSAgICAgICAgYXV0byYgcm93ID0gcm93TGlzdC5hdChjZWxsUG9zaXRp
b24ueSgpKTsKLQotICAgICAgICBhdXRvJiBjZWxsRGlzcGxheUJveCA9IGRpc3BsYXlCb3hGb3JM
YXlvdXRCb3goY2VsbC0+dGFibGVDZWxsQm94KTsKLSAgICAgICAgaW5pdGlhbGl6ZURpc3BsYXlC
b3hUb0JsYW5rKGNlbGxEaXNwbGF5Qm94KTsKLSAgICAgICAgY2VsbERpc3BsYXlCb3guc2V0Q29u
dGVudEJveFdpZHRoKGNvbHVtbi5sb2dpY2FsV2lkdGgoKSk7Ci0gICAgICAgIGNlbGxEaXNwbGF5
Qm94LnNldFRvcExlZnQoeyBjb2x1bW4ubG9naWNhbExlZnQoKSwgcm93LmxvZ2ljYWxUb3AoKSB9
KTsKLSAgICAgICAgQVNTRVJUKGNlbGxMYXlvdXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0KCkpOwotICAgICAgICBsYXlvdXRTdGF0ZS5jcmVhdGVGb3JtYXR0aW5nQ29udGV4
dChjZWxsTGF5b3V0Qm94KS0+bGF5b3V0KCk7Ci0gICAgICAgIGF1dG8gaGVpZ2h0QW5kTWFyZ2lu
ID0gZ2VvbWV0cnkoKS50YWJsZUNlbGxIZWlnaHRBbmRNYXJnaW4oY2VsbExheW91dEJveCk7Ci0K
KyAgICAgICAgbGF5b3V0VGFibGVDZWxsQm94KGNlbGxMYXlvdXRCb3gsIGNvbHVtbkxpc3QuYXQo
Y2VsbC0+cG9zaXRpb24ueCgpKSk7CiAgICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3Ig
Y29sdW1uIGFuZCByb3cgc3Bhbm5pbmcgYW5kIHRoaXMgcmVxdWlyZXMgYSAyIHBhc3MgbGF5b3V0
LgotICAgICAgICByb3cuc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChyb3cubG9naWNhbEhlaWdo
dCgpLCBoZWlnaHRBbmRNYXJnaW4uaGVpZ2h0KSk7Ci0gICAgICAgIGlmICghY2VsbFBvc2l0aW9u
LngoKSAmJiBjZWxsUG9zaXRpb24ueSgpKSB7Ci0gICAgICAgICAgICBhdXRvJiBwcmV2aW91c1Jv
dyA9IHJvd0xpc3QuYXQoY2VsbFBvc2l0aW9uLnkoKSAtIDEpOwotICAgICAgICAgICAgcm93LnNl
dExvZ2ljYWxUb3AocHJldmlvdXNSb3cubG9naWNhbEJvdHRvbSgpKTsKLSAgICAgICAgfQorICAg
ICAgICBhdXRvJiByb3cgPSBncmlkLnJvd3MoKS5hdChjZWxsLT5wb3NpdGlvbi55KCkpOworICAg
ICAgICByb3cuc2V0TG9naWNhbEhlaWdodChzdGQ6Om1heChyb3cubG9naWNhbEhlaWdodCgpLCBk
aXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGNlbGxMYXlvdXRCb3gpLm1hcmdpbkJveEhlaWdodCgpKSk7
CisgICAgfQorICAgIC8vIFRoaXMgaXMgYWZ0ZXIgdGhlIHNlY29uZCBwYXNzIHdoZW4gY2VsbCBo
ZWlnaHRzIGFyZSBmdWxseSBjb21wdXRlZC4KKyAgICBhdXRvIHJvd0xvZ2ljYWxUb3AgPSBncmlk
LnZlcnRpY2FsU3BhY2luZygpOworICAgIGZvciAoYXV0byYgcm93IDogZ3JpZC5yb3dzKCkpIHsK
KyAgICAgICAgcm93LnNldExvZ2ljYWxUb3Aocm93TG9naWNhbFRvcCk7CisgICAgICAgIHJvd0xv
Z2ljYWxUb3AgKz0gKHJvdy5sb2dpY2FsSGVpZ2h0KCkgKyBncmlkLnZlcnRpY2FsU3BhY2luZygp
KTsKICAgICB9CiAKICAgICAvLyBGaW5hbGl6ZSBzaXplIGFuZCBwb3NpdGlvbi4KLSAgICBmb3Ig
KGF1dG8mIGNlbGwgOiBjZWxsTGlzdCkgeworICAgIHBvc2l0aW9uVGFibGVDZWxscygpOworICAg
IHNldENvbXB1dGVkR2VvbWV0cnlGb3JTZWN0aW9ucygpOworICAgIHNldENvbXB1dGVkR2VvbWV0
cnlGb3JSb3dzKCk7Cit9CisKK3ZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0VGFi
bGVDZWxsQm94KGNvbnN0IEJveCYgY2VsbExheW91dEJveCwgY29uc3QgVGFibGVHcmlkOjpDb2x1
bW4mIGNvbHVtbikKK3sKKyAgICBhdXRvJiBjZWxsRGlzcGxheUJveCA9IGRpc3BsYXlCb3hGb3JM
YXlvdXRCb3goY2VsbExheW91dEJveCk7CisgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY2Vs
bExheW91dEJveCk7CisgICAgLy8gTWFyZ2lucyBkbyBub3QgYXBwbHkgdG8gaW50ZXJuYWwgdGFi
bGUgZWxlbWVudHMuCisgICAgY2VsbERpc3BsYXlCb3guc2V0SG9yaXpvbnRhbE1hcmdpbih7IH0p
OworICAgIGNlbGxEaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbih7IH0pOwor
ICAgIC8vIERvbid0IGtub3cgdGhlIGFjdHVhbCBwb3NpdGlvbiB5ZXQuCisgICAgY2VsbERpc3Bs
YXlCb3guc2V0VG9wTGVmdCh7IH0pOworICAgIGNlbGxEaXNwbGF5Qm94LnNldENvbnRlbnRCb3hX
aWR0aChjb2x1bW4ubG9naWNhbFdpZHRoKCkgLSBjZWxsRGlzcGxheUJveC5ob3Jpem9udGFsTWFy
Z2luQm9yZGVyQW5kUGFkZGluZygpKTsKKworICAgIEFTU0VSVChjZWxsTGF5b3V0Qm94LmVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAgICBsYXlvdXRTdGF0ZSgpLmNyZWF0
ZUZvcm1hdHRpbmdDb250ZXh0KGNlbGxMYXlvdXRCb3gpLT5sYXlvdXQoKTsKKyAgICBjZWxsRGlz
cGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbih7IHsgfSwgeyB9IH0pOworICAgIGNlbGxEaXNwbGF5
Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoZ2VvbWV0cnkoKS50YWJsZUNlbGxIZWlnaHRBbmRNYXJn
aW4oY2VsbExheW91dEJveCkuaGVpZ2h0KTsKK30KKwordm9pZCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0Ojpwb3NpdGlvblRhYmxlQ2VsbHMoKQoreworICAgIGF1dG8mIGdyaWQgPSBmb3JtYXR0aW5n
U3RhdGUoKS50YWJsZUdyaWQoKTsKKyAgICBhdXRvJiByb3dMaXN0ID0gZ3JpZC5yb3dzKCk7Cisg
ICAgYXV0byYgY29sdW1uTGlzdCA9IGdyaWQuY29sdW1uc0NvbnRleHQoKS5jb2x1bW5zKCk7Cisg
ICAgZm9yIChhdXRvJiBjZWxsIDogZ3JpZC5jZWxscygpKSB7CiAgICAgICAgIGF1dG8mIGNlbGxE
aXNwbGF5Qm94ID0gZGlzcGxheUJveEZvckxheW91dEJveChjZWxsLT50YWJsZUNlbGxCb3gpOwot
ICAgICAgICBhdXRvIGNlbGxQb3NpdGlvbiA9IGNlbGwtPnBvc2l0aW9uOwotICAgICAgICBhdXRv
JiBjb2x1bW4gPSBjb2x1bW5MaXN0LmF0KGNlbGxQb3NpdGlvbi54KCkpOwotICAgICAgICBhdXRv
JiByb3cgPSByb3dMaXN0LmF0KGNlbGxQb3NpdGlvbi55KCkpOwotCi0gICAgICAgIGNlbGxEaXNw
bGF5Qm94LnNldFRvcChyb3cubG9naWNhbFRvcCgpKTsKLSAgICAgICAgY2VsbERpc3BsYXlCb3gu
c2V0TGVmdChjb2x1bW4ubG9naWNhbExlZnQoKSk7Ci0gICAgICAgIGNlbGxEaXNwbGF5Qm94LnNl
dENvbnRlbnRCb3hXaWR0aChjb2x1bW4ubG9naWNhbFdpZHRoKCkpOwotICAgICAgICBjZWxsRGlz
cGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0KHJvdy5sb2dpY2FsSGVpZ2h0KCkpOwotICAgICAg
ICBjZWxsRGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbih7IH0pOwotICAgICAgICBjZWxsRGlz
cGxheUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgfSk7CisgICAgICAgIGNlbGxEaXNwbGF5Qm94
LnNldFRvcChyb3dMaXN0LmF0KGNlbGwtPnBvc2l0aW9uLnkoKSkubG9naWNhbFRvcCgpKTsKKyAg
ICAgICAgY2VsbERpc3BsYXlCb3guc2V0TGVmdChjb2x1bW5MaXN0LmF0KGNlbGwtPnBvc2l0aW9u
LngoKSkubG9naWNhbExlZnQoKSk7CiAgICAgfQorfQogCi0gICAgTGF5b3V0VW5pdCByb3dXaWR0
aDsKLSAgICBmb3IgKGF1dG8mIGNvbHVtbiA6IGNvbHVtbkxpc3QpCi0gICAgICAgIHJvd1dpZHRo
ICs9IGNvbHVtbi5sb2dpY2FsV2lkdGgoKTsKK3ZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6
c2V0Q29tcHV0ZWRHZW9tZXRyeUZvclJvd3MoKQoreworICAgIGF1dG8mIGdyaWQgPSBmb3JtYXR0
aW5nU3RhdGUoKS50YWJsZUdyaWQoKTsKKyAgICBhdXRvIHJvd1dpZHRoID0gZ3JpZC5jb2x1bW5z
Q29udGV4dCgpLmxvZ2ljYWxXaWR0aCgpICsgMiAqIGdyaWQuaG9yaXpvbnRhbFNwYWNpbmcoKTsK
IAorICAgIGF1dG8mIHJvd0xpc3QgPSBncmlkLnJvd3MoKTsKICAgICBmb3IgKGF1dG8mIHJvdyA6
IHJvd0xpc3QpIHsKLSAgICAgICAgYXV0byYgcm93RGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRp
c3BsYXlCb3hGb3JMYXlvdXRCb3gocm93LmJveCgpKTsKKyAgICAgICAgYXV0byYgcm93RGlzcGxh
eUJveCA9IGRpc3BsYXlCb3hGb3JMYXlvdXRCb3gocm93LmJveCgpKTsKICAgICAgICAgaW5pdGlh
bGl6ZURpc3BsYXlCb3hUb0JsYW5rKHJvd0Rpc3BsYXlCb3gpOwogICAgICAgICByb3dEaXNwbGF5
Qm94LnNldENvbnRlbnRCb3hIZWlnaHQocm93LmxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIHJv
d0Rpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKHJvd1dpZHRoKTsKICAgICAgICAgcm93RGlz
cGxheUJveC5zZXRUb3Aocm93LmxvZ2ljYWxUb3AoKSk7CiAgICAgfQorfQogCi0gICAgLy8gRklY
TUU6IFRoaXMgaXMgdGVtcG9yYXJ5IG9ubHkuIFNpemUgdGFibGUgc2VjdGlvbnMgcHJvcGVybHku
Ci0gICAgZm9yIChhdXRvJiBzZWN0aW9uIDogY2hpbGRyZW5PZlR5cGU8Qm94Pihkb3duY2FzdDxD
b250YWluZXI+KHJvb3QoKSkpKQotICAgICAgICBpbml0aWFsaXplRGlzcGxheUJveFRvQmxhbmso
bGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChzZWN0aW9uKSk7Cit2b2lkIFRhYmxl
Rm9ybWF0dGluZ0NvbnRleHQ6OnNldENvbXB1dGVkR2VvbWV0cnlGb3JTZWN0aW9ucygpCit7Cisg
ICAgYXV0byYgZ3JpZCA9IGZvcm1hdHRpbmdTdGF0ZSgpLnRhYmxlR3JpZCgpOworICAgIGF1dG8g
c2VjdGlvbldpZHRoID0gZ3JpZC5jb2x1bW5zQ29udGV4dCgpLmxvZ2ljYWxXaWR0aCgpICsgMiAq
IGdyaWQuaG9yaXpvbnRhbFNwYWNpbmcoKTsKKworICAgIGZvciAoYXV0byYgc2VjdGlvbiA6IGNo
aWxkcmVuT2ZUeXBlPEJveD4oZG93bmNhc3Q8Q29udGFpbmVyPihyb290KCkpKSkgeworICAgICAg
ICBhdXRvJiBzZWN0aW9uRGlzcGxheUJveCA9IGRpc3BsYXlCb3hGb3JMYXlvdXRCb3goc2VjdGlv
bik7CisgICAgICAgIGluaXRpYWxpemVEaXNwbGF5Qm94VG9CbGFuayhzZWN0aW9uRGlzcGxheUJv
eCk7CisgICAgICAgIC8vIEZJWE1FOiBTaXplIHRhYmxlIHNlY3Rpb25zIHByb3Blcmx5LgorICAg
ICAgICBzZWN0aW9uRGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lkdGgoc2VjdGlvbldpZHRoKTsK
KyAgICAgICAgc2VjdGlvbkRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChncmlkLnJvd3Mo
KS5sYXN0KCkubG9naWNhbEJvdHRvbSgpICsgZ3JpZC52ZXJ0aWNhbFNwYWNpbmcoKSk7CisgICAg
fQogfQogCiBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKQpA
QCAtMTM1LDYgKzE1NSw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVkSW50CiAgICAgLy8gMy4gQ29t
cHV0ZSB0aGUgd2lkdGggb2YgdGhlIHRhYmxlLgogICAgIGF1dG8gd2lkdGggPSBjb21wdXRlZFRh
YmxlV2lkdGgoKTsKICAgICAvLyBUaGlzIGlzIHRoZSBhY3R1YWwgY29tcHV0ZWQgdGFibGUgd2lk
dGggdGhhdCB3ZSB3YW50IHRvIHByZXNlbnQgYXMgbWluL21heCB3aWR0aC4KKyAgICBmb3JtYXR0
aW5nU3RhdGUoKS5zZXRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKHsgd2lkdGgsIHdpZHRoIH0p
OwogICAgIHJldHVybiB7IHdpZHRoLCB3aWR0aCB9OwogfQogCkBAIC0xNDIsNiArMTYzLDggQEAg
dm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjplbnN1cmVUYWJsZUdyaWQoKQogewogICAgIGF1
dG8mIHRhYmxlV3JhcHBlckJveCA9IGRvd25jYXN0PENvbnRhaW5lcj4ocm9vdCgpKTsKICAgICBh
dXRvJiB0YWJsZUdyaWQgPSBmb3JtYXR0aW5nU3RhdGUoKS50YWJsZUdyaWQoKTsKKyAgICB0YWJs
ZUdyaWQuc2V0SG9yaXpvbnRhbFNwYWNpbmcoTGF5b3V0VW5pdCB7IHRhYmxlV3JhcHBlckJveC5z
dHlsZSgpLmhvcml6b250YWxCb3JkZXJTcGFjaW5nKCkgfSk7CisgICAgdGFibGVHcmlkLnNldFZl
cnRpY2FsU3BhY2luZyhMYXlvdXRVbml0IHsgdGFibGVXcmFwcGVyQm94LnN0eWxlKCkudmVydGlj
YWxCb3JkZXJTcGFjaW5nKCkgfSk7CiAKICAgICBmb3IgKGF1dG8qIHNlY3Rpb24gPSB0YWJsZVdy
YXBwZXJCb3guZmlyc3RDaGlsZCgpOyBzZWN0aW9uOyBzZWN0aW9uID0gc2VjdGlvbi0+bmV4dFNp
YmxpbmcoKSkgewogICAgICAgICBBU1NFUlQoc2VjdGlvbi0+aXNUYWJsZUhlYWRlcigpIHx8IHNl
Y3Rpb24tPmlzVGFibGVCb2R5KCkgfHwgc2VjdGlvbi0+aXNUYWJsZUZvb3RlcigpKTsKQEAgLTE2
NCwxNCArMTg3LDIyIEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVByZWZl
cnJlZFdpZHRoRm9yQ29sdW1ucygpCiAgICAgLy8gICAgSWYgdGhlIHNwZWNpZmllZCAnd2lkdGgn
IChXKSBvZiB0aGUgY2VsbCBpcyBncmVhdGVyIHRoYW4gTUNXLCBXIGlzIHRoZSBtaW5pbXVtIGNl
bGwgd2lkdGguIEEgdmFsdWUgb2YgJ2F1dG8nIG1lYW5zIHRoYXQgTUNXIGlzIHRoZSBtaW5pbXVt
IGNlbGwgd2lkdGguCiAgICAgLy8gICAgQWxzbywgY2FsY3VsYXRlIHRoZSAibWF4aW11bSIgY2Vs
bCB3aWR0aCBvZiBlYWNoIGNlbGw6IGZvcm1hdHRpbmcgdGhlIGNvbnRlbnQgd2l0aG91dCBicmVh
a2luZyBsaW5lcyBvdGhlciB0aGFuIHdoZXJlIGV4cGxpY2l0IGxpbmUgYnJlYWtzIG9jY3VyLgog
ICAgIGZvciAoYXV0byYgY2VsbCA6IGdyaWQuY2VsbHMoKSkgewotICAgICAgICBBU1NFUlQoY2Vs
bC0+dGFibGVDZWxsQm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSk7Ci0KLSAgICAg
ICAgYXV0byBpbnRyaW5zaWNXaWR0aCA9IGxheW91dFN0YXRlKCkuY3JlYXRlRm9ybWF0dGluZ0Nv
bnRleHQoY2VsbC0+dGFibGVDZWxsQm94KS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzKCk7Ci0gICAgICAgIGludHJpbnNpY1dpZHRoID0gZ2VvbWV0cnkoKS5jb25zdHJhaW5CeU1p
bk1heFdpZHRoKGNlbGwtPnRhYmxlQ2VsbEJveCwgaW50cmluc2ljV2lkdGgpOwotICAgICAgICBm
b3JtYXR0aW5nU3RhdGUuc2V0SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhpbnRyaW5zaWNXaWR0
aCk7CisgICAgICAgIGF1dG8mIHRhYmxlQ2VsbEJveCA9IGNlbGwtPnRhYmxlQ2VsbEJveDsKKyAg
ICAgICAgQVNTRVJUKHRhYmxlQ2VsbEJveC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkp
OworCisgICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGggPSBmb3JtYXR0aW5nU3RhdGUuaW50cmlu
c2ljV2lkdGhDb25zdHJhaW50c0ZvckJveCh0YWJsZUNlbGxCb3gpOworICAgICAgICBpZiAoIWlu
dHJpbnNpY1dpZHRoKSB7CisgICAgICAgICAgICBpbnRyaW5zaWNXaWR0aCA9IGxheW91dFN0YXRl
KCkuY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQodGFibGVDZWxsQm94KS0+Y29tcHV0ZWRJbnRyaW5z
aWNXaWR0aENvbnN0cmFpbnRzKCk7CisgICAgICAgICAgICBpbnRyaW5zaWNXaWR0aCA9IGdlb21l
dHJ5KCkuY29uc3RyYWluQnlNaW5NYXhXaWR0aCh0YWJsZUNlbGxCb3gsICppbnRyaW5zaWNXaWR0
aCk7CisgICAgICAgICAgICBhdXRvIGJvcmRlciA9IGdlb21ldHJ5KCkuY29tcHV0ZWRCb3JkZXIo
dGFibGVDZWxsQm94KTsKKyAgICAgICAgICAgIGF1dG8gcGFkZGluZyA9ICpnZW9tZXRyeSgpLmNv
bXB1dGVkUGFkZGluZyh0YWJsZUNlbGxCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzKHsgfSkpOwor
CisgICAgICAgICAgICBpbnRyaW5zaWNXaWR0aC0+ZXhwYW5kKGJvcmRlci5ob3Jpem9udGFsLndp
ZHRoKCkgKyBwYWRkaW5nLmhvcml6b250YWwud2lkdGgoKSk7CisgICAgICAgICAgICBmb3JtYXR0
aW5nU3RhdGUuc2V0SW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckJveCh0YWJsZUNlbGxCb3gs
ICppbnRyaW5zaWNXaWR0aCk7CisgICAgICAgIH0KIAogICAgICAgICBhdXRvIGNvbHVtblNwYW4g
PSBjZWxsLT5zaXplLndpZHRoKCk7Ci0gICAgICAgIGF1dG8gc2xvdEludHJpbnNpY1dpZHRoID0g
Rm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyBpbnRyaW5zaWNX
aWR0aC5taW5pbXVtIC8gY29sdW1uU3BhbiwgaW50cmluc2ljV2lkdGgubWF4aW11bSAvIGNvbHVt
blNwYW4gfTsKKyAgICAgICAgYXV0byBzbG90SW50cmluc2ljV2lkdGggPSBGb3JtYXR0aW5nQ29u
dGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyB7IGludHJpbnNpY1dpZHRoLT5taW5pbXVt
IC8gY29sdW1uU3BhbiwgaW50cmluc2ljV2lkdGgtPm1heGltdW0gLyBjb2x1bW5TcGFuIH07CiAg
ICAgICAgIGF1dG8gaW5pdGlhbFBvc2l0aW9uID0gY2VsbC0+cG9zaXRpb247CiAgICAgICAgIGZv
ciAoYXV0byBpID0gMDsgaSA8IGNvbHVtblNwYW47ICsraSkKICAgICAgICAgICAgIGdyaWQuc2xv
dCh7IGluaXRpYWxQb3NpdGlvbi54KCkgKyBpLCBpbml0aWFsUG9zaXRpb24ueSgpIH0pLT53aWR0
aENvbnN0cmFpbnRzID0gc2xvdEludHJpbnNpY1dpZHRoOwpAQCAtMjIzLDI2ICsyNTQsMjYgQEAg
TGF5b3V0VW5pdCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFRhYmxlV2lkdGgoKQog
ICAgICAgICAgICAgdXNlZFdpZHRoID0gKndpZHRoOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgdXNlZFdpZHRoID0gdGFibGVXaWR0aENvbnN0cmFpbnRzLm1pbmltdW07Ci0gICAgICAg
ICAgICBjb2x1bW5zQ29udGV4dC51c2VBc0xvZ2ljYWxXaWR0aChUYWJsZUdyaWQ6OkNvbHVtbnND
b250ZXh0OjpXaWR0aENvbnN0cmFpbnRzVHlwZTo6TWluaW11bSk7CisgICAgICAgICAgICB1c2VB
c0NvbnRlbnRMb2dpY2FsV2lkdGgoV2lkdGhDb25zdHJhaW50c1R5cGU6Ok1pbmltdW0pOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHRhYmxlV2lkdGhDb25zdHJhaW50cy5t
aW5pbXVtID4gY29udGFpbmluZ0Jsb2NrV2lkdGgpIHsKICAgICAgICAgICAgIHVzZWRXaWR0aCA9
IHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5pbXVtOwotICAgICAgICAgICAgY29sdW1uc0NvbnRl
eHQudXNlQXNMb2dpY2FsV2lkdGgoVGFibGVHcmlkOjpDb2x1bW5zQ29udGV4dDo6V2lkdGhDb25z
dHJhaW50c1R5cGU6Ok1pbmltdW0pOworICAgICAgICAgICAgdXNlQXNDb250ZW50TG9naWNhbFdp
ZHRoKFdpZHRoQ29uc3RyYWludHNUeXBlOjpNaW5pbXVtKTsKICAgICAgICAgfSBlbHNlIGlmICh0
YWJsZVdpZHRoQ29uc3RyYWludHMubWF4aW11bSA8IGNvbnRhaW5pbmdCbG9ja1dpZHRoKSB7CiAg
ICAgICAgICAgICB1c2VkV2lkdGggPSB0YWJsZVdpZHRoQ29uc3RyYWludHMubWF4aW11bTsKLSAg
ICAgICAgICAgIGNvbHVtbnNDb250ZXh0LnVzZUFzTG9naWNhbFdpZHRoKFRhYmxlR3JpZDo6Q29s
dW1uc0NvbnRleHQ6OldpZHRoQ29uc3RyYWludHNUeXBlOjpNYXhpbXVtKTsKKyAgICAgICAgICAg
IHVzZUFzQ29udGVudExvZ2ljYWxXaWR0aChXaWR0aENvbnN0cmFpbnRzVHlwZTo6TWF4aW11bSk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB1c2VkV2lkdGggPSBjb250YWluaW5nQmxv
Y2tXaWR0aDsKICAgICAgICAgICAgIGRpc3RyaWJ1dGVBdmFpbGFibGVXaWR0aCgqd2lkdGggLSB0
YWJsZVdpZHRoQ29uc3RyYWludHMubWluaW11bSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGFsc28gZGVhbCB3aXRoIGNvbGxhcHNpbmcgYm9yZGVycyBldGMu
Ci0gICAgTGF5b3V0VW5pdCBjb2x1bW5Mb2dpY2FsTGVmdDsKLSAgICBhdXRvJiBjb2x1bW5zID0g
Y29sdW1uc0NvbnRleHQuY29sdW1ucygpOwotICAgIGZvciAoYXV0byYgY29sdW1uIDogY29sdW1u
cykgeworICAgIGF1dG8gaG9yaXpvbnRhbFNwYWNpbmcgPSBncmlkLmhvcml6b250YWxTcGFjaW5n
KCk7CisgICAgYXV0byBjb2x1bW5Mb2dpY2FsTGVmdCA9IGhvcml6b250YWxTcGFjaW5nOworICAg
IGZvciAoYXV0byYgY29sdW1uIDogY29sdW1uc0NvbnRleHQuY29sdW1ucygpKSB7CiAgICAgICAg
IGNvbHVtbi5zZXRMb2dpY2FsTGVmdChjb2x1bW5Mb2dpY2FsTGVmdCk7Ci0gICAgICAgIGNvbHVt
bkxvZ2ljYWxMZWZ0ICs9IGNvbHVtbi5sb2dpY2FsV2lkdGgoKTsKKyAgICAgICAgY29sdW1uTG9n
aWNhbExlZnQgKz0gKGNvbHVtbi5sb2dpY2FsV2lkdGgoKSArIGhvcml6b250YWxTcGFjaW5nKTsK
ICAgICB9CiAgICAgcmV0dXJuIHVzZWRXaWR0aDsKIH0KQEAgLTI1OCw2ICsyODksMTUgQEAgdm9p
ZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpkaXN0cmlidXRlQXZhaWxhYmxlV2lkdGgoTGF5b3V0
VW5pdCBleHRyYUhvcml6b250YWwKICAgICAgICAgY29sdW1uLnNldExvZ2ljYWxXaWR0aChjb2x1
bW4ud2lkdGhDb25zdHJhaW50cygpLm1pbmltdW0gKyBjb2x1bW5FeHRyYVNwYWNlKTsKIH0KIAor
dm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojp1c2VBc0NvbnRlbnRMb2dpY2FsV2lkdGgoV2lk
dGhDb25zdHJhaW50c1R5cGUgdHlwZSkKK3sKKyAgICBhdXRvJiBjb2x1bW5zID0gZm9ybWF0dGlu
Z1N0YXRlKCkudGFibGVHcmlkKCkuY29sdW1uc0NvbnRleHQoKS5jb2x1bW5zKCk7CisgICAgQVNT
RVJUKCFjb2x1bW5zLmlzRW1wdHkoKSk7CisKKyAgICBmb3IgKGF1dG8mIGNvbHVtbiA6IGNvbHVt
bnMpCisgICAgICAgIGNvbHVtbi5zZXRMb2dpY2FsV2lkdGgodHlwZSA9PSBXaWR0aENvbnN0cmFp
bnRzVHlwZTo6TWluaW11bSA/IGNvbHVtbi53aWR0aENvbnN0cmFpbnRzKCkubWluaW11bSA6IGNv
bHVtbi53aWR0aENvbnN0cmFpbnRzKCkubWF4aW11bSk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9y
bWF0dGluZ0NvbnRleHQuaAppbmRleCBhOTI4MjY1YjRmMzNkYjNmNGU1ODRhNzFkYTc5ZjI4Mjlj
OWY0Mjc0Li44NDZhZTNhNzFkOTEzY2Y0NDVhZGM4NDNiZDcxOTAzN2FkZTc1YmJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTYsMTAgKzU2LDE2IEBAIHByaXZhdGU6CiAKICAg
ICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cygpIG92ZXJyaWRlOwogICAgIExheW91dFVuaXQgY29tcHV0ZWRUYWJsZVdpZHRoKCk7Cisg
ICAgdm9pZCBsYXlvdXRUYWJsZUNlbGxCb3goY29uc3QgQm94JiBjZWxsTGF5b3V0Qm94LCBjb25z
dCBUYWJsZUdyaWQ6OkNvbHVtbiYpOworICAgIHZvaWQgcG9zaXRpb25UYWJsZUNlbGxzKCk7Cisg
ICAgdm9pZCBzZXRDb21wdXRlZEdlb21ldHJ5Rm9yUm93cygpOworICAgIHZvaWQgc2V0Q29tcHV0
ZWRHZW9tZXRyeUZvclNlY3Rpb25zKCk7CiAKICAgICB2b2lkIGVuc3VyZVRhYmxlR3JpZCgpOwog
ICAgIHZvaWQgY29tcHV0ZVByZWZlcnJlZFdpZHRoRm9yQ29sdW1ucygpOwogICAgIHZvaWQgZGlz
dHJpYnV0ZUF2YWlsYWJsZVdpZHRoKExheW91dFVuaXQgZXh0cmFIb3Jpem9udGFsU3BhY2UpOwor
ICAgIGVudW0gY2xhc3MgV2lkdGhDb25zdHJhaW50c1R5cGUgeyBNaW5pbXVtLCBNYXhpbXVtIH07
CisgICAgdm9pZCB1c2VBc0NvbnRlbnRMb2dpY2FsV2lkdGgoV2lkdGhDb25zdHJhaW50c1R5cGUp
OwogCiAgICAgdm9pZCBpbml0aWFsaXplRGlzcGxheUJveFRvQmxhbmsoRGlzcGxheTo6Qm94Jikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRp
bmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApp
bmRleCAzODA2ZTA3NGEyNTlmNzNhODA2ZjgxYTg0ZDkwODE5OTBhMDAxNGVmLi40MjcwNTk2MWM3
MGZlNjQ1NzQ0MjhkMjNhOTlmMzdlMmQ0M2RiMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEhlaWdodEFuZE1hcmdp
biBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6dGFibGVDZWxsSGVpZ2h0QW5kTWFy
Z2luKGNvbnN0CiAgICAgaWYgKCFoZWlnaHQpCiAgICAgICAgIGhlaWdodCA9IGNvbnRlbnRIZWln
aHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QobGF5b3V0Qm94KTsKIAotICAgIC8vIEZJWE1FOiBD
b21wdXRlIHZlcnRpY2FsIG1hcmdpbiB2YWx1ZXMuCisgICAgLy8gTWFyZ2lucyBkb24ndCBhcHBs
eSB0byBpbnRlcm5hbCB0YWJsZSBlbGVtZW50cy4KICAgICByZXR1cm4gSGVpZ2h0QW5kTWFyZ2lu
IHsgKmhlaWdodCwgeyB9IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcAppbmRleCBhMDYyNGY1ZjFmZjdjZWU5NjNmMTE3
MzMxMDYyYzRjMTI5ZGVjZDdmLi4yNzE3ZmMxYzM4ODM1MjlkMWFkZTBhM2EzMWY0YWM4NzI1NDc1
MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUdyaWQuY3BwCkBAIC04MiwxMiArODIsNiBAQCB2b2lkIFRhYmxlR3JpZDo6Q29sdW1uc0Nv
bnRleHQ6OmFkZENvbHVtbigpCiAgICAgbV9jb2x1bW5zLmFwcGVuZCh7IH0pOwogfQogCi12b2lk
IFRhYmxlR3JpZDo6Q29sdW1uc0NvbnRleHQ6OnVzZUFzTG9naWNhbFdpZHRoKFdpZHRoQ29uc3Ry
YWludHNUeXBlIHR5cGUpCi17Ci0gICAgZm9yIChhdXRvJiBjb2x1bW4gOiBtX2NvbHVtbnMpCi0g
ICAgICAgIGNvbHVtbi5zZXRMb2dpY2FsV2lkdGgodHlwZSA9PSBXaWR0aENvbnN0cmFpbnRzVHlw
ZTo6TWluaW11bSA/IGNvbHVtbi53aWR0aENvbnN0cmFpbnRzKCkubWluaW11bSA6IGNvbHVtbi53
aWR0aENvbnN0cmFpbnRzKCkubWF4aW11bSk7Ci19Ci0KIFRhYmxlR3JpZDo6Um93OjpSb3coY29u
c3QgQm94JiByb3dCb3gpCiAgICAgOiBtX2xheW91dEJveChyb3dCb3gpCiB7CkBAIC0xNDcsOCAr
MTQxLDggQEAgdm9pZCBUYWJsZUdyaWQ6OmFwcGVuZENlbGwoY29uc3QgQm94JiB0YWJsZUNlbGxC
b3gpCiAgICAgICAgIH0KICAgICB9CiAgICAgLy8gSW5pdGlhbGl6ZSBjb2x1bW5zL3Jvd3MgaWYg
bmVlZGVkLgotICAgIGF1dG8gbWlzc2luZ051bWJlck9mQ29sdW1ucyA9IHN0ZDo6bWF4PHVuc2ln
bmVkPigwLCAoaW5pdGlhbFNsb3RQb3NpdGlvbi54KCkgKyBjb2x1bW5TcGFuKSAtIG1fY29sdW1u
c0NvbnRleHQuY29sdW1ucygpLnNpemUoKSk7IAotICAgIGZvciAodW5zaWduZWQgY29sdW1uID0g
MDsgY29sdW1uIDwgbWlzc2luZ051bWJlck9mQ29sdW1uczsgKytjb2x1bW4pCisgICAgYXV0byBt
aXNzaW5nTnVtYmVyT2ZDb2x1bW5zID0gc3RkOjptYXg8aW50PigwLCBpbml0aWFsU2xvdFBvc2l0
aW9uLngoKSArIGNvbHVtblNwYW4gLSBtX2NvbHVtbnNDb250ZXh0LmNvbHVtbnMoKS5zaXplKCkp
OyAKKyAgICBmb3IgKGF1dG8gY29sdW1uID0gMDsgY29sdW1uIDwgbWlzc2luZ051bWJlck9mQ29s
dW1uczsgKytjb2x1bW4pCiAgICAgICAgIG1fY29sdW1uc0NvbnRleHQuYWRkQ29sdW1uKCk7CiAK
ICAgICBpZiAoaXNJbk5ld1JvdykKQEAgLTE3NCw2ICsxNjgsNyBAQCBGb3JtYXR0aW5nQ29udGV4
dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUdyaWQ6OndpZHRoQ29uc3RyYWludHMo
KSBjb25zdAogICAgIGF1dG8gd2lkdGhDb25zdHJhaW50cyA9IEZvcm1hdHRpbmdDb250ZXh0OjpJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfTsKICAgICBmb3IgKGF1dG8mIGNvbHVtbiA6IG1f
Y29sdW1uc0NvbnRleHQuY29sdW1ucygpKQogICAgICAgICB3aWR0aENvbnN0cmFpbnRzICs9IGNv
bHVtbi53aWR0aENvbnN0cmFpbnRzKCk7CisgICAgd2lkdGhDb25zdHJhaW50cy5leHBhbmQoKG1f
Y29sdW1uc0NvbnRleHQuY29sdW1ucygpLnNpemUoKSArIDEpICogbV9ob3Jpem9udGFsU3BhY2lu
Zyk7IAogICAgIHJldHVybiB3aWR0aENvbnN0cmFpbnRzOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaAppbmRleCA2MTZjMGIyZjM2
ZDUyZWVkZDIwZjViN2EzM2EyZjQzZDFhZTc1NWJjLi5mOWNjMDAxMzM1MTg2NzgwMjdiZDc5YmUx
M2E3MDI4NDRiMGVlNGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZv
cm1hdHRpbmcvVGFibGVHcmlkLmgKQEAgLTQ2LDYgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IGluc2VydENlbGwoY29uc3QgQm94JiwgY29uc3QgQm94JiBiZWZvcmUpOwogICAgIHZvaWQgcmVt
b3ZlQ2VsbChjb25zdCBCb3gmKTsKIAorICAgIHZvaWQgc2V0SG9yaXpvbnRhbFNwYWNpbmcoTGF5
b3V0VW5pdCBob3Jpem9udGFsU3BhY2luZykgeyBtX2hvcml6b250YWxTcGFjaW5nID0gaG9yaXpv
bnRhbFNwYWNpbmc7IH0KKyAgICBMYXlvdXRVbml0IGhvcml6b250YWxTcGFjaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9ob3Jpem9udGFsU3BhY2luZzsgfQorCisgICAgdm9pZCBzZXRWZXJ0aWNhbFNw
YWNpbmcoTGF5b3V0VW5pdCB2ZXJ0aWNhbFNwYWNpbmcpIHsgbV92ZXJ0aWNhbFNwYWNpbmcgPSB2
ZXJ0aWNhbFNwYWNpbmc7IH0KKyAgICBMYXlvdXRVbml0IHZlcnRpY2FsU3BhY2luZygpIGNvbnN0
IHsgcmV0dXJuIG1fdmVydGljYWxTcGFjaW5nOyB9CisKICAgICB1c2luZyBTbG90UG9zaXRpb24g
PSBJbnRQb2ludDsKIAogICAgIC8vIENlbGwgcmVwcmVzZW50cyBhIDx0ZD4gb3IgPHRoPi4gSXQg
Y2FuIHNwYW4gbXVsdGlwbGUgc2xvdHMgaW4gdGhlIGdyaWQuCkBAIC02OCwxMyArNzQsMTEgQEAg
cHVibGljOgogICAgICAgICB2b2lkIHNldFdpZHRoQ29uc3RyYWludHMoRm9ybWF0dGluZ0NvbnRl
eHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMpOwogICAgICAgICBGb3JtYXR0aW5nQ29udGV4
dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyB3aWR0aENvbnN0cmFpbnRzKCkgY29uc3Q7CiAK
LSAgICAgICAgdm9pZCBzZXRMb2dpY2FsV2lkdGgoTGF5b3V0VW5pdCk7Ci0gICAgICAgIExheW91
dFVuaXQgbG9naWNhbFdpZHRoKCkgY29uc3Q7Ci0KICAgICAgICAgdm9pZCBzZXRMb2dpY2FsTGVm
dChMYXlvdXRVbml0KTsKICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0Owot
CiAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbG9naWNh
bExlZnQoKSArIGxvZ2ljYWxXaWR0aCgpOyB9CisgICAgICAgIHZvaWQgc2V0TG9naWNhbFdpZHRo
KExheW91dFVuaXQpOworICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0Owog
CiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIENvbHVtbnNDb250ZXh0OwpAQCAt
OTUsOSArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgIHVzaW5nIENvbHVtbkxpc3QgPSBWZWN0b3I8
Q29sdW1uPjsKICAgICAgICAgQ29sdW1uTGlzdCYgY29sdW1ucygpIHsgcmV0dXJuIG1fY29sdW1u
czsgfQogICAgICAgICBjb25zdCBDb2x1bW5MaXN0JiBjb2x1bW5zKCkgY29uc3QgeyByZXR1cm4g
bV9jb2x1bW5zOyB9Ci0KLSAgICAgICAgZW51bSBjbGFzcyBXaWR0aENvbnN0cmFpbnRzVHlwZSB7
IE1pbmltdW0sIE1heGltdW0gfTsKLSAgICAgICAgdm9pZCB1c2VBc0xvZ2ljYWxXaWR0aChXaWR0
aENvbnN0cmFpbnRzVHlwZSk7CisgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoKCkgY29u
c3QgeyByZXR1cm4gY29sdW1ucygpLmxhc3QoKS5sb2dpY2FsUmlnaHQoKSAtIGNvbHVtbnMoKS5m
aXJzdCgpLmxvZ2ljYWxMZWZ0KCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBUYWJsZUdyaWQ7CkBAIC0xNDgsNiArMTUwLDggQEAgcHJpdmF0ZToKICAgICBDZWxsTGlz
dCBtX2NlbGxMaXN0OwogICAgIENvbHVtbnNDb250ZXh0IG1fY29sdW1uc0NvbnRleHQ7CiAgICAg
Um93TGlzdCBtX3Jvd3M7CisgICAgTGF5b3V0VW5pdCBtX2hvcml6b250YWxTcGFjaW5nOworICAg
IExheW91dFVuaXQgbV92ZXJ0aWNhbFNwYWNpbmc7CiB9OwogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>