<?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>87051</bug_id>
          
          <creation_ts>2012-05-21 15:08:09 -0700</creation_ts>
          <short_desc>Centralize and clean-up table column iteration</short_desc>
          <delta_ts>2012-05-22 11:31:59 -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>Tables</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>629553</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-21 15:08:09 -0700</bug_when>
    <thetext>Currently there are 2 duplicated functions to iterate over your columns: one in FixedTableLayout and one in RenderTable. This makes some of the code confusing to read as we repeat the functions, also if the next-column logic was on RenderTableCol, we could more easily iterate over them.

Let&apos;s change make this code less confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629594</commentid>
    <comment_count>1</comment_count>
      <attachid>143115</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-21 15:25:26 -0700</bug_when>
    <thetext>Created attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629608</commentid>
    <comment_count>2</comment_count>
      <attachid>143115</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-21 15:34:43 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

LGTM.  Should probably let the EWSes run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629619</commentid>
    <comment_count>3</comment_count>
      <attachid>143115</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-21 15:39:52 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

Thanks Eric, clearing the cq until the EWS have had time to run!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629633</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-21 15:45:47 -0700</bug_when>
    <thetext>:)  Well, my bet was that cr-linux would be the slow one, and any of them would set cq- if they failed. :)  But yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630416</commentid>
    <comment_count>5</comment_count>
      <attachid>143115</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-22 08:58:14 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

EWS all green! \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630456</commentid>
    <comment_count>6</comment_count>
      <attachid>143115</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 09:43:05 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

Clearing flags on attachment: 143115

Committed r117988: &lt;http://trac.webkit.org/changeset/117988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630457</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-22 09:43:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630513</commentid>
    <comment_count>8</comment_count>
      <attachid>143115</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-22 10:24:10 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

View in context: https://bugs.webkit.org/attachment.cgi?id=143115&amp;action=review

&gt; Source/WebCore/rendering/RenderTableCol.cpp:123
&gt; +    if (RenderObject* firstChild = this-&gt;firstChild())
&gt; +        return toRenderTableCol(firstChild);

What guarantees the first child of a RenderTableCol is always another RenderTableCol? I think this is missing an isTableCol check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>630587</commentid>
    <comment_count>9</comment_count>
      <attachid>143115</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-05-22 11:31:59 -0700</bug_when>
    <thetext>Comment on attachment 143115
Proposed change. Clean-up lots of code and validate our current implementation.

View in context: https://bugs.webkit.org/attachment.cgi?id=143115&amp;action=review

&gt;&gt; Source/WebCore/rendering/RenderTableCol.cpp:123
&gt;&gt; +        return toRenderTableCol(firstChild);
&gt; 
&gt; What guarantees the first child of a RenderTableCol is always another RenderTableCol? I think this is missing an isTableCol check.

I believe this is correct and doesn&apos;t need an extra check for the following reasons:
* only column-groups can have children (see RenderTableCol::canHaveChildren).
* for column-groups, we only allow columns to be our children per RenderTableCol::isChildAllowed (the logic is a bit outdated but that&apos;s the gist of it).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143115</attachid>
            <date>2012-05-21 15:25:26 -0700</date>
            <delta_ts>2012-05-22 11:31:59 -0700</delta_ts>
            <desc>Proposed change. Clean-up lots of code and validate our current implementation.</desc>
            <filename>bug-87051-20120521152525.patch</filename>
            <type>text/plain</type>
            <size>18220</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVjZmY0ZmE3ZjM0MWEx
NGE1MmY1NTNiZmRhNWE5YzU2NmNjNDVlZi4uYzk3MmRmYWQ1M2ExMWEzMzFhMmYyZGJhMjM3MmIw
Y2Q2YTQzZThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA1LTIxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIENlbnRyYWxp
emUgYW5kIGNsZWFuLXVwIHRhYmxlIGNvbHVtbiBpdGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MDUxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdGFibGUvY2FwdGlvbi1i
ZXR3ZWVuLWNvbHVtbi1hbmQtY29sdW1uLWdyb3VwLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
dGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbi1ncm91cC1hbmQtY29sdW1uLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbnMuaHRtbAorCisgICAg
ICAgIFRoZSBleGlzdGluZyBjb2RlIGhhZCBkdXBsaWNhdGlvbnMgYmV0d2VlbiBkaWZmZXJlbnQg
Y2xhc3NlcyBhbmQgc29tZQorICAgICAgICBvZiB0aGUgaXRlcmF0aW5nIGZ1bmN0aW9ucyBjb3Vs
ZCB1c2UgYSBiZXR0ZXIgcGxhY2UuIFRoYXQncyB3aGF0IHRoaXMKKyAgICAgICAgY2hhbmdlIHNv
bHZlcywgYWxvbmcgd2l0aCBzZXZlcmFsIHJlbmFtaW5ncy4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNvbC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDb2w6Omlz
VGFibGVDb2x1bW5Hcm91cFdpdGhDb2x1bW5DaGlsZHJlbik6CisgICAgICAgIFJlbmFtZWQgaXNU
YWJsZUNvbEdyb3VwIHRvIHRoaXMgdG8gYmV0dGVyIHJlZmxlY3Qgd2hhdCBpdCBjaGVja3MuCisg
ICAgICAgIEFsc28gYWRkZWQgYSBuZXcgZnVuY3Rpb246IG5leHRDb2x1bW4uCisKKyAgICAgICAg
KiByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaXhl
ZFRhYmxlTGF5b3V0OjpjYWxjV2lkdGhBcnJheSk6CisgICAgICAgIFVwZGF0ZWQgYWZ0ZXIgaXNU
YWJsZUNvbEdyb3VwIHJlbmFtaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpmaXJzdENvbHVtbik6CisgICAg
ICAgIEFkZGVkIHRoaXMgbmV3IGZ1bmN0aW9uIHRvIGdldCB0aGUgZmlyc3QgY29sdW1uIChvciBj
b2x1bW4gZ3JvdXApLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6Y29sRWxlbWVu
dCk6CisgICAgICAgIENsZWFuZWQgdXAgdGhpcyBmdW5jdGlvbjogc3dpdGNoZWQgdGhlIGxvb3Ag
dG8gYSAnZm9yJyBub3cgdGhhdCB0aGUKKyAgICAgICAgaGVscGVyIGZ1bmN0aW9ucyBtYWtlIGl0
IGVhc3kuIENsZWFuZWQgdXAgdGhlIG9yZGVyaW5nIGFuZCB0aGUgbmFtaW5nLgorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgIEFkZGVkIGZpcnN0Q29sdW1uLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZUNlbGw6OnN0eWxlT3JDb2xMb2dpY2FsV2lkdGgpOgorICAgICAgICBV
cGRhdGVkIHRvIHVzZSBuZXh0Q29sdW1uKCkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGFibGVDb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDb2w6Om5leHRDb2x1
bW4pOgorICAgICAgICBBZGRlZCB0aGlzIG5ldyBoZWxwZXIgZnVuY3Rpb24gdG8gY2VudHJhbGl6
ZSB0aGUgY29kZSB0byBpdGVyYXRlIG92ZXIgY29sdW1ucy4KKwogMjAxMi0wNS0xNyAgTWljaGFs
IE1vY255ICA8bW1vY255QGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBMaW1pdGlu
ZyByZW5kZXIgc3VyZmFjZSB0ZXh0dXJlIG1hbmFnZXIgbWVtb3J5IHRvIDAgd2hlbiBjb250ZW50
c01lbW9yeVVzZUJ5dGVzIGlzIGxhcmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zp
eGVkVGFibGVMYXlvdXQuY3BwCmluZGV4IDE4NzU1N2VkMTEzNzc2MzRiZDFkYzNiOWJkMjA0Yjkw
NTU5N2UzYzIuLjRhNDk1Mzg0YzEzYjUyMmFkM2UxYzYzOGQxYzQ5ZGQyODEyOWY5OWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKQEAgLTc3LDIw
ICs3Nyw2IEBAIEZpeGVkVGFibGVMYXlvdXQ6OkZpeGVkVGFibGVMYXlvdXQoUmVuZGVyVGFibGUq
IHRhYmxlKQogewogfQogCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0Q29sKFJlbmRlck9iamVj
dCogY2hpbGQpCi17Ci0gICAgLy8gSWYgY2hpbGQgaXMgYSBjb2xncm91cCwgdGhlIG5leHQgY29s
IGlzIHRoZSBjb2xncm91cCdzIGZpcnN0IGNoaWxkIGNvbC4KLSAgICBpZiAoUmVuZGVyT2JqZWN0
KiBuZXh0ID0gY2hpbGQtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIG5leHQ7Ci0gICAg
Ly8gT3RoZXJ3aXNlIGl0J3MgdGhlIG5leHQgY29sIGFsb25nLgotICAgIGlmIChSZW5kZXJPYmpl
Y3QqIG5leHQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgcmV0dXJuIG5leHQ7Ci0g
ICAgLy8gRmFpbGluZyB0aGF0LCB0aGUgY2hpbGQgaXMgdGhlIGxhc3QgY29sIGluIGEgY29sZ3Jv
dXAsIHNvIHRoZSBuZXh0IGNvbCBpcyB0aGUgbmV4dCBjb2wvY29sZ3JvdXAgYWZ0ZXIgaXRzIGNv
bGdyb3VwLgotICAgIGlmIChjaGlsZC0+cGFyZW50KCktPmlzVGFibGVDb2woKSkKLSAgICAgICAg
cmV0dXJuIGNoaWxkLT5wYXJlbnQoKS0+bmV4dFNpYmxpbmcoKTsKLSAgICByZXR1cm4gMDsKLX0K
LQogaW50IEZpeGVkVGFibGVMYXlvdXQ6OmNhbGNXaWR0aEFycmF5KGludCkKIHsKICAgICBpbnQg
dXNlZFdpZHRoID0gMDsKQEAgLTEwMSwxMyArODcsMTEgQEAgaW50IEZpeGVkVGFibGVMYXlvdXQ6
OmNhbGNXaWR0aEFycmF5KGludCkKICAgICBtX3dpZHRoLmZpbGwoTGVuZ3RoKEF1dG8pKTsKIAog
ICAgIHVuc2lnbmVkIGN1cnJlbnRFZmZlY3RpdmVDb2x1bW4gPSAwOwotICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjaGlsZCA9IG1fdGFibGUtPmZpcnN0Q2hpbGQoKTtjaGlsZCAmJiBjaGlsZC0+aXNU
YWJsZUNvbCgpOyBjaGlsZCA9IG5leHRDb2woY2hpbGQpKSB7Ci0KLSAgICAgICAgLy8gV2lkdGgg
c3BlY2lmaWVkIGJ5IGNvbHVtbi1ncm91cHMgZG9lcyBub3QgYWZmZWN0IGNvbHVtbiB3aWR0aCBp
biBmaXhlZCBsYXlvdXQgdGFibGVzCi0gICAgICAgIFJlbmRlclRhYmxlQ29sKiBjb2wgPSB0b1Jl
bmRlclRhYmxlQ29sKGNoaWxkKTsKKyAgICBmb3IgKFJlbmRlclRhYmxlQ29sKiBjb2wgPSBtX3Rh
YmxlLT5maXJzdENvbHVtbigpOyBjb2w7IGNvbCA9IGNvbC0+bmV4dENvbHVtbigpKSB7CiAgICAg
ICAgIGNvbC0+Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKTsKIAotICAgICAgICBpZiAo
Y29sLT5pc1RhYmxlQ29sR3JvdXAoKSkKKyAgICAgICAgLy8gV2lkdGggc3BlY2lmaWVkIGJ5IGNv
bHVtbi1ncm91cHMgdGhhdCBoYXZlIGNvbHVtbiBjaGlsZCBkb2VzIG5vdCBhZmZlY3QgY29sdW1u
IHdpZHRoIGluIGZpeGVkIGxheW91dCB0YWJsZXMKKyAgICAgICAgaWYgKGNvbC0+aXNUYWJsZUNv
bHVtbkdyb3VwV2l0aENvbHVtbkNoaWxkcmVuKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAog
ICAgICAgICBMZW5ndGggY29sU3R5bGVMb2dpY2FsV2lkdGggPSBjb2wtPnN0eWxlKCktPmxvZ2lj
YWxXaWR0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXgg
MjgxNzJlZjk0NTQ5OTQ5MjgwYjdlNmVjZjdkMjQ2OGViNDFlN2QzNS4uMThjNzkxNmQyOWJmM2Yw
M2VjNjQ5MTEzN2ZjYWU2OTMyZGZiMjA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCkBAIC03MjYsMjIgKzcyNiwxNyBAQCB2b2lkIFJlbmRlclRhYmxlOjphcHBl
bmRDb2x1bW4odW5zaWduZWQgc3BhbikKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNS
ZWNhbGMoKTsKIH0KIAotUmVuZGVyVGFibGVDb2wqIFJlbmRlclRhYmxlOjpuZXh0Q29sRWxlbWVu
dChSZW5kZXJUYWJsZUNvbCogY3VycmVudCkgY29uc3QKK1JlbmRlclRhYmxlQ29sKiBSZW5kZXJU
YWJsZTo6Zmlyc3RDb2x1bW4oKSBjb25zdAogewotICAgIFJlbmRlck9iamVjdCogbmV4dCA9IGN1
cnJlbnQtPmZpcnN0Q2hpbGQoKTsKLSAgICBpZiAoIW5leHQpCi0gICAgICAgIG5leHQgPSBjdXJy
ZW50LT5uZXh0U2libGluZygpOwotICAgIGlmICghbmV4dCAmJiBjdXJyZW50LT5wYXJlbnQoKS0+
aXNUYWJsZUNvbCgpKQotICAgICAgICBuZXh0ID0gY3VycmVudC0+cGFyZW50KCktPm5leHRTaWJs
aW5nKCk7Ci0KLSAgICB3aGlsZSAobmV4dCkgewotICAgICAgICBpZiAobmV4dC0+aXNUYWJsZUNv
bCgpKQotICAgICAgICAgICAgcmV0dXJuIHRvUmVuZGVyVGFibGVDb2wobmV4dCk7Ci0gICAgICAg
IGlmICghbV9jYXB0aW9ucy5jb250YWlucyhuZXh0KSkKKyAgICBmb3IgKFJlbmRlck9iamVjdCog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNUYWJsZUNvbCgpKQorICAgICAgICAgICAgcmV0dXJu
IHRvUmVuZGVyVGFibGVDb2woY2hpbGQpOworCisgICAgICAgIC8vIFdlIGFsbG93IG9ubHkgdGFi
bGUtY2FwdGlvbnMgYmVmb3JlIGNvbHVtbnMgb3IgY29sdW1uLWdyb3Vwcy4KKyAgICAgICAgaWYg
KCFjaGlsZC0+aXNUYWJsZUNhcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAg
ICBuZXh0ID0gbmV4dC0+bmV4dFNpYmxpbmcoKTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4g
MDsKIH0KIApAQCAtNzQ5LDM2ICs3NDQsMjQgQEAgUmVuZGVyVGFibGVDb2wqIFJlbmRlclRhYmxl
Ojpjb2xFbGVtZW50KHVuc2lnbmVkIGNvbCwgYm9vbCogc3RhcnRFZGdlLCBib29sKiBlbmQKIHsK
ICAgICBpZiAoIW1faGFzQ29sRWxlbWVudHMpCiAgICAgICAgIHJldHVybiAwOwotICAgIFJlbmRl
ck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7Ci0gICAgdW5zaWduZWQgY0NvbCA9IDA7CiAK
LSAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5pc1RhYmxlQ29sKCkpCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKCFtX2NhcHRpb25zLmNvbnRhaW5zKGNoaWxk
KSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpOwotICAgIH0KLSAgICBpZiAoIWNoaWxkKQotICAgICAgICByZXR1cm4gMDsKKyAgICB1
bnNpZ25lZCBjb2x1bW5Db3VudCA9IDA7CisgICAgZm9yIChSZW5kZXJUYWJsZUNvbCogY29sdW1u
UmVuZGVyZXIgPSBmaXJzdENvbHVtbigpOyBjb2x1bW5SZW5kZXJlcjsgY29sdW1uUmVuZGVyZXIg
PSBjb2x1bW5SZW5kZXJlci0+bmV4dENvbHVtbigpKSB7CisgICAgICAgIGlmIChjb2x1bW5SZW5k
ZXJlci0+aXNUYWJsZUNvbHVtbkdyb3VwV2l0aENvbHVtbkNoaWxkcmVuKCkpCisgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgIFJlbmRlclRhYmxlQ29sKiBjb2xFbGVtID0gdG9SZW5kZXJUYWJs
ZUNvbChjaGlsZCk7Ci0gICAgd2hpbGUgKGNvbEVsZW0pIHsKLSAgICAgICAgdW5zaWduZWQgc3Bh
biA9IGNvbEVsZW0tPnNwYW4oKTsKLSAgICAgICAgaWYgKCFjb2xFbGVtLT5maXJzdENoaWxkKCkp
IHsKLSAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0Q29sID0gY0NvbDsKLSAgICAgICAgICAgIEFT
U0VSVChzcGFuID49IDEpOwotICAgICAgICAgICAgdW5zaWduZWQgZW5kQ29sID0gY0NvbCArIHNw
YW4gLSAxOwotICAgICAgICAgICAgY0NvbCArPSBzcGFuOwotICAgICAgICAgICAgaWYgKGNDb2wg
PiBjb2wpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3RhcnRFZGdlKQotICAgICAgICAgICAgICAg
ICAgICAqc3RhcnRFZGdlID0gc3RhcnRDb2wgPT0gY29sOwotICAgICAgICAgICAgICAgIGlmIChl
bmRFZGdlKQotICAgICAgICAgICAgICAgICAgICAqZW5kRWRnZSA9IGVuZENvbCA9PSBjb2w7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbEVsZW07Ci0gICAgICAgICAgICB9CisgICAgICAgIHVu
c2lnbmVkIHNwYW4gPSBjb2x1bW5SZW5kZXJlci0+c3BhbigpOworICAgICAgICB1bnNpZ25lZCBz
dGFydENvbCA9IGNvbHVtbkNvdW50OworICAgICAgICBBU1NFUlQoc3BhbiA+PSAxKTsKKyAgICAg
ICAgdW5zaWduZWQgZW5kQ29sID0gY29sdW1uQ291bnQgKyBzcGFuIC0gMTsKKyAgICAgICAgY29s
dW1uQ291bnQgKz0gc3BhbjsKKyAgICAgICAgaWYgKGNvbHVtbkNvdW50ID4gY29sKSB7CisgICAg
ICAgICAgICBpZiAoc3RhcnRFZGdlKQorICAgICAgICAgICAgICAgICpzdGFydEVkZ2UgPSBzdGFy
dENvbCA9PSBjb2w7CisgICAgICAgICAgICBpZiAoZW5kRWRnZSkKKyAgICAgICAgICAgICAgICAq
ZW5kRWRnZSA9IGVuZENvbCA9PSBjb2w7CisgICAgICAgICAgICByZXR1cm4gY29sdW1uUmVuZGVy
ZXI7CiAgICAgICAgIH0KLSAgICAgICAgY29sRWxlbSA9IG5leHRDb2xFbGVtZW50KGNvbEVsZW0p
OwogICAgIH0KIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuaAppbmRleCAxMzk2ZWViNTc3YzI3N2JiMDE1OWEwOWM0MDk4OTgyMmI2ZmQ5MDczLi43ZDMw
NDliN2FmYzJjNTM4ZmVmMDM4MWZjZWU1MjQxNDRiMjc0YmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaApAQCAtMTc1LDggKzE3NSwxMCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAoY29sbGFwc2VCb3JkZXJzKCkgPyBaRVJPX0xBWU9VVF9VTklUIDogKHBhZGRpbmdT
dGFydCgpICsgcGFkZGluZ0VuZCgpICsgc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4obnVtRWZmQ29s
cygpICsgMSkgKiBoQm9yZGVyU3BhY2luZygpKSk7CiAgICAgfQogCisgICAgLy8gUmV0dXJuIHRo
ZSBmaXJzdCBjb2x1bW4gb3IgY29sdW1uLWdyb3VwLgorICAgIFJlbmRlclRhYmxlQ29sKiBmaXJz
dENvbHVtbigpIGNvbnN0OworCiAgICAgUmVuZGVyVGFibGVDb2wqIGNvbEVsZW1lbnQodW5zaWdu
ZWQgY29sLCBib29sKiBzdGFydEVkZ2UgPSAwLCBib29sKiBlbmRFZGdlID0gMCkgY29uc3Q7Ci0g
ICAgUmVuZGVyVGFibGVDb2wqIG5leHRDb2xFbGVtZW50KFJlbmRlclRhYmxlQ29sKiBjdXJyZW50
KSBjb25zdDsKIAogICAgIGJvb2wgbmVlZHNTZWN0aW9uUmVjYWxjKCkgY29uc3QgeyByZXR1cm4g
bV9uZWVkc1NlY3Rpb25SZWNhbGM7IH0KICAgICB2b2lkIHNldE5lZWRzU2VjdGlvblJlY2FsYygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IGZi
MGZlOTIwMDliZDViOTYyODA2YmE2NjY4M2IyYTkxOGUzZmNkN2QuLmQwODg5ZWM1MDE5NTFlYjFi
YzI5YmI5YzBlMzI1ZGE5MTIyMDM3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgTGVuZ3RoIFJlbmRlclRhYmxl
Q2VsbDo6c3R5bGVPckNvbExvZ2ljYWxXaWR0aCgpIGNvbnN0CiAKICAgICAgICAgICAgIGNvbFdp
ZHRoU3VtID0gTGVuZ3RoKGNvbFdpZHRoU3VtLnZhbHVlKCkgKyBjb2xXaWR0aC52YWx1ZSgpLCBG
aXhlZCk7CiAKLSAgICAgICAgICAgIHRhYmxlQ29sID0gdGFibGUoKS0+bmV4dENvbEVsZW1lbnQo
dGFibGVDb2wpOworICAgICAgICAgICAgdGFibGVDb2wgPSB0YWJsZUNvbC0+bmV4dENvbHVtbigp
OwogICAgICAgICAgICAgLy8gSWYgbm8gbmV4dCA8Y29sPiB0YWcgZm91bmQgZm9yIHRoZSBzcGFu
IHdlIGp1c3QgcmV0dXJuIHdoYXQgd2UgaGF2ZSBmb3Igbm93LgogICAgICAgICAgICAgaWYgKCF0
YWJsZUNvbCkKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVDb2wuY3BwCmluZGV4IDY0OWFhYWFiYmQyYTM3MTYzODE5ZWFlNWQyNjc1
ODZmN2FlY2FhNjUuLjdiM2U0NzI5OTU4MDA3Mjk4ZDg3ZTIxM2UzY2E3ZjA5YTY3OWMyMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcApAQCAtMTE2LDQg
KzExNiwyOCBAQCBSZW5kZXJUYWJsZSogUmVuZGVyVGFibGVDb2w6OnRhYmxlKCkgY29uc3QKICAg
ICByZXR1cm4gdGFibGUgJiYgdGFibGUtPmlzVGFibGUoKSA/IHRvUmVuZGVyVGFibGUodGFibGUp
IDogMDsKIH0KIAorUmVuZGVyVGFibGVDb2wqIFJlbmRlclRhYmxlQ29sOjpuZXh0Q29sdW1uKCkg
Y29uc3QKK3sKKyAgICAvLyBJZiB8dGhpc3wgaXMgYSBjb2x1bW4tZ3JvdXAsIHRoZSBuZXh0IGNv
bHVtbiBpcyB0aGUgY29sZ3JvdXAncyBmaXJzdCBjaGlsZCBjb2x1bW4uCisgICAgaWYgKFJlbmRl
ck9iamVjdCogZmlyc3RDaGlsZCA9IHRoaXMtPmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgcmV0dXJu
IHRvUmVuZGVyVGFibGVDb2woZmlyc3RDaGlsZCk7CisKKyAgICAvLyBPdGhlcndpc2UgaXQncyB0
aGUgbmV4dCBjb2x1bW4gYWxvbmcuCisgICAgUmVuZGVyT2JqZWN0KiBuZXh0ID0gbmV4dFNpYmxp
bmcoKTsKKworICAgIC8vIEZhaWxpbmcgdGhhdCwgdGhlIGNoaWxkIGlzIHRoZSBsYXN0IGNvbHVt
biBpbiBhIGNvbHVtbi1ncm91cCwgc28gdGhlIG5leHQgY29sdW1uIGlzIHRoZSBuZXh0IGNvbHVt
bi9jb2x1bW4tZ3JvdXAgYWZ0ZXIgaXRzIGNvbHVtbi1ncm91cC4KKyAgICBpZiAoIW5leHQgJiYg
cGFyZW50KCktPmlzVGFibGVDb2woKSkKKyAgICAgICAgbmV4dCA9IHBhcmVudCgpLT5uZXh0U2li
bGluZygpOworCisgICAgZm9yICg7IG5leHQgJiYgIW5leHQtPmlzVGFibGVDb2woKTsgbmV4dCA9
IG5leHQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgLy8gV2UgYWxsb3cgY2FwdGlvbnMgbWl4
ZWQgd2l0aCBjb2x1bW5zIGFuZCBjb2x1bW4tZ3JvdXBzLgorICAgICAgICBpZiAobmV4dC0+aXNU
YWJsZUNhcHRpb24oKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHJldHVybiAw
OworICAgIH0KKworICAgIHJldHVybiB0b1JlbmRlclRhYmxlQ29sKG5leHQpOworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4IGRhMDM3Yjg2MzE5
NTcwZDQ4NTYyMGFmN2M2NjE2NTVlOTE5ZjgxODAuLjJkOGYzOWI4Zjk3MTQzMDE3MjAzMTY2YmRm
NTIwY2NiOWU0MjdmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNv
bC5oCkBAIC00Myw3ICs0MywxMiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCBzcGFuKCkgY29u
c3QgeyByZXR1cm4gbV9zcGFuOyB9CiAgICAgdm9pZCBzZXRTcGFuKHVuc2lnbmVkIHNwYW4pIHsg
bV9zcGFuID0gc3BhbjsgfQotICAgIGJvb2wgaXNUYWJsZUNvbEdyb3VwKCkgeyByZXR1cm4gZmly
c3RDaGlsZCgpID8gdHJ1ZSA6IGZhbHNlOyB9CisKKyAgICBib29sIGlzVGFibGVDb2x1bW5Hcm91
cFdpdGhDb2x1bW5DaGlsZHJlbigpIHsgcmV0dXJuIGZpcnN0Q2hpbGQoKTsgfQorCisgICAgLy8g
UmV0dXJucyB0aGUgbmV4dCBjb2x1bW4gb3IgY29sdW1uLWdyb3VwLgorICAgIFJlbmRlclRhYmxl
Q29sKiBuZXh0Q29sdW1uKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBSZW5kZXJP
YmplY3RDaGlsZExpc3QqIHZpcnR1YWxDaGlsZHJlbigpIHsgcmV0dXJuIGNoaWxkcmVuKCk7IH0K
ICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdENoaWxkTGlzdCogdmlydHVhbENoaWxkcmVu
KCkgY29uc3QgeyByZXR1cm4gY2hpbGRyZW4oKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdlMzgzMDlmYzNjZmNlOWUw
OTg4MDllMmMxNzM4ZWE3YTE1MzU0MmQuLjgzYTU5NjVhY2JkZjc1OWNkMGZmZmQ5Nzk1MjAxNzM3
YWNlZWExODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNS0yMSAgSnVsaWVuIENoYWZm
cmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBDZW50cmFsaXplIGFuZCBj
bGVhbi11cCB0YWJsZSBjb2x1bW4gaXRlcmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzA1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRob3NlIHRlc3RzIGp1c3QgdmFsaWRhdGUgYW5kIGVuZm9y
Y2Ugd2hhdCB3ZSB3ZXJlIGFscmVhZHkgZG9pbmcgdGhhdCB3ZXJlCisgICAgICAgIG5vdCBjb3Zl
cmVkIGJ5IGFueSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvdGFibGUvY2FwdGlv
bi1iZXR3ZWVuLWNvbHVtbi1hbmQtY29sdW1uLWdyb3VwLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbi1hbmQtY29sdW1uLWdy
b3VwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNv
bHVtbi1ncm91cC1hbmQtY29sdW1uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbi1ncm91cC1hbmQtY29sdW1uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbnMtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29s
dW1ucy5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0xNyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmViYXNlbGluZSB0d28gdGVzdHMgb24gTWFjIGFuZCB1cGRh
dGUgTWFjIGV4cGVjdGF0aW9ucyBhZnRlciByMTE3MzM5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vlbi1jb2x1bW4tYW5kLWNvbHVtbi1ncm91cC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29sdW1u
LWFuZC1jb2x1bW4tZ3JvdXAtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzNjZmMzNmIyMTli
YjA2MTI1M2Q3ZmNkNjMxZDkwOGEyNTlhOGE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29sdW1uLWFuZC1jb2x1bW4tZ3JvdXAtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisgICAgdGFibGUgeworICAgICAgICBib3JkZXItc3BhY2luZzogMHB4Owor
ICAgIH0KKyAgICB0aCB7CisgICAgICAgIHBhZGRpbmc6IDBweDsKKyAgICAgICAgd2lkdGg6IDEw
MHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD48YSBocmVmPSJodHRw
Oi8vd2Via2l0Lm9yZy9iLzg3MDUxIj44NzA1MTwvYT46IENlbnRyYWxpemUgYW5kIGNsZWFuLXVw
IHRhYmxlIGNvbHVtbiBpdGVyYXRpb248L3A+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBz
ZWUgMyByZWN0YW5nbGVzIGJlbG93OiBncmVlbiAtIHB1cnBsZSAtIGdyZWVuIChpbiB0aGlzIG9y
ZGVyLCBsZWZ0IHRvIHJpZ2h0KS48L3A+Cis8dGFibGU+CisgICAgPHRib2R5PgorICAgICAgICA8
dHI+CisgICAgICAgICAgICA8dGg+PC90aD4KKyAgICAgICAgICAgIDx0aCBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjogcHVycGxlIj48L3RoPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAg
IDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vlbi1jb2x1bW4tYW5kLWNv
bHVtbi1ncm91cC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4t
Y29sdW1uLWFuZC1jb2x1bW4tZ3JvdXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjUyMmMxNDgyYjA0NDgx
OWIyZGI4ZTNjMjA2ZTMzOGQ4Y2JjNGY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29sdW1uLWFuZC1jb2x1bW4tZ3JvdXAuaHRtbApA
QCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisgICAgdGFibGUgeworICAgICAgICBib3JkZXItc3BhY2luZzogMHB4OworICAgIH0KKyAgICB0
aCB7CisgICAgICAgIHBhZGRpbmc6IDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKyAgICBjb2wsIGNvbGdyb3VwIHsKKyAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi84NzA1MSI+ODcwNTE8L2E+OiBDZW50cmFs
aXplIGFuZCBjbGVhbi11cCB0YWJsZSBjb2x1bW4gaXRlcmF0aW9uPC9wPgorPHA+VGhpcyB0ZXN0
IHBhc3NlcyBpZiB5b3Ugc2VlIDMgcmVjdGFuZ2xlcyBiZWxvdzogZ3JlZW4gLSBwdXJwbGUgLSBn
cmVlbiAoaW4gdGhpcyBvcmRlciwgbGVmdCB0byByaWdodCkuPC9wPgorPHRhYmxlPgorICAgIDxj
b2xncm91cCBzcGFuPSIyIj4KKyAgICAgICAgPGNvbD4KKyAgICAgICAgPGNvbCBzdHlsZT0iYmFj
a2dyb3VuZC1jb2xvcjogcHVycGxlIj4KKyAgICA8L2NvbGdyb3VwPgorICAgIDxjYXB0aW9uPgor
ICAgIDxjb2w+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGg+PC90
aD4KKyAgICAgICAgICAgIDx0aD48L3RoPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAg
IDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vlbi1jb2x1bW4tZ3JvdXAt
YW5kLWNvbHVtbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9u
LWJldHdlZW4tY29sdW1uLWdyb3VwLWFuZC1jb2x1bW4tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yYzNjZmMzNmIyMTliYjA2MTI1M2Q3ZmNkNjMxZDkwOGEyNTlhOGE0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29sdW1uLWdyb3Vw
LWFuZC1jb2x1bW4tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgdGFibGUgeworICAgICAgICBib3JkZXIt
c3BhY2luZzogMHB4OworICAgIH0KKyAgICB0aCB7CisgICAgICAgIHBhZGRpbmc6IDBweDsKKyAg
ICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8
cD48YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzg3MDUxIj44NzA1MTwvYT46IENlbnRyYWxp
emUgYW5kIGNsZWFuLXVwIHRhYmxlIGNvbHVtbiBpdGVyYXRpb248L3A+Cis8cD5UaGlzIHRlc3Qg
cGFzc2VzIGlmIHlvdSBzZWUgMyByZWN0YW5nbGVzIGJlbG93OiBncmVlbiAtIHB1cnBsZSAtIGdy
ZWVuIChpbiB0aGlzIG9yZGVyLCBsZWZ0IHRvIHJpZ2h0KS48L3A+Cis8dGFibGU+CisgICAgPHRi
b2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGg+PC90aD4KKyAgICAgICAgICAgIDx0
aCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcHVycGxlIj48L3RoPgorICAgICAgICAgICAgPHRo
PjwvdGg+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vl
bi1jb2x1bW4tZ3JvdXAtYW5kLWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9j
YXB0aW9uLWJldHdlZW4tY29sdW1uLWdyb3VwLWFuZC1jb2x1bW4uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
N2UzNWQzOTZiZGYzNzkxYjAzYjA2YzBhNDM4NjE5MjU1NjJlZGYzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9jYXB0aW9uLWJldHdlZW4tY29sdW1uLWdyb3VwLWFu
ZC1jb2x1bW4uaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c3R5bGU+CisgICAgdGFibGUgeworICAgICAgICBib3JkZXItc3BhY2luZzogMHB4
OworICAgIH0KKyAgICB0aCB7CisgICAgICAgIHBhZGRpbmc6IDBweDsKKyAgICAgICAgd2lkdGg6
IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKyAgICBjb2wsIGNvbGdyb3Vw
IHsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHA+PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvYi84NzA1MSI+ODcw
NTE8L2E+OiBDZW50cmFsaXplIGFuZCBjbGVhbi11cCB0YWJsZSBjb2x1bW4gaXRlcmF0aW9uPC9w
PgorPHA+VGhpcyB0ZXN0IHBhc3NlcyBpZiB5b3Ugc2VlIDMgcmVjdGFuZ2xlcyBiZWxvdzogZ3Jl
ZW4gLSBwdXJwbGUgLSBncmVlbiAoaW4gdGhpcyBvcmRlciwgbGVmdCB0byByaWdodCkuPC9wPgor
PHRhYmxlPgorICAgIDxjb2w+CisgICAgPGNhcHRpb24+CisgICAgPGNvbGdyb3VwIHNwYW49IjIi
PgorICAgICAgICA8Y29sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGUiPgorICAgICAg
ICA8Y29sPgorICAgIDwvY29sZ3JvdXA+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAg
ICAgICAgICA8dGg+PC90aD4KKyAgICAgICAgICAgIDx0aD48L3RoPgorICAgICAgICAgICAgPHRo
PjwvdGg+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vl
bi1jb2x1bW5zLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2NhcHRpb24t
YmV0d2Vlbi1jb2x1bW5zLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMzY2ZjMzZiMjE5YmIw
NjEyNTNkN2ZjZDYzMWQ5MDhhMjU5YThhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbnMtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAg
dGFibGUgeworICAgICAgICBib3JkZXItc3BhY2luZzogMHB4OworICAgIH0KKyAgICB0aCB7Cisg
ICAgICAgIHBhZGRpbmc6IDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWln
aHQ6IDEwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD48YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy9iLzg3
MDUxIj44NzA1MTwvYT46IENlbnRyYWxpemUgYW5kIGNsZWFuLXVwIHRhYmxlIGNvbHVtbiBpdGVy
YXRpb248L3A+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUgMyByZWN0YW5nbGVzIGJl
bG93OiBncmVlbiAtIHB1cnBsZSAtIGdyZWVuIChpbiB0aGlzIG9yZGVyLCBsZWZ0IHRvIHJpZ2h0
KS48L3A+Cis8dGFibGU+CisgICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8
dGg+PC90aD4KKyAgICAgICAgICAgIDx0aCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcHVycGxl
Ij48L3RoPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9k
eT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3RhYmxlL2NhcHRpb24tYmV0d2Vlbi1jb2x1bW5zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3RhYmxlL2NhcHRpb24tYmV0d2Vlbi1jb2x1bW5zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODcwYjJkMjUw
YzU3YjIxODY2ZTQ4N2I1MWExNTQwNWVhMWRmYzQ4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvdGFibGUvY2FwdGlvbi1iZXR3ZWVuLWNvbHVtbnMuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgdGFi
bGUgeworICAgICAgICBib3JkZXItc3BhY2luZzogMHB4OworICAgIH0KKyAgICB0aCB7CisgICAg
ICAgIHBhZGRpbmc6IDBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6
IDEwMHB4OworICAgIH0KKyAgICBjb2wgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD48YSBocmVmPSJodHRwOi8v
d2Via2l0Lm9yZy9iLzg3MDUxIj44NzA1MTwvYT46IENlbnRyYWxpemUgYW5kIGNsZWFuLXVwIHRh
YmxlIGNvbHVtbiBpdGVyYXRpb248L3A+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHlvdSBzZWUg
MyByZWN0YW5nbGVzIGJlbG93OiBncmVlbiAtIHB1cnBsZSAtIGdyZWVuIChpbiB0aGlzIG9yZGVy
LCBsZWZ0IHRvIHJpZ2h0KS48L3A+Cis8dGFibGU+CisgICAgPGNvbD4KKyAgICA8Y2FwdGlvbj4K
KyAgICA8Y29sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGUiPgorICAgIDxjb2w+Cisg
ICAgPHRib2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGg+PC90aD4KKyAgICAgICAg
ICAgIDx0aD48L3RoPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAgIDwvdHI+CisgICAg
PC90Ym9keT4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>