<?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>210403</bug_id>
          
          <creation_ts>2020-04-11 22:13:05 -0700</creation_ts>
          <short_desc>[LFC][TFC] Add support for column spanners</short_desc>
          <delta_ts>2020-04-12 11:33:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1640651</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-04-11 22:13:05 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640652</commentid>
    <comment_count>1</comment_count>
      <attachid>396215</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-11 22:18:32 -0700</bug_when>
    <thetext>Created attachment 396215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640709</commentid>
    <comment_count>2</comment_count>
      <attachid>396235</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-12 11:09:59 -0700</bug_when>
    <thetext>Created attachment 396235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640713</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-12 11:32:12 -0700</bug_when>
    <thetext>Committed r259984: &lt;https://trac.webkit.org/changeset/259984&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396235.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640714</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-12 11:33:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/61679539&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396215</attachid>
            <date>2020-04-11 22:18:32 -0700</date>
            <delta_ts>2020-04-12 11:09:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210403-20200411221832.patch</filename>
            <type>text/plain</type>
            <size>20242</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ2OGRkN2M1ODI0M2M3
NTExNjlhMGY1MzI3NjMzNTJmMTBhMjllNC4uNzI0NWMwYjM1MjU1MTZhYjg4M2VhNzdlYzU1NGE4
NTU5OTA3NmFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBBZGQgc3Vw
cG9ydCBmb3IgY29sdW1uIHNwYW5uZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA0MDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUYWJsZSB3aWR0aCBjb25zdHJhaW50IGNvbXB1dGF0aW9uIHdpdGgg
c3Bhbm5lciBzdXBwb3J0IGlzIGFzIGZvbGxvd3M6CisKKyAgICAgICAgMS4gQ29sbGVjdCBlYWNo
IGNlbGxzJyB3aWR0aCBjb25zdHJhaW50cy4KKyAgICAgICAgMi4gQ29sbGVjdCBmaXhlZCBjb2x1
bW4gd2lkdGhzIHNldCBieSA8Y29sZ3JvdXA+J3MgYW5kIDxjb2w+cy4KKyAgICAgICAgMy4gRmlu
ZCB0aGUgbWluL21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW5zIHVzaW5nIHRoZSBjZWxsIGNvbnN0
cmFpbnRzIGFuZCB0aGUgPGNvbD4gZml4ZWQgd2lkdGhzIGJ1dCBpZ25vcmUgY29sdW1uIHNwYW5z
LgorICAgICAgICA0LiBEaXN0cmlidXRlIGNvbHVtbiBzcGFubmluZyBjZWxscyBtaW4vbWF4IHdp
ZHRocy4KKyAgICAgICAgNS4gQWRkIHRoZW0gYWxsIHVwIGFuZCByZXR1cm4gdGhlIGNvbXB1dGVk
IG1pbi9tYXggd2lkdGhzLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNX
aWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3Jt
YXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFByZWZlcnJlZFdpZHRoRm9yQ29s
dW1ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVBbmREaXN0cmlidXRlRXh0cmFIb3Jpem9udGFsU3BhY2UpOgorICAgICAgICAqIGxh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmludHJpbnNpY1dpZHRoQ29uc3RyYWludHNGb3JDZWxsKToKKyAgICAgICAgKiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlR3JpZDo6Q29sdW1uczo6aGFzRml4ZWRDb2x1bW5zT25seSBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaDoKKwogMjAyMC0wNC0xMSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQ29sdW1u
LCBSb3cgYW5kIENlbGwgYm94ZXMgYXJlIGFsd2F5cyBDb250YWluZXJCb3hlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCBlZDQxOWI3ODlmMDAyNDdmMTlj
ZWY2YjAwZTQ5MGZlMzlhNGE5NGE2Li4xYzUyOTQwM2I4Y2QwYjlmYzYxNTVjNjEzOWM4MTNlYjg5
NTAyNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAt
NzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgc3RydWN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgewogICAgICAgICB2b2lkIGV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxWYWx1ZSk7CiAg
ICAgICAgIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIG9wZXJhdG9yKz0oY29uc3QgSW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyYpOworICAgICAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
JiBvcGVyYXRvci09KGNvbnN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmKTsKICAgICAgICAg
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYgb3BlcmF0b3ItPShMYXlvdXRVbml0KTsKIAogICAg
ICAgICBMYXlvdXRVbml0IG1pbmltdW07CkBAIC0yMjksNiArMjMwLDEzIEBAIGlubGluZSBGb3Jt
YXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYgRm9ybWF0dGluZ0NvbnRl
eHQ6OkludHJpbnNpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCitpbmxpbmUgRm9ybWF0dGluZ0Nv
bnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KGNvbnN0IEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMmIG90aGVyKQoreworICAgIG1pbmltdW0gLT0gb3RoZXIubWluaW11bTsKKyAgICBt
YXhpbXVtIC09IG90aGVyLm1heGltdW07CisgICAgcmV0dXJuICp0aGlzOworfQorCiBpbmxpbmUg
Rm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIEZvcm1hdHRpbmdD
b250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KExheW91dFVuaXQg
dmFsdWUpCiB7CiAgICAgbWluaW11bSAtPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IGM3NDZmNTlmODdkZDQ3ZTI0NDhmNDI4NWU5ZTFlNTBhODVhY2I0ZDQuLjA3
Nzk4ZjdiNzFhY2ZmMTNlYWQ2Nzc3ZDE2ZDg0ZTQxYzExYzUyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcApAQCAtMjQxLDkgKzI0MSwxMiBAQCBGb3JtYXR0aW5nQ29udGV4dDo6
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
ZFByZQogICAgIGF1dG8mIGdyaWQgPSBmb3JtYXR0aW5nU3RhdGUudGFibGVHcmlkKCk7CiAgICAg
QVNTRVJUKCFncmlkLndpZHRoQ29uc3RyYWludHMoKSk7CiAKLSAgICAvLyAxLiBDYWxjdWxhdGUg
dGhlIG1pbmltdW0gY29udGVudCB3aWR0aCAoTUNXKSBvZiBlYWNoIGNlbGw6IHRoZSBmb3JtYXR0
ZWQgY29udGVudCBtYXkgc3BhbiBhbnkgbnVtYmVyIG9mIGxpbmVzIGJ1dCBtYXkgbm90IG92ZXJm
bG93IHRoZSBjZWxsIGJveC4KLSAgICAvLyAgICBJZiB0aGUgc3BlY2lmaWVkICd3aWR0aCcgKFcp
IG9mIHRoZSBjZWxsIGlzIGdyZWF0ZXIgdGhhbiBNQ1csIFcgaXMgdGhlIG1pbmltdW0gY2VsbCB3
aWR0aC4gQSB2YWx1ZSBvZiAnYXV0bycgbWVhbnMgdGhhdCBNQ1cgaXMgdGhlIG1pbmltdW0gY2Vs
bCB3aWR0aC4KLSAgICAvLyAgICBBbHNvLCBjYWxjdWxhdGUgdGhlICJtYXhpbXVtIiBjZWxsIHdp
ZHRoIG9mIGVhY2ggY2VsbDogZm9ybWF0dGluZyB0aGUgY29udGVudCB3aXRob3V0IGJyZWFraW5n
IGxpbmVzIG90aGVyIHRoYW4gd2hlcmUgZXhwbGljaXQgbGluZSBicmVha3Mgb2NjdXIuCisgICAg
Ly8gQ29sdW1uIHByZWZlcnJlZCB3aWR0aCBjb21wdXRhdGlvbiBhcyBmb2xsb3dzOgorICAgIC8v
IDEuIENvbGxlY3QgZWFjaCBjZWxscycgd2lkdGggY29uc3RyYWludHMKKyAgICAvLyAyLiBDb2xs
ZWN0IGZpeGVkIGNvbHVtbiB3aWR0aHMgc2V0IGJ5IDxjb2xncm91cD4ncyBhbmQgPGNvbD5zCisg
ICAgLy8gMy4gRmluZCB0aGUgbWluL21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW5zIHVzaW5nIHRo
ZSBjZWxsIGNvbnN0cmFpbnRzIGFuZCB0aGUgPGNvbD4gZml4ZWQgd2lkdGhzIGJ1dCBpZ25vcmUg
Y29sdW1uIHNwYW5zLgorICAgIC8vIDQuIERpc3RyaWJ1dGUgY29sdW1uIHNwYW5uaW5nIGNlbGxz
IG1pbi9tYXggd2lkdGhzLgorICAgIC8vIDUuIEFkZCB0aGVtIGFsbCB1cCBhbmQgcmV0dXJuIHRo
ZSBjb21wdXRlZCBtaW4vbWF4IHdpZHRocy4KICAgICBmb3IgKGF1dG8mIGNlbGwgOiBncmlkLmNl
bGxzKCkpIHsKICAgICAgICAgYXV0byYgY2VsbEJveCA9IGNlbGwtPmJveCgpOwogICAgICAgICBB
U1NFUlQoY2VsbEJveC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7CkBAIC0y
NTcsMTMgKzI2MCwxNCBAQCBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJh
aW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFByZQogICAgICAgICBncmlkLnNs
b3QoY2VsbC0+cG9zaXRpb24oKSktPnNldFdpZHRoQ29uc3RyYWludHMoKmludHJpbnNpY1dpZHRo
KTsKICAgICB9CiAKKyAgICAvLyAyLiBDb2xsZWN0IHRoZSBmaXhlZCB3aWR0aCA8Y29sPnMuCiAg
ICAgYXV0byYgY29sdW1uTGlzdCA9IGdyaWQuY29sdW1ucygpLmxpc3QoKTsKICAgICBWZWN0b3I8
T3B0aW9uYWw8TGF5b3V0VW5pdD4+IGZpeGVkV2lkdGhDb2x1bW5zOwotICAgIGZvciAoc2l6ZV90
IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5MaXN0LnNpemUoKTsgKytjb2x1
bW5JbmRleCkgeworICAgIGZvciAoYXV0byYgY29sdW1uIDogY29sdW1uTGlzdCkgewogICAgICAg
ICBhdXRvIGZpeGVkV2lkdGggPSBbJl0gKCkgLT4gT3B0aW9uYWw8TGF5b3V0VW5pdD4gewotICAg
ICAgICAgICAgYXV0byogY29sdW1uQm94ID0gY29sdW1uTGlzdFtjb2x1bW5JbmRleF0uYm94KCk7
CisgICAgICAgICAgICBhdXRvKiBjb2x1bW5Cb3ggPSBjb2x1bW4uYm94KCk7CiAgICAgICAgICAg
ICBpZiAoIWNvbHVtbkJveCkgewotICAgICAgICAgICAgICAgIC8vIEFub3lubW91cyBjb2x1bW5z
IGRvbid0IGhhdmUgYXNzb2NpYXRlZCBsYXlvdXQgYm94ZXMuCisgICAgICAgICAgICAgICAgLy8g
QW5veW5tb3VzIGNvbHVtbnMgZG9uJ3QgaGF2ZSBhc3NvY2lhdGVkIGxheW91dCBib3hlcyBhbmQg
Y2FuJ3QgaGF2ZSBmaXhlZCBjb2wgc2l6ZS4KICAgICAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBjb2x1bW5Cb3gtPmNv
bHVtbldpZHRoKCkpCkBAIC0yNzQsMzMgKzI3OCw0MyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6SW50
cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFBy
ZQogICAgIH0KIAogICAgIFZlY3RvcjxGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhD
b25zdHJhaW50cz4gY29sdW1uSW50cmluc2ljV2lkdGhzOwotICAgIC8vIENvbGxlY3QgaGUgbWlu
L21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW4gYW5kIGZpbmFsaXplIHRoZSBwcmVmZXJyZWQgd2lk
dGggZm9yIHRoZSB0YWJsZS4KKyAgICAvLyAzLiBDb2xsZWN0IGhlIG1pbi9tYXggd2lkdGggZm9y
IGVhY2ggY29sdW1uIGJ1dCBpZ25vcmUgY29sdW1uIHNwYW5zIGZvciBub3cuCisgICAgVmVjdG9y
PFNsb3RQb3NpdGlvbj4gc3Bhbm5pbmdDZWxsUG9zaXRpb25MaXN0OwogICAgIGZvciAoc2l6ZV90
IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5MaXN0LnNpemUoKTsgKytjb2x1
bW5JbmRleCkgewogICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHMuYXBwZW5kKEZvcm1hdHRp
bmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfSk7CiAgICAgICAgIGZvciAo
c2l6ZV90IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBncmlkLnJvd3MoKS5zaXplKCk7ICsrcm93
SW5kZXgpIHsKICAgICAgICAgICAgIGF1dG8mIHNsb3QgPSAqZ3JpZC5zbG90KHsgY29sdW1uSW5k
ZXgsIHJvd0luZGV4IH0pOwogICAgICAgICAgICAgaWYgKHNsb3QuaGFzQ29sdW1uU3BhbigpKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byYgY2VsbCA9IHNsb3QuY2VsbCgpOwotICAgICAgICAgICAg
ICAgIGF1dG8gd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZSA9IHNsb3Qud2lkdGhDb25zdHJh
aW50cygpOwotICAgICAgICAgICAgICAgIGF1dG8gbnVtYmVyT2ZOb25GaXhlZFNwYW5uZWRDb2x1
bW5zID0gY2VsbC5jb2x1bW5TcGFuKCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgY29s
dW1uU3BhbkluZGV4ID0gY2VsbC5zdGFydENvbHVtbigpOyBjb2x1bW5TcGFuSW5kZXggPCBjZWxs
LmVuZENvbHVtbigpOyArK2NvbHVtblNwYW5JbmRleCkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBmaXhlZFdpZHRoID0gZml4ZWRXaWR0aENvbHVtbnNbY29sdW1uU3BhbkluZGV4XSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZSAt
PSAqZml4ZWRXaWR0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgIC0tbnVtYmVyT2ZOb25GaXhl
ZFNwYW5uZWRDb2x1bW5zOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGNvbHVtblNwYW5JbmRleCA9IGNlbGwuc3Rh
cnRDb2x1bW4oKTsgY29sdW1uU3BhbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsgKytjb2x1bW5T
cGFuSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgY29sdW1uSW50cmluc2ljV2lkdGhzW2Nv
bHVtbkluZGV4XS5taW5pbXVtID0gc3RkOjptYXgod2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0
ZS5taW5pbXVtIC8gbnVtYmVyT2ZOb25GaXhlZFNwYW5uZWRDb2x1bW5zLCBjb2x1bW5JbnRyaW5z
aWNXaWR0aHNbY29sdW1uSW5kZXhdLm1pbmltdW0pOwotICAgICAgICAgICAgICAgICAgICBjb2x1
bW5JbnRyaW5zaWNXaWR0aHNbY29sdW1uSW5kZXhdLm1heGltdW0gPSBzdGQ6Om1heCh3aWR0aENv
bnN0cmFpbnRzVG9EaXN0cmlidXRlLm1heGltdW0gLyBudW1iZXJPZk5vbkZpeGVkU3Bhbm5lZENv
bHVtbnMsIGNvbHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRv
IGNvbHVtbkZpeGVkV2lkdGggPSBmaXhlZFdpZHRoQ29sdW1uc1tjb2x1bW5JbmRleF07Ci0gICAg
ICAgICAgICAgICAgYXV0byB3aWR0aENvbnN0cmFpbnRzID0gIWNvbHVtbkZpeGVkV2lkdGggPyBz
bG90LndpZHRoQ29uc3RyYWludHMoKSA6IEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzIHsgKmNvbHVtbkZpeGVkV2lkdGgsICpjb2x1bW5GaXhlZFdpZHRoIH07Ci0g
ICAgICAgICAgICAgICAgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5taW5pbXVt
ID0gc3RkOjptYXgod2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBjb2x1bW5JbnRyaW5zaWNXaWR0
aHNbY29sdW1uSW5kZXhdLm1pbmltdW0pOwotICAgICAgICAgICAgICAgIGNvbHVtbkludHJpbnNp
Y1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSA9IHN0ZDo6bWF4KHdpZHRoQ29uc3RyYWludHMu
bWF4aW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5tYXhpbXVtKTsKKyAg
ICAgICAgICAgICAgICBzcGFubmluZ0NlbGxQb3NpdGlvbkxpc3QuYXBwZW5kKHsgY29sdW1uSW5k
ZXgsIHJvd0luZGV4IH0pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKHNsb3QuaXNDb2x1bW5TcGFubmVkKCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvIGNvbHVtbkZpeGVkV2lkdGggPSBmaXhlZFdp
ZHRoQ29sdW1uc1tjb2x1bW5JbmRleF07CisgICAgICAgICAgICBhdXRvIHdpZHRoQ29uc3RyYWlu
dHMgPSAhY29sdW1uRml4ZWRXaWR0aCA/IHNsb3Qud2lkdGhDb25zdHJhaW50cygpIDogRm9ybWF0
dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyAqY29sdW1uRml4ZWRXaWR0
aCwgKmNvbHVtbkZpeGVkV2lkdGggfTsKKyAgICAgICAgICAgIGNvbHVtbkludHJpbnNpY1dpZHRo
c1tjb2x1bW5JbmRleF0ubWluaW11bSA9IHN0ZDo6bWF4KHdpZHRoQ29uc3RyYWludHMubWluaW11
bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5taW5pbXVtKTsKKyAgICAgICAg
ICAgIGNvbHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSA9IHN0ZDo6bWF4
KHdpZHRoQ29uc3RyYWludHMubWF4aW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbklu
ZGV4XS5tYXhpbXVtKTsKICAgICAgICAgfQogICAgIH0KKworICAgIC8vIDQuIERpc3RyaWJ1dGUg
dGhlIHNwYW5uaW5nIG1pbi9tYXggd2lkdGhzLgorICAgIGZvciAoYXV0byBzcGFubmluZ0NlbGxQ
b3NpdGlvbiA6IHNwYW5uaW5nQ2VsbFBvc2l0aW9uTGlzdCkgeworICAgICAgICBhdXRvJiBzbG90
ID0gKmdyaWQuc2xvdChzcGFubmluZ0NlbGxQb3NpdGlvbik7CisgICAgICAgIGF1dG8mIGNlbGwg
PSBzbG90LmNlbGwoKTsKKyAgICAgICAgQVNTRVJUKHNsb3QuaGFzQ29sdW1uU3BhbigpKTsKKyAg
ICAgICAgYXV0byB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlID0gc2xvdC53aWR0aENvbnN0
cmFpbnRzKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGNvbHVtblNwYW5JbmRleCA9IGNlbGwuc3Rh
cnRDb2x1bW4oKTsgY29sdW1uU3BhbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsgKytjb2x1bW5T
cGFuSW5kZXgpCisgICAgICAgICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlIC09IGNv
bHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5TcGFuSW5kZXhdOworICAgICAgICAvLyBGSVhNRTog
Q2hlY2sgaWYgZml4ZWQgd2lkdGggY29sdW1ucyBzaG91bGQgYmUgc2tpcHBlZCBoZXJlLgorICAg
ICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlLm1pbmltdW0gPSBzdGQ6Om1heChMYXlv
dXRVbml0IHsgfSwgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZS5taW5pbXVtIC8gY2VsbC5j
b2x1bW5TcGFuKCkpOworICAgICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlLm1heGlt
dW0gPSBzdGQ6Om1heChMYXlvdXRVbml0IHsgfSwgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0
ZS5tYXhpbXVtIC8gY2VsbC5jb2x1bW5TcGFuKCkpOworICAgICAgICBpZiAod2lkdGhDb25zdHJh
aW50c1RvRGlzdHJpYnV0ZS5taW5pbXVtIHx8IHdpZHRoQ29uc3RyYWludHNUb0Rpc3RyaWJ1dGUu
bWF4aW11bSkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uU3BhbkluZGV4ID0gY2Vs
bC5zdGFydENvbHVtbigpOyBjb2x1bW5TcGFuSW5kZXggPCBjZWxsLmVuZENvbHVtbigpOyArK2Nv
bHVtblNwYW5JbmRleCkKKyAgICAgICAgICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHNbY29s
dW1uU3BhbkluZGV4XSArPSB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gNS4gVGhlIGZpbmFsIHRhYmxlIG1pbi9tYXggd2lkdGhzIGlzIGp1
c3QgdGhlIGFjY3VtdWxhdGVkIGNvbHVtbiBjb25zdHJhaW50cy4KICAgICBhdXRvIHRhYmxlV2lk
dGhDb25zdHJhaW50cyA9IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OwogICAgIGZvciAo
YXV0byYgY29sdW1uSW50cmluc2ljV2lkdGggOiBjb2x1bW5JbnRyaW5zaWNXaWR0aHMpCiAgICAg
ICAgIHRhYmxlV2lkdGhDb25zdHJhaW50cyArPSBjb2x1bW5JbnRyaW5zaWNXaWR0aDsKQEAgLTMx
NCwxOSArMzI4LDE2IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUFuZERp
c3RyaWJ1dGVFeHRyYUhvcml6b250YWxTcGFjZShMYXlvdXRVbml0CiAgICAgYXV0byYgcm93cyA9
IGdyaWQucm93cygpOwogICAgIGF1dG8gdGFibGVXaWR0aENvbnN0cmFpbnRzID0gKmdyaWQud2lk
dGhDb25zdHJhaW50cygpOwogCi0gICAgLy8gQ29sdW1uIGFuZCBjYXB0aW9uIHdpZHRocyBpbmZs
dWVuY2UgdGhlIGZpbmFsIHRhYmxlIHdpZHRoIGFzIGZvbGxvd3M6Ci0gICAgLy8gSWYgdGhlICd0
YWJsZScgb3IgJ2lubGluZS10YWJsZScgZWxlbWVudCdzICd3aWR0aCcgcHJvcGVydHkgaGFzIGEg
Y29tcHV0ZWQgdmFsdWUgKFcpIG90aGVyIHRoYW4gJ2F1dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0
aGUgZ3JlYXRlciBvZgotICAgIC8vIFcsIENBUE1JTiwgYW5kIHRoZSBtaW5pbXVtIHdpZHRoIHJl
cXVpcmVkIGJ5IGFsbCB0aGUgY29sdW1ucyBwbHVzIGNlbGwgc3BhY2luZyBvciBib3JkZXJzIChN
SU4pLgotICAgIC8vIElmIHRoZSB1c2VkIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiBNSU4sIHRoZSBl
eHRyYSB3aWR0aCBzaG91bGQgYmUgZGlzdHJpYnV0ZWQgb3ZlciB0aGUgY29sdW1ucy4KLSAgICAv
LyBJZiB0aGUgJ3RhYmxlJyBvciAnaW5saW5lLXRhYmxlJyBlbGVtZW50IGhhcyAnd2lkdGg6IGF1
dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0aGUgZ3JlYXRlciBvZiB0aGUgdGFibGUncyBjb250YWlu
aW5nIGJsb2NrIHdpZHRoLAotICAgIC8vIENBUE1JTiwgYW5kIE1JTi4gSG93ZXZlciwgaWYgZWl0
aGVyIENBUE1JTiBvciB0aGUgbWF4aW11bSB3aWR0aCByZXF1aXJlZCBieSB0aGUgY29sdW1ucyBw
bHVzIGNlbGwgc3BhY2luZyBvciBib3JkZXJzIChNQVgpIGlzCi0gICAgLy8gbGVzcyB0aGFuIHRo
YXQgb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2ssIHVzZSBtYXgoTUFYLCBDQVBNSU4pLgogICAgIGF1
dG8gZGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlID0gWyZdIChhdXRvIGhvcml6b250YWxT
cGFjZVRvRGlzdHJpYnV0ZSkgewogICAgICAgICBhdXRvJiBjb2x1bW5MaXN0ID0gZ3JpZC5jb2x1
bW5zKCkubGlzdCgpOwogICAgICAgICBBU1NFUlQoIWNvbHVtbkxpc3QuaXNFbXB0eSgpKTsKIAot
ICAgICAgICAvLyAxLiBDb2xsZWN0IG1pbmltdW0gd2lkdGhzIGFjcm9zcyBjb2x1bW5zIGJ1dCBp
Z25vcmUgc3Bhbm5pbmcgY2VsbHMgZmlyc3QuCi0gICAgICAgIFZlY3RvcjxmbG9hdD4gY29sdW1u
TWluaW11bVdpZHRoczsKKyAgICAgICAgLy8gMS4gQ29sbGVjdCBtaW5pbXVtIHdpZHRocyBkcml2
ZW4gYnkgPHRkPiBhY3Jvc3MgY29sdW1ucyBidXQgaWdub3JlIHNwYW5uaW5nIGNlbGxzIGZpcnN0
LgorICAgICAgICBzdHJ1Y3QgQ29sdW1uTWluaW11bVdpZHRoIHsKKyAgICAgICAgICAgIGZsb2F0
IHZhbHVlIHsgMCB9OworICAgICAgICAgICAgYm9vbCBzaG91bGRGbGV4IHsgdHJ1ZSB9OworICAg
ICAgICB9OworICAgICAgICBWZWN0b3I8Q29sdW1uTWluaW11bVdpZHRoPiBjb2x1bW5NaW5pbXVt
V2lkdGhzOwogICAgICAgICBWZWN0b3I8U2xvdFBvc2l0aW9uPiBzcGFubmluZ0NlbGxQb3NpdGlv
bkxpc3Q7CiAgICAgICAgIGZvciAoc2l6ZV90IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dz
LnNpemUoKTsgKytyb3dJbmRleCkgewogICAgICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uSW5k
ZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbnMuc2l6ZSgpOyArK2NvbHVtbkluZGV4KSB7CkBA
IC0zMzgsMTIgKzM0OSwyNSBAQCB2b2lkIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVB
bmREaXN0cmlidXRlRXh0cmFIb3Jpem9udGFsU3BhY2UoTGF5b3V0VW5pdAogICAgICAgICAgICAg
ICAgIGlmIChzbG90LmlzQ29sdW1uU3Bhbm5lZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoIXJvd0luZGV4KQotICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5NaW5pbXVtV2lkdGhzLmFwcGVuZChzbG90LndpZHRoQ29uc3RyYWludHMoKS5taW5p
bXVtKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTWluaW11bVdpZHRocy5hcHBlbmQoeyBz
bG90LndpZHRoQ29uc3RyYWludHMoKS5taW5pbXVtLCAhY29sdW1ucy5saXN0KClbY29sdW1uSW5k
ZXhdLmlzRml4ZWRXaWR0aCgpIH0pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0gPSBzdGQ6Om1heDxmbG9h
dD4oY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0sIHNsb3Qud2lkdGhDb25zdHJhaW50
cygpLm1pbmltdW0pOworICAgICAgICAgICAgICAgICAgICBjb2x1bW5NaW5pbXVtV2lkdGhzW2Nv
bHVtbkluZGV4XS52YWx1ZSA9IHN0ZDo6bWF4PGZsb2F0Pihjb2x1bW5NaW5pbXVtV2lkdGhzW2Nv
bHVtbkluZGV4XS52YWx1ZSwgc2xvdC53aWR0aENvbnN0cmFpbnRzKCkubWluaW11bSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgLy8gMi4gRGlzdHJpYnV0ZSB0aGUgc3Bhbm5p
bmcgY2VsbHMnIG1pbWltdW0gd2lkdGhzIGFjcm9zcyB0aGUgY29sdW1ucyB1c2luZyB0aGUgbm9u
LXNwYW5uaW5nIG1pbml1bSB3aWR0aHMuCisgICAgICAgIC8vIDIuIEFkanVzdCB0aGUgbWluaW11
bSB3aWR0aCB3aXRoIGZpeGVkIGNvbHVtbiB3aWR0aHMgKDxjb2w+IHZzLiA8dGQ+KSBhbmQgYWxz
byBtYW5hZ2UgYWxsLWZpeGVkLXdpZHRoLWNvbHVtbiBjb250ZW50LgorICAgICAgICBhdXRvIGhh
c0ZpeGVkQ29sdW1uc09ubHkgPSBjb2x1bW5zLmhhc0ZpeGVkQ29sdW1uc09ubHkoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbkxpc3Qu
c2l6ZSgpOyArK2NvbHVtbkluZGV4KSB7CisgICAgICAgICAgICBhdXRvJiBjb2x1bW4gPSBjb2x1
bW5MaXN0W2NvbHVtbkluZGV4XTsKKyAgICAgICAgICAgIGlmICghY29sdW1uLmlzRml4ZWRXaWR0
aCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gVGhpcyBpcyB0
aGUgY29sdW1uIHdpZHRoIGJhc2VkIG9uIDxjb2wgd2lkdGg9IiI+IGFuZCBub3QgPHRkIHN0eWxl
PSJ3aWR0aDogIj4uCisgICAgICAgICAgICBhdXRvIGNvbHVtbkZpeGVkV2lkdGggPSBjb2x1bW4u
Ym94KCkgPyBjb2x1bW4uYm94KCktPmNvbHVtbldpZHRoKCkgOiBXVEY6Om51bGxvcHQ7IAorICAg
ICAgICAgICAgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0udmFsdWUgPSBzdGQ6Om1h
eChjb2x1bW5NaW5pbXVtV2lkdGhzW2NvbHVtbkluZGV4XS52YWx1ZSwgY29sdW1uRml4ZWRXaWR0
aC52YWx1ZU9yKDApLnRvRmxvYXQoKSk7CisgICAgICAgICAgICAvLyBGaXhlZCBjb2x1bW5zIGZs
ZXggd2hlbiB0aGVyZSBhcmUgbm8gb3RoZXIgZmxleGFibGUgY29sdW1ucy4KKyAgICAgICAgICAg
IGNvbHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdLnNob3VsZEZsZXggPSBoYXNGaXhlZENv
bHVtbnNPbmx5IHwgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0uc2hvdWxkRmxleDsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIDMuIERpc3RyaWJ1dGUgdGhlIHNwYW5uaW5nIGNlbGxz
JyBtaW1pbXVtIHdpZHRocyBhY3Jvc3MgdGhlIGNvbHVtbnMgdXNpbmcgdGhlIG5vbi1zcGFubmlu
ZyBtaW5pbXVtIHdpZHRocy4KICAgICAgICAgLy8gZS5nLiBbIDEgXVsgNSBdWyAxIF0KICAgICAg
ICAgLy8gICAgICBbICAgIDkgICBdWyAxIF0KICAgICAgICAgLy8gVGhlIG1pbmltdW0gd2lkdGhz
IGFyZTogWyAyIF1bIDcgXVsgMSBdCkBAIC0zNTQsNyArMzc4LDcgQEAgdm9pZCBUYWJsZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlQW5kRGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlKExh
eW91dFVuaXQKICAgICAgICAgICAgIGZsb2F0IGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0aCA9
IDA7CiAgICAgICAgICAgICAvLyAxLiBDb2xsZWN0IHRoZSBub24tc3BhbmluZyBtaW5pbXVtIHdp
ZHRocy4KICAgICAgICAgICAgIGZvciAoYXV0byBjb2x1bW5JbmRleCA9IGNlbGwuc3RhcnRDb2x1
bW4oKTsgY29sdW1uSW5kZXggPCBjZWxsLmVuZENvbHVtbigpOyArK2NvbHVtbkluZGV4KQotICAg
ICAgICAgICAgICAgIGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0aCArPSBjb2x1bW5NaW5pbXVt
V2lkdGhzW2NvbHVtbkluZGV4XTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U3Bhbm5pbmdNaW5p
bXVtV2lkdGggKz0gY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0udmFsdWU7CiAgICAg
ICAgICAgICBmbG9hdCBzcGFubmluZ01pbmltdW1XaWR0aCA9IHNsb3Qud2lkdGhDb25zdHJhaW50
cygpLm1pbmltdW07CiAgICAgICAgICAgICBpZiAoY3VycmVudFNwYW5uaW5nTWluaW11bVdpZHRo
ID49IHNwYW5uaW5nTWluaW11bVdpZHRoKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIHNwYW5u
aW5nIGNlbGwgZml0cyB0aGUgc3Bhbm5lZCBjb2x1bW5zIGp1c3QgZmluZS4gTm90aGluZyB0byBk
aXN0cmlidXRlLgpAQCAtMzY1LDMwICszODksMjkgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlQW5kRGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlKExheW91dFVuaXQK
ICAgICAgICAgICAgIC8vIE5ldyBtaW5pbXVtIHdpZHRoczogWyAzIF0gWyA2IF0uCiAgICAgICAg
ICAgICBhdXRvIHNwYWNlVG9EaXN0cmlidXRlID0gc3Bhbm5pbmdNaW5pbXVtV2lkdGggLSBjdXJy
ZW50U3Bhbm5pbmdNaW5pbXVtV2lkdGg7CiAgICAgICAgICAgICBmb3IgKGF1dG8gY29sdW1uSW5k
ZXggPSBjZWxsLnN0YXJ0Q29sdW1uKCk7IGNvbHVtbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsg
Kytjb2x1bW5JbmRleCkKLSAgICAgICAgICAgICAgICBjb2x1bW5NaW5pbXVtV2lkdGhzW2NvbHVt
bkluZGV4XSArPSBzcGFjZVRvRGlzdHJpYnV0ZSAvIGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0
aCAqIGNvbHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdOworICAgICAgICAgICAgICAgIGNv
bHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdLnZhbHVlICs9IHNwYWNlVG9EaXN0cmlidXRl
IC8gY3VycmVudFNwYW5uaW5nTWluaW11bVdpZHRoICogY29sdW1uTWluaW11bVdpZHRoc1tjb2x1
bW5JbmRleF0udmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgLy8gMy4gRGlzdHJpYnV0ZSB0aGUg
ZXh0cmEgc3BhY2UgdXNpbmcgdGhlIGZpbmFsIG1pbmltdW0gd2lkdGhzLgotICAgICAgICBmbG9h
dCBhZGp1c3RhYmxlZEhvcml6b250YWxTcGFjZSA9IHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5p
bXVtIC0gZ3JpZC50b3RhbEhvcml6b250YWxTcGFjaW5nKCk7Ci0gICAgICAgIGF1dG8gbnVtYmVy
T2ZDb2x1bW5zID0gY29sdW1uTGlzdC5zaXplKCk7CiAgICAgICAgIC8vIEZpeGVkIHdpZHRoIGNv
bHVtbnMgZG9uJ3QgcGFydGljaXBhdGUgaW4gYXZhaWxhYmxlIHNwYWNlIGRpc3RyaWJ1dGlvbi4K
LSAgICAgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBjb2x1bW5MaXN0KSB7Ci0gICAgICAgICAgICBp
ZiAoIWNvbHVtbi5pc0ZpeGVkV2lkdGgoKSkKKyAgICAgICAgLy8gVW5sZXNzIHRoZXJlIGFyZSBu
byBmbGV4aW5nIGNvbHVtbiBhdCBhbGwsIHRoZW4gdGhleSBzdGFydCBmbGV4aW5nIGFzIGlmIHRo
ZXkgd2VyZSBub3QgZml4ZWQgYXQgYWxsLgorICAgICAgICBmbG9hdCBhZGp1c3RhYmxlZEhvcml6
b250YWxTcGFjZSA9IDA7CisgICAgICAgIGZvciAoYXV0byYgY29sdW1uTWluaW11bVdpZHRoIDog
Y29sdW1uTWluaW11bVdpZHRocykgeworICAgICAgICAgICAgaWYgKCFjb2x1bW5NaW5pbXVtV2lk
dGguc2hvdWxkRmxleCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGF1
dG8gY29sdW1uRml4ZWRXaWR0aCA9ICpjb2x1bW4uYm94KCktPmNvbHVtbldpZHRoKCk7Ci0gICAg
ICAgICAgICBjb2x1bW4uc2V0TG9naWNhbFdpZHRoKGNvbHVtbkZpeGVkV2lkdGgpOwotCi0gICAg
ICAgICAgICAtLW51bWJlck9mQ29sdW1uczsKLSAgICAgICAgICAgIGFkanVzdGFibGVkSG9yaXpv
bnRhbFNwYWNlIC09IGNvbHVtbkZpeGVkV2lkdGg7CisgICAgICAgICAgICBhZGp1c3RhYmxlZEhv
cml6b250YWxTcGFjZSArPSBjb2x1bW5NaW5pbXVtV2lkdGgudmFsdWU7CiAgICAgICAgIH0KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNvbHVtbnMgfHwgIWFkanVzdGFibGVkSG9yaXpvbnRhbFNwYWNl
KQorICAgICAgICBpZiAoIWFkanVzdGFibGVkSG9yaXpvbnRhbFNwYWNlKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBBU1NFUlQoYWRqdXN0YWJsZWRIb3Jpem9udGFsU3BhY2UgPiAwKTsK
KyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBvdmVyY29uc3RyYWluZWQgY29sdW1ucyB3aGVu
IGZpeGVkIHdpZHRoIGNvbnRlbnQgaXMgd2lkZXIgdGhhbiB0aGUgdGFibGUuCiAgICAgICAgIGZv
ciAoc2l6ZV90IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5zLnNpemUoKTsg
Kytjb2x1bW5JbmRleCkgewogICAgICAgICAgICAgYXV0byYgY29sdW1uID0gY29sdW1ucy5saXN0
KClbY29sdW1uSW5kZXhdOwotICAgICAgICAgICAgaWYgKGNvbHVtbi5pc0ZpeGVkV2lkdGgoKSkK
KyAgICAgICAgICAgIGF1dG8gbWluaW11bVdpZHRoID0gY29sdW1uTWluaW11bVdpZHRoc1tjb2x1
bW5JbmRleF0udmFsdWU7CisgICAgICAgICAgICBpZiAoIWNvbHVtbk1pbmltdW1XaWR0aHNbY29s
dW1uSW5kZXhdLnNob3VsZEZsZXgpIHsKKyAgICAgICAgICAgICAgICBjb2x1bW4uc2V0TG9naWNh
bFdpZHRoKExheW91dFVuaXQgeyBtaW5pbXVtV2lkdGggfSk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBhdXRvIGNvbHVtbkV4dHJhU3BhY2UgPSBob3Jpem9udGFsU3Bh
Y2VUb0Rpc3RyaWJ1dGUgLyBhZGp1c3RhYmxlZEhvcml6b250YWxTcGFjZSAqIGNvbHVtbk1pbmlt
dW1XaWR0aHNbY29sdW1uSW5kZXhdOwotICAgICAgICAgICAgY29sdW1uLnNldExvZ2ljYWxXaWR0
aChMYXlvdXRVbml0IHsgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0gKyBjb2x1bW5F
eHRyYVNwYWNlIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBjb2x1bW5FeHRy
YVNwYWNlID0gaG9yaXpvbnRhbFNwYWNlVG9EaXN0cmlidXRlIC8gYWRqdXN0YWJsZWRIb3Jpem9u
dGFsU3BhY2UgKiBtaW5pbXVtV2lkdGg7CisgICAgICAgICAgICBjb2x1bW4uc2V0TG9naWNhbFdp
ZHRoKExheW91dFVuaXQgeyBtaW5pbXVtV2lkdGggKyBjb2x1bW5FeHRyYVNwYWNlIH0pOwogICAg
ICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwCmluZGV4IDNhYjgyZDEyNTczZmJjNTM1ODJhZWViN2I2MDUxNTg0NTFjM2I1NWQuLjIx
OGUzMjkxZWU1M2E3NmQ0ODIwZGU0MjZhY2Q5MzUwNTY5YTFlNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTcwLDcgKzcwLDkgQEAgRm9ybWF0
dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgVGFibGVGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmkKICAgICBhdXRvIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cyA9IFsmXSB7CiAgICAgICAgIC8vIEV2ZW4gZml4ZWQgd2lkdGggY2VsbHMgZXhwYW5kIHRv
IHRoZWlyIG1pbmltdW0gY29udGVudCB3aWR0aAogICAgICAgICAvLyA8dGQgc3R5bGU9IndpZHRo
OiAxMHB4Ij50ZXN0X2NvbnRlbnQ8L3RkPiB3aWxsIHNpemUgdG8gbWF4KG1pbmltdW0gY29udGVu
dCB3aWR0aCwgY29tcHV0ZWQgd2lkdGgpLgotICAgICAgICBhdXRvIGludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjZWxsQm94
LCBsYXlvdXRTdGF0ZSgpKS0+Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7Cisg
ICAgICAgIGF1dG8gaW50cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IEZvcm1hdHRpbmdDb250ZXh0
OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfTsKKyAgICAgICAgaWYgKGNlbGxCb3guaGFz
Q2hpbGQoKSkKKyAgICAgICAgICAgIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgPSBMYXlvdXRD
b250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjZWxsQm94LCBsYXlvdXRTdGF0ZSgpKS0+
Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CiAgICAgICAgIGlmIChhdXRvIHdp
ZHRoID0gZml4ZWRWYWx1ZShjZWxsQm94LnN0eWxlKCkubG9naWNhbFdpZHRoKCkpKQogICAgICAg
ICAgICAgcmV0dXJuIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
IHsgc3RkOjptYXgoaW50cmluc2ljV2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCAqd2lkdGgpLCBz
dGQ6Om1heChpbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzLm1heGltdW0sICp3aWR0aCkgfTsKICAg
ICAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoQ29uc3RyYWludHM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKaW5kZXggMjQ1MDI2
YWM4ZjczYzhiNjNlZDhhOGFjZjRiY2E5NmQyZWNkNWUyNS4uODM0YTAyZTc3M2VmNWI0MGFhOGUz
NDRhODJhNjBlY2MzYjQ2ZjhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3Rh
YmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmNwcApAQCAtODMsNiArODMsMTUgQEAgdm9pZCBUYWJs
ZUdyaWQ6OkNvbHVtbnM6OmFkZEFub255bW91c0NvbHVtbigpCiAgICAgbV9jb2x1bW5MaXN0LmFw
cGVuZCh7IG51bGxwdHIgfSk7CiB9CiAKK2Jvb2wgVGFibGVHcmlkOjpDb2x1bW5zOjpoYXNGaXhl
ZENvbHVtbnNPbmx5KCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIGNvbHVtbiA6IG1fY29sdW1u
TGlzdCkgeworICAgICAgICBpZiAoIWNvbHVtbi5pc0ZpeGVkV2lkdGgoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgVGFibGVH
cmlkOjpSb3dzOjphZGRSb3coY29uc3QgQ29udGFpbmVyQm94JiByb3dCb3gpCiB7CiAgICAgbV9y
b3dMaXN0LmFwcGVuZCh7IHJvd0JveCB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5oCmluZGV4IDNlNzM3MjA0NTQyYzQzODVjMDk2MDAz
YTc4OTRlNjYyYTMxMmMyNGMuLmM4M2ZiYTQzZmRiZDQ1NTc0YzAyMWRhMDg0MTExYmRlMGU0ZDFl
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFi
bGVHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUdyaWQuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBhZGRBbm9u
eW1vdXNDb2x1bW4oKTsKIAogICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fY29sdW1uTGlzdC5sYXN0KCkubG9naWNhbFJpZ2h0KCkgLSBtX2NvbHVtbkxp
c3QuZmlyc3QoKS5sb2dpY2FsTGVmdCgpOyB9CisgICAgICAgIGJvb2wgaGFzRml4ZWRDb2x1bW5z
T25seSgpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ29sdW1uTGlzdCBtX2NvbHVt
bkxpc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396235</attachid>
            <date>2020-04-12 11:09:59 -0700</date>
            <delta_ts>2020-04-12 11:32:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210403-20200412110958.patch</filename>
            <type>text/plain</type>
            <size>18794</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5OTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJhOWQwN2QzN2NkM2Ex
ZmZiMDNlZWM4MThiZjE5YmViOGUwNDFjZS4uZTVkY2FkNTkzYzYzYTJhODQ1ZjBmYTNiNzk5YWJj
ZjQzZjUxMTFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTEyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bVEZDXSBBZGQgc3Vw
cG9ydCBmb3IgY29sdW1uIHNwYW5uZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA0MDMKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2
aXN0by4KKworICAgICAgICBUYWJsZSB3aWR0aCBjb25zdHJhaW50IGNvbXB1dGF0aW9uIHdpdGgg
c3Bhbm5lciBzdXBwb3J0IGlzIGFzIGZvbGxvd3M6CisKKyAgICAgICAgMS4gQ29sbGVjdCBlYWNo
IGNlbGxzJyB3aWR0aCBjb25zdHJhaW50cy4KKyAgICAgICAgMi4gQ29sbGVjdCBmaXhlZCBjb2x1
bW4gd2lkdGhzIHNldCBieSA8Y29sZ3JvdXA+J3MgYW5kIDxjb2w+cy4KKyAgICAgICAgMy4gRmlu
ZCB0aGUgbWluL21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW5zIHVzaW5nIHRoZSBjZWxsIGNvbnN0
cmFpbnRzIGFuZCB0aGUgPGNvbD4gZml4ZWQgd2lkdGhzIGJ1dCBpZ25vcmUgY29sdW1uIHNwYW5z
LgorICAgICAgICA0LiBEaXN0cmlidXRlIGNvbHVtbiBzcGFubmluZyBjZWxscyBtaW4vbWF4IHdp
ZHRocy4KKyAgICAgICAgNS4gQWRkIHRoZW0gYWxsIHVwIGFuZCByZXR1cm4gdGhlIGNvbXB1dGVk
IG1pbi9tYXggd2lkdGhzLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNX
aWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KToKKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3Jt
YXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFByZWZlcnJlZFdpZHRoRm9yQ29s
dW1ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVBbmREaXN0cmlidXRlRXh0cmFIb3Jpem9udGFsU3BhY2UpOgorICAgICAgICAqIGxh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0
cnk6OmludHJpbnNpY1dpZHRoQ29uc3RyYWludHNGb3JDZWxsKToKKyAgICAgICAgKiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRhYmxlR3JpZDo6Q29sdW1uczo6aGFzRml4ZWRDb2x1bW5zT25seSBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdyaWQuaDoKKwogMjAyMC0wNC0xMiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gQ29sdW1u
LCBSb3cgYW5kIENlbGwgYm94ZXMgYXJlIGFsd2F5cyBDb250YWluZXJCb3hlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCBlZDQxOWI3ODlmMDAyNDdmMTlj
ZWY2YjAwZTQ5MGZlMzlhNGE5NGE2Li4xYzUyOTQwM2I4Y2QwYjlmYzYxNTVjNjEzOWM4MTNlYjg5
NTAyNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAt
NzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgc3RydWN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWlu
dHMgewogICAgICAgICB2b2lkIGV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxWYWx1ZSk7CiAg
ICAgICAgIEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIG9wZXJhdG9yKz0oY29uc3QgSW50cmlu
c2ljV2lkdGhDb25zdHJhaW50cyYpOworICAgICAgICBJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
JiBvcGVyYXRvci09KGNvbnN0IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmKTsKICAgICAgICAg
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYgb3BlcmF0b3ItPShMYXlvdXRVbml0KTsKIAogICAg
ICAgICBMYXlvdXRVbml0IG1pbmltdW07CkBAIC0yMjksNiArMjMwLDEzIEBAIGlubGluZSBGb3Jt
YXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyYgRm9ybWF0dGluZ0NvbnRl
eHQ6OkludHJpbnNpCiAgICAgcmV0dXJuICp0aGlzOwogfQogCitpbmxpbmUgRm9ybWF0dGluZ0Nv
bnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KGNvbnN0IEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMmIG90aGVyKQoreworICAgIG1pbmltdW0gLT0gb3RoZXIubWluaW11bTsKKyAgICBt
YXhpbXVtIC09IG90aGVyLm1heGltdW07CisgICAgcmV0dXJuICp0aGlzOworfQorCiBpbmxpbmUg
Rm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMmIEZvcm1hdHRpbmdD
b250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzOjpvcGVyYXRvci09KExheW91dFVuaXQg
dmFsdWUpCiB7CiAgICAgbWluaW11bSAtPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IGM3NDZmNTlmODdkZDQ3ZTI0NDhmNDI4NWU5ZTFlNTBhODVhY2I0ZDQuLjA3
Nzk4ZjdiNzFhY2ZmMTNlYWQ2Nzc3ZDE2ZDg0ZTQxYzExYzUyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcApAQCAtMjQxLDkgKzI0MSwxMiBAQCBGb3JtYXR0aW5nQ29udGV4dDo6
SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
ZFByZQogICAgIGF1dG8mIGdyaWQgPSBmb3JtYXR0aW5nU3RhdGUudGFibGVHcmlkKCk7CiAgICAg
QVNTRVJUKCFncmlkLndpZHRoQ29uc3RyYWludHMoKSk7CiAKLSAgICAvLyAxLiBDYWxjdWxhdGUg
dGhlIG1pbmltdW0gY29udGVudCB3aWR0aCAoTUNXKSBvZiBlYWNoIGNlbGw6IHRoZSBmb3JtYXR0
ZWQgY29udGVudCBtYXkgc3BhbiBhbnkgbnVtYmVyIG9mIGxpbmVzIGJ1dCBtYXkgbm90IG92ZXJm
bG93IHRoZSBjZWxsIGJveC4KLSAgICAvLyAgICBJZiB0aGUgc3BlY2lmaWVkICd3aWR0aCcgKFcp
IG9mIHRoZSBjZWxsIGlzIGdyZWF0ZXIgdGhhbiBNQ1csIFcgaXMgdGhlIG1pbmltdW0gY2VsbCB3
aWR0aC4gQSB2YWx1ZSBvZiAnYXV0bycgbWVhbnMgdGhhdCBNQ1cgaXMgdGhlIG1pbmltdW0gY2Vs
bCB3aWR0aC4KLSAgICAvLyAgICBBbHNvLCBjYWxjdWxhdGUgdGhlICJtYXhpbXVtIiBjZWxsIHdp
ZHRoIG9mIGVhY2ggY2VsbDogZm9ybWF0dGluZyB0aGUgY29udGVudCB3aXRob3V0IGJyZWFraW5n
IGxpbmVzIG90aGVyIHRoYW4gd2hlcmUgZXhwbGljaXQgbGluZSBicmVha3Mgb2NjdXIuCisgICAg
Ly8gQ29sdW1uIHByZWZlcnJlZCB3aWR0aCBjb21wdXRhdGlvbiBhcyBmb2xsb3dzOgorICAgIC8v
IDEuIENvbGxlY3QgZWFjaCBjZWxscycgd2lkdGggY29uc3RyYWludHMKKyAgICAvLyAyLiBDb2xs
ZWN0IGZpeGVkIGNvbHVtbiB3aWR0aHMgc2V0IGJ5IDxjb2xncm91cD4ncyBhbmQgPGNvbD5zCisg
ICAgLy8gMy4gRmluZCB0aGUgbWluL21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW5zIHVzaW5nIHRo
ZSBjZWxsIGNvbnN0cmFpbnRzIGFuZCB0aGUgPGNvbD4gZml4ZWQgd2lkdGhzIGJ1dCBpZ25vcmUg
Y29sdW1uIHNwYW5zLgorICAgIC8vIDQuIERpc3RyaWJ1dGUgY29sdW1uIHNwYW5uaW5nIGNlbGxz
IG1pbi9tYXggd2lkdGhzLgorICAgIC8vIDUuIEFkZCB0aGVtIGFsbCB1cCBhbmQgcmV0dXJuIHRo
ZSBjb21wdXRlZCBtaW4vbWF4IHdpZHRocy4KICAgICBmb3IgKGF1dG8mIGNlbGwgOiBncmlkLmNl
bGxzKCkpIHsKICAgICAgICAgYXV0byYgY2VsbEJveCA9IGNlbGwtPmJveCgpOwogICAgICAgICBB
U1NFUlQoY2VsbEJveC5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSk7CkBAIC0y
NTcsMTMgKzI2MCwxNCBAQCBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJh
aW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFByZQogICAgICAgICBncmlkLnNs
b3QoY2VsbC0+cG9zaXRpb24oKSktPnNldFdpZHRoQ29uc3RyYWludHMoKmludHJpbnNpY1dpZHRo
KTsKICAgICB9CiAKKyAgICAvLyAyLiBDb2xsZWN0IHRoZSBmaXhlZCB3aWR0aCA8Y29sPnMuCiAg
ICAgYXV0byYgY29sdW1uTGlzdCA9IGdyaWQuY29sdW1ucygpLmxpc3QoKTsKICAgICBWZWN0b3I8
T3B0aW9uYWw8TGF5b3V0VW5pdD4+IGZpeGVkV2lkdGhDb2x1bW5zOwotICAgIGZvciAoc2l6ZV90
IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5MaXN0LnNpemUoKTsgKytjb2x1
bW5JbmRleCkgeworICAgIGZvciAoYXV0byYgY29sdW1uIDogY29sdW1uTGlzdCkgewogICAgICAg
ICBhdXRvIGZpeGVkV2lkdGggPSBbJl0gKCkgLT4gT3B0aW9uYWw8TGF5b3V0VW5pdD4gewotICAg
ICAgICAgICAgYXV0byogY29sdW1uQm94ID0gY29sdW1uTGlzdFtjb2x1bW5JbmRleF0uYm94KCk7
CisgICAgICAgICAgICBhdXRvKiBjb2x1bW5Cb3ggPSBjb2x1bW4uYm94KCk7CiAgICAgICAgICAg
ICBpZiAoIWNvbHVtbkJveCkgewotICAgICAgICAgICAgICAgIC8vIEFub3lubW91cyBjb2x1bW5z
IGRvbid0IGhhdmUgYXNzb2NpYXRlZCBsYXlvdXQgYm94ZXMuCisgICAgICAgICAgICAgICAgLy8g
QW5veW5tb3VzIGNvbHVtbnMgZG9uJ3QgaGF2ZSBhc3NvY2lhdGVkIGxheW91dCBib3hlcyBhbmQg
Y2FuJ3QgaGF2ZSBmaXhlZCBjb2wgc2l6ZS4KICAgICAgICAgICAgICAgICByZXR1cm4geyB9Owog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGF1dG8gd2lkdGggPSBjb2x1bW5Cb3gtPmNv
bHVtbldpZHRoKCkpCkBAIC0yNzQsMzMgKzI3OCw0MyBAQCBGb3JtYXR0aW5nQ29udGV4dDo6SW50
cmluc2ljV2lkdGhDb25zdHJhaW50cyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZFBy
ZQogICAgIH0KIAogICAgIFZlY3RvcjxGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhD
b25zdHJhaW50cz4gY29sdW1uSW50cmluc2ljV2lkdGhzOwotICAgIC8vIENvbGxlY3QgaGUgbWlu
L21heCB3aWR0aCBmb3IgZWFjaCBjb2x1bW4gYW5kIGZpbmFsaXplIHRoZSBwcmVmZXJyZWQgd2lk
dGggZm9yIHRoZSB0YWJsZS4KKyAgICAvLyAzLiBDb2xsZWN0IGhlIG1pbi9tYXggd2lkdGggZm9y
IGVhY2ggY29sdW1uIGJ1dCBpZ25vcmUgY29sdW1uIHNwYW5zIGZvciBub3cuCisgICAgVmVjdG9y
PFNsb3RQb3NpdGlvbj4gc3Bhbm5pbmdDZWxsUG9zaXRpb25MaXN0OwogICAgIGZvciAoc2l6ZV90
IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5MaXN0LnNpemUoKTsgKytjb2x1
bW5JbmRleCkgewogICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHMuYXBwZW5kKEZvcm1hdHRp
bmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIHsgfSk7CiAgICAgICAgIGZvciAo
c2l6ZV90IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBncmlkLnJvd3MoKS5zaXplKCk7ICsrcm93
SW5kZXgpIHsKICAgICAgICAgICAgIGF1dG8mIHNsb3QgPSAqZ3JpZC5zbG90KHsgY29sdW1uSW5k
ZXgsIHJvd0luZGV4IH0pOwogICAgICAgICAgICAgaWYgKHNsb3QuaGFzQ29sdW1uU3BhbigpKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byYgY2VsbCA9IHNsb3QuY2VsbCgpOwotICAgICAgICAgICAg
ICAgIGF1dG8gd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZSA9IHNsb3Qud2lkdGhDb25zdHJh
aW50cygpOwotICAgICAgICAgICAgICAgIGF1dG8gbnVtYmVyT2ZOb25GaXhlZFNwYW5uZWRDb2x1
bW5zID0gY2VsbC5jb2x1bW5TcGFuKCk7Ci0gICAgICAgICAgICAgICAgZm9yIChzaXplX3QgY29s
dW1uU3BhbkluZGV4ID0gY2VsbC5zdGFydENvbHVtbigpOyBjb2x1bW5TcGFuSW5kZXggPCBjZWxs
LmVuZENvbHVtbigpOyArK2NvbHVtblNwYW5JbmRleCkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBmaXhlZFdpZHRoID0gZml4ZWRXaWR0aENvbHVtbnNbY29sdW1uU3BhbkluZGV4XSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZSAt
PSAqZml4ZWRXaWR0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgIC0tbnVtYmVyT2ZOb25GaXhl
ZFNwYW5uZWRDb2x1bW5zOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGNvbHVtblNwYW5JbmRleCA9IGNlbGwuc3Rh
cnRDb2x1bW4oKTsgY29sdW1uU3BhbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsgKytjb2x1bW5T
cGFuSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgY29sdW1uSW50cmluc2ljV2lkdGhzW2Nv
bHVtbkluZGV4XS5taW5pbXVtID0gc3RkOjptYXgod2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0
ZS5taW5pbXVtIC8gbnVtYmVyT2ZOb25GaXhlZFNwYW5uZWRDb2x1bW5zLCBjb2x1bW5JbnRyaW5z
aWNXaWR0aHNbY29sdW1uSW5kZXhdLm1pbmltdW0pOwotICAgICAgICAgICAgICAgICAgICBjb2x1
bW5JbnRyaW5zaWNXaWR0aHNbY29sdW1uSW5kZXhdLm1heGltdW0gPSBzdGQ6Om1heCh3aWR0aENv
bnN0cmFpbnRzVG9EaXN0cmlidXRlLm1heGltdW0gLyBudW1iZXJPZk5vbkZpeGVkU3Bhbm5lZENv
bHVtbnMsIGNvbHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSk7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBhdXRv
IGNvbHVtbkZpeGVkV2lkdGggPSBmaXhlZFdpZHRoQ29sdW1uc1tjb2x1bW5JbmRleF07Ci0gICAg
ICAgICAgICAgICAgYXV0byB3aWR0aENvbnN0cmFpbnRzID0gIWNvbHVtbkZpeGVkV2lkdGggPyBz
bG90LndpZHRoQ29uc3RyYWludHMoKSA6IEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0
aENvbnN0cmFpbnRzIHsgKmNvbHVtbkZpeGVkV2lkdGgsICpjb2x1bW5GaXhlZFdpZHRoIH07Ci0g
ICAgICAgICAgICAgICAgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5taW5pbXVt
ID0gc3RkOjptYXgod2lkdGhDb25zdHJhaW50cy5taW5pbXVtLCBjb2x1bW5JbnRyaW5zaWNXaWR0
aHNbY29sdW1uSW5kZXhdLm1pbmltdW0pOwotICAgICAgICAgICAgICAgIGNvbHVtbkludHJpbnNp
Y1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSA9IHN0ZDo6bWF4KHdpZHRoQ29uc3RyYWludHMu
bWF4aW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5tYXhpbXVtKTsKKyAg
ICAgICAgICAgICAgICBzcGFubmluZ0NlbGxQb3NpdGlvbkxpc3QuYXBwZW5kKHsgY29sdW1uSW5k
ZXgsIHJvd0luZGV4IH0pOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgKHNsb3QuaXNDb2x1bW5TcGFubmVkKCkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvIGNvbHVtbkZpeGVkV2lkdGggPSBmaXhlZFdp
ZHRoQ29sdW1uc1tjb2x1bW5JbmRleF07CisgICAgICAgICAgICBhdXRvIHdpZHRoQ29uc3RyYWlu
dHMgPSAhY29sdW1uRml4ZWRXaWR0aCA/IHNsb3Qud2lkdGhDb25zdHJhaW50cygpIDogRm9ybWF0
dGluZ0NvbnRleHQ6OkludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyAqY29sdW1uRml4ZWRXaWR0
aCwgKmNvbHVtbkZpeGVkV2lkdGggfTsKKyAgICAgICAgICAgIGNvbHVtbkludHJpbnNpY1dpZHRo
c1tjb2x1bW5JbmRleF0ubWluaW11bSA9IHN0ZDo6bWF4KHdpZHRoQ29uc3RyYWludHMubWluaW11
bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbkluZGV4XS5taW5pbXVtKTsKKyAgICAgICAg
ICAgIGNvbHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5JbmRleF0ubWF4aW11bSA9IHN0ZDo6bWF4
KHdpZHRoQ29uc3RyYWludHMubWF4aW11bSwgY29sdW1uSW50cmluc2ljV2lkdGhzW2NvbHVtbklu
ZGV4XS5tYXhpbXVtKTsKICAgICAgICAgfQogICAgIH0KKworICAgIC8vIDQuIERpc3RyaWJ1dGUg
dGhlIHNwYW5uaW5nIG1pbi9tYXggd2lkdGhzLgorICAgIGZvciAoYXV0byBzcGFubmluZ0NlbGxQ
b3NpdGlvbiA6IHNwYW5uaW5nQ2VsbFBvc2l0aW9uTGlzdCkgeworICAgICAgICBhdXRvJiBzbG90
ID0gKmdyaWQuc2xvdChzcGFubmluZ0NlbGxQb3NpdGlvbik7CisgICAgICAgIGF1dG8mIGNlbGwg
PSBzbG90LmNlbGwoKTsKKyAgICAgICAgQVNTRVJUKHNsb3QuaGFzQ29sdW1uU3BhbigpKTsKKyAg
ICAgICAgYXV0byB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlID0gc2xvdC53aWR0aENvbnN0
cmFpbnRzKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGNvbHVtblNwYW5JbmRleCA9IGNlbGwuc3Rh
cnRDb2x1bW4oKTsgY29sdW1uU3BhbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsgKytjb2x1bW5T
cGFuSW5kZXgpCisgICAgICAgICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlIC09IGNv
bHVtbkludHJpbnNpY1dpZHRoc1tjb2x1bW5TcGFuSW5kZXhdOworICAgICAgICAvLyBGSVhNRTog
Q2hlY2sgaWYgZml4ZWQgd2lkdGggY29sdW1ucyBzaG91bGQgYmUgc2tpcHBlZCBoZXJlLgorICAg
ICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlLm1pbmltdW0gPSBzdGQ6Om1heChMYXlv
dXRVbml0IHsgfSwgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0ZS5taW5pbXVtIC8gY2VsbC5j
b2x1bW5TcGFuKCkpOworICAgICAgICB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlLm1heGlt
dW0gPSBzdGQ6Om1heChMYXlvdXRVbml0IHsgfSwgd2lkdGhDb25zdHJhaW50c1RvRGlzdHJpYnV0
ZS5tYXhpbXVtIC8gY2VsbC5jb2x1bW5TcGFuKCkpOworICAgICAgICBpZiAod2lkdGhDb25zdHJh
aW50c1RvRGlzdHJpYnV0ZS5taW5pbXVtIHx8IHdpZHRoQ29uc3RyYWludHNUb0Rpc3RyaWJ1dGUu
bWF4aW11bSkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uU3BhbkluZGV4ID0gY2Vs
bC5zdGFydENvbHVtbigpOyBjb2x1bW5TcGFuSW5kZXggPCBjZWxsLmVuZENvbHVtbigpOyArK2Nv
bHVtblNwYW5JbmRleCkKKyAgICAgICAgICAgICAgICBjb2x1bW5JbnRyaW5zaWNXaWR0aHNbY29s
dW1uU3BhbkluZGV4XSArPSB3aWR0aENvbnN0cmFpbnRzVG9EaXN0cmlidXRlOworICAgICAgICB9
CisgICAgfQorCisgICAgLy8gNS4gVGhlIGZpbmFsIHRhYmxlIG1pbi9tYXggd2lkdGhzIGlzIGp1
c3QgdGhlIGFjY3VtdWxhdGVkIGNvbHVtbiBjb25zdHJhaW50cy4KICAgICBhdXRvIHRhYmxlV2lk
dGhDb25zdHJhaW50cyA9IEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMgeyB9OwogICAgIGZvciAo
YXV0byYgY29sdW1uSW50cmluc2ljV2lkdGggOiBjb2x1bW5JbnRyaW5zaWNXaWR0aHMpCiAgICAg
ICAgIHRhYmxlV2lkdGhDb25zdHJhaW50cyArPSBjb2x1bW5JbnRyaW5zaWNXaWR0aDsKQEAgLTMx
NCwxOSArMzI4LDE2IEBAIHZvaWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUFuZERp
c3RyaWJ1dGVFeHRyYUhvcml6b250YWxTcGFjZShMYXlvdXRVbml0CiAgICAgYXV0byYgcm93cyA9
IGdyaWQucm93cygpOwogICAgIGF1dG8gdGFibGVXaWR0aENvbnN0cmFpbnRzID0gKmdyaWQud2lk
dGhDb25zdHJhaW50cygpOwogCi0gICAgLy8gQ29sdW1uIGFuZCBjYXB0aW9uIHdpZHRocyBpbmZs
dWVuY2UgdGhlIGZpbmFsIHRhYmxlIHdpZHRoIGFzIGZvbGxvd3M6Ci0gICAgLy8gSWYgdGhlICd0
YWJsZScgb3IgJ2lubGluZS10YWJsZScgZWxlbWVudCdzICd3aWR0aCcgcHJvcGVydHkgaGFzIGEg
Y29tcHV0ZWQgdmFsdWUgKFcpIG90aGVyIHRoYW4gJ2F1dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0
aGUgZ3JlYXRlciBvZgotICAgIC8vIFcsIENBUE1JTiwgYW5kIHRoZSBtaW5pbXVtIHdpZHRoIHJl
cXVpcmVkIGJ5IGFsbCB0aGUgY29sdW1ucyBwbHVzIGNlbGwgc3BhY2luZyBvciBib3JkZXJzIChN
SU4pLgotICAgIC8vIElmIHRoZSB1c2VkIHdpZHRoIGlzIGdyZWF0ZXIgdGhhbiBNSU4sIHRoZSBl
eHRyYSB3aWR0aCBzaG91bGQgYmUgZGlzdHJpYnV0ZWQgb3ZlciB0aGUgY29sdW1ucy4KLSAgICAv
LyBJZiB0aGUgJ3RhYmxlJyBvciAnaW5saW5lLXRhYmxlJyBlbGVtZW50IGhhcyAnd2lkdGg6IGF1
dG8nLCB0aGUgdXNlZCB3aWR0aCBpcyB0aGUgZ3JlYXRlciBvZiB0aGUgdGFibGUncyBjb250YWlu
aW5nIGJsb2NrIHdpZHRoLAotICAgIC8vIENBUE1JTiwgYW5kIE1JTi4gSG93ZXZlciwgaWYgZWl0
aGVyIENBUE1JTiBvciB0aGUgbWF4aW11bSB3aWR0aCByZXF1aXJlZCBieSB0aGUgY29sdW1ucyBw
bHVzIGNlbGwgc3BhY2luZyBvciBib3JkZXJzIChNQVgpIGlzCi0gICAgLy8gbGVzcyB0aGFuIHRo
YXQgb2YgdGhlIGNvbnRhaW5pbmcgYmxvY2ssIHVzZSBtYXgoTUFYLCBDQVBNSU4pLgogICAgIGF1
dG8gZGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlID0gWyZdIChhdXRvIGhvcml6b250YWxT
cGFjZVRvRGlzdHJpYnV0ZSkgewogICAgICAgICBhdXRvJiBjb2x1bW5MaXN0ID0gZ3JpZC5jb2x1
bW5zKCkubGlzdCgpOwogICAgICAgICBBU1NFUlQoIWNvbHVtbkxpc3QuaXNFbXB0eSgpKTsKIAot
ICAgICAgICAvLyAxLiBDb2xsZWN0IG1pbmltdW0gd2lkdGhzIGFjcm9zcyBjb2x1bW5zIGJ1dCBp
Z25vcmUgc3Bhbm5pbmcgY2VsbHMgZmlyc3QuCi0gICAgICAgIFZlY3RvcjxmbG9hdD4gY29sdW1u
TWluaW11bVdpZHRoczsKKyAgICAgICAgLy8gMS4gQ29sbGVjdCBtaW5pbXVtIHdpZHRocyBkcml2
ZW4gYnkgPHRkPiBhY3Jvc3MgY29sdW1ucyBidXQgaWdub3JlIHNwYW5uaW5nIGNlbGxzIGZpcnN0
LgorICAgICAgICBzdHJ1Y3QgQ29sdW1uTWluaW11bVdpZHRoIHsKKyAgICAgICAgICAgIGZsb2F0
IHZhbHVlIHsgMCB9OworICAgICAgICAgICAgYm9vbCBzaG91bGRGbGV4IHsgdHJ1ZSB9OworICAg
ICAgICB9OworICAgICAgICBWZWN0b3I8Q29sdW1uTWluaW11bVdpZHRoPiBjb2x1bW5NaW5pbXVt
V2lkdGhzOwogICAgICAgICBWZWN0b3I8U2xvdFBvc2l0aW9uPiBzcGFubmluZ0NlbGxQb3NpdGlv
bkxpc3Q7CiAgICAgICAgIGZvciAoc2l6ZV90IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dz
LnNpemUoKTsgKytyb3dJbmRleCkgewogICAgICAgICAgICAgZm9yIChzaXplX3QgY29sdW1uSW5k
ZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbnMuc2l6ZSgpOyArK2NvbHVtbkluZGV4KSB7CkBA
IC0zMzgsMTIgKzM0OSwyNSBAQCB2b2lkIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVB
bmREaXN0cmlidXRlRXh0cmFIb3Jpem9udGFsU3BhY2UoTGF5b3V0VW5pdAogICAgICAgICAgICAg
ICAgIGlmIChzbG90LmlzQ29sdW1uU3Bhbm5lZCgpKQogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoIXJvd0luZGV4KQotICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5NaW5pbXVtV2lkdGhzLmFwcGVuZChzbG90LndpZHRoQ29uc3RyYWludHMoKS5taW5p
bXVtKTsKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTWluaW11bVdpZHRocy5hcHBlbmQoeyBz
bG90LndpZHRoQ29uc3RyYWludHMoKS5taW5pbXVtLCAhY29sdW1ucy5saXN0KClbY29sdW1uSW5k
ZXhdLmlzRml4ZWRXaWR0aCgpIH0pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0gPSBzdGQ6Om1heDxmbG9h
dD4oY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0sIHNsb3Qud2lkdGhDb25zdHJhaW50
cygpLm1pbmltdW0pOworICAgICAgICAgICAgICAgICAgICBjb2x1bW5NaW5pbXVtV2lkdGhzW2Nv
bHVtbkluZGV4XS52YWx1ZSA9IHN0ZDo6bWF4PGZsb2F0Pihjb2x1bW5NaW5pbXVtV2lkdGhzW2Nv
bHVtbkluZGV4XS52YWx1ZSwgc2xvdC53aWR0aENvbnN0cmFpbnRzKCkubWluaW11bSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgLy8gMi4gRGlzdHJpYnV0ZSB0aGUgc3Bhbm5p
bmcgY2VsbHMnIG1pbWltdW0gd2lkdGhzIGFjcm9zcyB0aGUgY29sdW1ucyB1c2luZyB0aGUgbm9u
LXNwYW5uaW5nIG1pbml1bSB3aWR0aHMuCisgICAgICAgIC8vIDIuIEFkanVzdCB0aGUgbWluaW11
bSB3aWR0aCB3aXRoIGZpeGVkIGNvbHVtbiB3aWR0aHMgKDxjb2w+IHZzLiA8dGQ+KSBhbmQgYWxz
byBtYW5hZ2UgYWxsLWZpeGVkLXdpZHRoLWNvbHVtbiBjb250ZW50LgorICAgICAgICBhdXRvIGhh
c0ZpeGVkQ29sdW1uc09ubHkgPSBjb2x1bW5zLmhhc0ZpeGVkQ29sdW1uc09ubHkoKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbkxpc3Qu
c2l6ZSgpOyArK2NvbHVtbkluZGV4KSB7CisgICAgICAgICAgICBhdXRvJiBjb2x1bW4gPSBjb2x1
bW5MaXN0W2NvbHVtbkluZGV4XTsKKyAgICAgICAgICAgIGlmICghY29sdW1uLmlzRml4ZWRXaWR0
aCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgLy8gVGhpcyBpcyB0
aGUgY29sdW1uIHdpZHRoIGJhc2VkIG9uIDxjb2wgd2lkdGg9IiI+IGFuZCBub3QgPHRkIHN0eWxl
PSJ3aWR0aDogIj4uCisgICAgICAgICAgICBhdXRvIGNvbHVtbkZpeGVkV2lkdGggPSBjb2x1bW4u
Ym94KCkgPyBjb2x1bW4uYm94KCktPmNvbHVtbldpZHRoKCkgOiBXVEY6Om51bGxvcHQ7IAorICAg
ICAgICAgICAgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0udmFsdWUgPSBzdGQ6Om1h
eChjb2x1bW5NaW5pbXVtV2lkdGhzW2NvbHVtbkluZGV4XS52YWx1ZSwgY29sdW1uRml4ZWRXaWR0
aC52YWx1ZU9yKDApLnRvRmxvYXQoKSk7CisgICAgICAgICAgICAvLyBGaXhlZCBjb2x1bW5zIGZs
ZXggd2hlbiB0aGVyZSBhcmUgbm8gb3RoZXIgZmxleGFibGUgY29sdW1ucy4KKyAgICAgICAgICAg
IGNvbHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdLnNob3VsZEZsZXggPSBoYXNGaXhlZENv
bHVtbnNPbmx5IHwgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0uc2hvdWxkRmxleDsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIDMuIERpc3RyaWJ1dGUgdGhlIHNwYW5uaW5nIGNlbGxz
JyBtaW1pbXVtIHdpZHRocyBhY3Jvc3MgdGhlIGNvbHVtbnMgdXNpbmcgdGhlIG5vbi1zcGFubmlu
ZyBtaW5pbXVtIHdpZHRocy4KICAgICAgICAgLy8gZS5nLiBbIDEgXVsgNSBdWyAxIF0KICAgICAg
ICAgLy8gICAgICBbICAgIDkgICBdWyAxIF0KICAgICAgICAgLy8gVGhlIG1pbmltdW0gd2lkdGhz
IGFyZTogWyAyIF1bIDcgXVsgMSBdCkBAIC0zNTQsNyArMzc4LDcgQEAgdm9pZCBUYWJsZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlQW5kRGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlKExh
eW91dFVuaXQKICAgICAgICAgICAgIGZsb2F0IGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0aCA9
IDA7CiAgICAgICAgICAgICAvLyAxLiBDb2xsZWN0IHRoZSBub24tc3BhbmluZyBtaW5pbXVtIHdp
ZHRocy4KICAgICAgICAgICAgIGZvciAoYXV0byBjb2x1bW5JbmRleCA9IGNlbGwuc3RhcnRDb2x1
bW4oKTsgY29sdW1uSW5kZXggPCBjZWxsLmVuZENvbHVtbigpOyArK2NvbHVtbkluZGV4KQotICAg
ICAgICAgICAgICAgIGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0aCArPSBjb2x1bW5NaW5pbXVt
V2lkdGhzW2NvbHVtbkluZGV4XTsKKyAgICAgICAgICAgICAgICBjdXJyZW50U3Bhbm5pbmdNaW5p
bXVtV2lkdGggKz0gY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0udmFsdWU7CiAgICAg
ICAgICAgICBmbG9hdCBzcGFubmluZ01pbmltdW1XaWR0aCA9IHNsb3Qud2lkdGhDb25zdHJhaW50
cygpLm1pbmltdW07CiAgICAgICAgICAgICBpZiAoY3VycmVudFNwYW5uaW5nTWluaW11bVdpZHRo
ID49IHNwYW5uaW5nTWluaW11bVdpZHRoKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIHNwYW5u
aW5nIGNlbGwgZml0cyB0aGUgc3Bhbm5lZCBjb2x1bW5zIGp1c3QgZmluZS4gTm90aGluZyB0byBk
aXN0cmlidXRlLgpAQCAtMzY1LDMwICszODksMjkgQEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlQW5kRGlzdHJpYnV0ZUV4dHJhSG9yaXpvbnRhbFNwYWNlKExheW91dFVuaXQK
ICAgICAgICAgICAgIC8vIE5ldyBtaW5pbXVtIHdpZHRoczogWyAzIF0gWyA2IF0uCiAgICAgICAg
ICAgICBhdXRvIHNwYWNlVG9EaXN0cmlidXRlID0gc3Bhbm5pbmdNaW5pbXVtV2lkdGggLSBjdXJy
ZW50U3Bhbm5pbmdNaW5pbXVtV2lkdGg7CiAgICAgICAgICAgICBmb3IgKGF1dG8gY29sdW1uSW5k
ZXggPSBjZWxsLnN0YXJ0Q29sdW1uKCk7IGNvbHVtbkluZGV4IDwgY2VsbC5lbmRDb2x1bW4oKTsg
Kytjb2x1bW5JbmRleCkKLSAgICAgICAgICAgICAgICBjb2x1bW5NaW5pbXVtV2lkdGhzW2NvbHVt
bkluZGV4XSArPSBzcGFjZVRvRGlzdHJpYnV0ZSAvIGN1cnJlbnRTcGFubmluZ01pbmltdW1XaWR0
aCAqIGNvbHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdOworICAgICAgICAgICAgICAgIGNv
bHVtbk1pbmltdW1XaWR0aHNbY29sdW1uSW5kZXhdLnZhbHVlICs9IHNwYWNlVG9EaXN0cmlidXRl
IC8gY3VycmVudFNwYW5uaW5nTWluaW11bVdpZHRoICogY29sdW1uTWluaW11bVdpZHRoc1tjb2x1
bW5JbmRleF0udmFsdWU7CiAgICAgICAgIH0KICAgICAgICAgLy8gMy4gRGlzdHJpYnV0ZSB0aGUg
ZXh0cmEgc3BhY2UgdXNpbmcgdGhlIGZpbmFsIG1pbmltdW0gd2lkdGhzLgotICAgICAgICBmbG9h
dCBhZGp1c3RhYmxlZEhvcml6b250YWxTcGFjZSA9IHRhYmxlV2lkdGhDb25zdHJhaW50cy5taW5p
bXVtIC0gZ3JpZC50b3RhbEhvcml6b250YWxTcGFjaW5nKCk7Ci0gICAgICAgIGF1dG8gbnVtYmVy
T2ZDb2x1bW5zID0gY29sdW1uTGlzdC5zaXplKCk7CiAgICAgICAgIC8vIEZpeGVkIHdpZHRoIGNv
bHVtbnMgZG9uJ3QgcGFydGljaXBhdGUgaW4gYXZhaWxhYmxlIHNwYWNlIGRpc3RyaWJ1dGlvbi4K
LSAgICAgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBjb2x1bW5MaXN0KSB7Ci0gICAgICAgICAgICBp
ZiAoIWNvbHVtbi5pc0ZpeGVkV2lkdGgoKSkKKyAgICAgICAgLy8gVW5sZXNzIHRoZXJlIGFyZSBu
byBmbGV4aW5nIGNvbHVtbiBhdCBhbGwsIHRoZW4gdGhleSBzdGFydCBmbGV4aW5nIGFzIGlmIHRo
ZXkgd2VyZSBub3QgZml4ZWQgYXQgYWxsLgorICAgICAgICBmbG9hdCBhZGp1c3RhYmxlZEhvcml6
b250YWxTcGFjZSA9IDA7CisgICAgICAgIGZvciAoYXV0byYgY29sdW1uTWluaW11bVdpZHRoIDog
Y29sdW1uTWluaW11bVdpZHRocykgeworICAgICAgICAgICAgaWYgKCFjb2x1bW5NaW5pbXVtV2lk
dGguc2hvdWxkRmxleCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGF1
dG8gY29sdW1uRml4ZWRXaWR0aCA9ICpjb2x1bW4uYm94KCktPmNvbHVtbldpZHRoKCk7Ci0gICAg
ICAgICAgICBjb2x1bW4uc2V0TG9naWNhbFdpZHRoKGNvbHVtbkZpeGVkV2lkdGgpOwotCi0gICAg
ICAgICAgICAtLW51bWJlck9mQ29sdW1uczsKLSAgICAgICAgICAgIGFkanVzdGFibGVkSG9yaXpv
bnRhbFNwYWNlIC09IGNvbHVtbkZpeGVkV2lkdGg7CisgICAgICAgICAgICBhZGp1c3RhYmxlZEhv
cml6b250YWxTcGFjZSArPSBjb2x1bW5NaW5pbXVtV2lkdGgudmFsdWU7CiAgICAgICAgIH0KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNvbHVtbnMgfHwgIWFkanVzdGFibGVkSG9yaXpvbnRhbFNwYWNl
KQorICAgICAgICBpZiAoIWFkanVzdGFibGVkSG9yaXpvbnRhbFNwYWNlKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBBU1NFUlQoYWRqdXN0YWJsZWRIb3Jpem9udGFsU3BhY2UgPiAwKTsK
KyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBvdmVyY29uc3RyYWluZWQgY29sdW1ucyB3aGVu
IGZpeGVkIHdpZHRoIGNvbnRlbnQgaXMgd2lkZXIgdGhhbiB0aGUgdGFibGUuCiAgICAgICAgIGZv
ciAoc2l6ZV90IGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5zLnNpemUoKTsg
Kytjb2x1bW5JbmRleCkgewogICAgICAgICAgICAgYXV0byYgY29sdW1uID0gY29sdW1ucy5saXN0
KClbY29sdW1uSW5kZXhdOwotICAgICAgICAgICAgaWYgKGNvbHVtbi5pc0ZpeGVkV2lkdGgoKSkK
KyAgICAgICAgICAgIGF1dG8gbWluaW11bVdpZHRoID0gY29sdW1uTWluaW11bVdpZHRoc1tjb2x1
bW5JbmRleF0udmFsdWU7CisgICAgICAgICAgICBpZiAoIWNvbHVtbk1pbmltdW1XaWR0aHNbY29s
dW1uSW5kZXhdLnNob3VsZEZsZXgpIHsKKyAgICAgICAgICAgICAgICBjb2x1bW4uc2V0TG9naWNh
bFdpZHRoKExheW91dFVuaXQgeyBtaW5pbXVtV2lkdGggfSk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBhdXRvIGNvbHVtbkV4dHJhU3BhY2UgPSBob3Jpem9udGFsU3Bh
Y2VUb0Rpc3RyaWJ1dGUgLyBhZGp1c3RhYmxlZEhvcml6b250YWxTcGFjZSAqIGNvbHVtbk1pbmlt
dW1XaWR0aHNbY29sdW1uSW5kZXhdOwotICAgICAgICAgICAgY29sdW1uLnNldExvZ2ljYWxXaWR0
aChMYXlvdXRVbml0IHsgY29sdW1uTWluaW11bVdpZHRoc1tjb2x1bW5JbmRleF0gKyBjb2x1bW5F
eHRyYVNwYWNlIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBjb2x1bW5FeHRy
YVNwYWNlID0gaG9yaXpvbnRhbFNwYWNlVG9EaXN0cmlidXRlIC8gYWRqdXN0YWJsZWRIb3Jpem9u
dGFsU3BhY2UgKiBtaW5pbXVtV2lkdGg7CisgICAgICAgICAgICBjb2x1bW4uc2V0TG9naWNhbFdp
ZHRoKExheW91dFVuaXQgeyBtaW5pbXVtV2lkdGggKyBjb2x1bW5FeHRyYVNwYWNlIH0pOwogICAg
ICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxl
Zm9ybWF0dGluZy9UYWJsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUdyaWQuY3BwCmluZGV4IDcxZmM2OTgyNDEzZmEwMGI0Zjc5ZTJkYTk5NmUy
NDM4YjFmZDNiZWEuLjNjNDFkOGQwOGE1MjVlNzU2YWJjZGNiMWEyMTVjOWY0NjU2YWNmYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3Jp
ZC5jcHAKQEAgLTgzLDYgKzgzLDE1IEBAIHZvaWQgVGFibGVHcmlkOjpDb2x1bW5zOjphZGRBbm9u
eW1vdXNDb2x1bW4oKQogICAgIG1fY29sdW1uTGlzdC5hcHBlbmQoeyBudWxscHRyIH0pOwogfQog
Citib29sIFRhYmxlR3JpZDo6Q29sdW1uczo6aGFzRml4ZWRDb2x1bW5zT25seSgpIGNvbnN0Cit7
CisgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBtX2NvbHVtbkxpc3QpIHsKKyAgICAgICAgaWYgKCFj
b2x1bW4uaXNGaXhlZFdpZHRoKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFRhYmxlR3JpZDo6Um93czo6YWRkUm93KGNvbnN0
IENvbnRhaW5lckJveCYgcm93Qm94KQogewogICAgIG1fcm93TGlzdC5hcHBlbmQoeyByb3dCb3gg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUdy
aWQuaAppbmRleCAzZTczNzIwNDU0MmM0Mzg1YzA5NjAwM2E3ODk0ZTY2MmEzMTJjMjRjLi5jODNm
YmE0M2ZkYmQ0NTU3NGMwMjFkYTA4NDExMWJkZTBlNGQxZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlR3JpZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVHcmlkLmgKQEAgLTEwMCw2ICsxMDAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgYWRkQW5vbnltb3VzQ29sdW1uKCk7CiAKICAgICAg
ICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbkxpc3Qu
bGFzdCgpLmxvZ2ljYWxSaWdodCgpIC0gbV9jb2x1bW5MaXN0LmZpcnN0KCkubG9naWNhbExlZnQo
KTsgfQorICAgICAgICBib29sIGhhc0ZpeGVkQ29sdW1uc09ubHkoKSBjb25zdDsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIENvbHVtbkxpc3QgbV9jb2x1bW5MaXN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>