<?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>62718</bug_id>
          
          <creation_ts>2011-06-15 04:42:32 -0700</creation_ts>
          <short_desc>[GTK] Consider rows being ignored when adding children to tables</short_desc>
          <delta_ts>2011-06-24 02:08:35 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cfleizach</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>421188</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-06-15 04:42:32 -0700</bug_when>
    <thetext>After bug 62235 was fixed, the accessibility/aria-tables.html test started to fail in GTK because the applied patch assumes that accessibility is not being ignored for rows, which is not the case for GTK at the moment.

Hence we need to fix this for GTK in order to be able to make the test pass again, skipping it in the meanwhile.

Note: See comment 12 in bug 62335 for more details (https://bugs.webkit.org/show_bug.cgi?id=62335#c12)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421198</commentid>
    <comment_count>1</comment_count>
      <attachid>97278</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-06-15 04:57:09 -0700</bug_when>
    <thetext>Created attachment 97278
Patch proposal + unskipped layout test

Attaching patch according to proposal explained in https://bugs.webkit.org/show_bug.cgi?id=62335#c12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426223</commentid>
    <comment_count>2</comment_count>
      <attachid>98358</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-06-23 09:10:59 -0700</bug_when>
    <thetext>Created attachment 98358
Patch proposal + unskipped layout test

Attaching patch using a different approach to hide rows in GTK, as discussed by mail with Chris</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426230</commentid>
    <comment_count>3</comment_count>
      <attachid>98358</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-23 09:39:15 -0700</bug_when>
    <thetext>Comment on attachment 98358
Patch proposal + unskipped layout test

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

r=me with suggested fixes

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:309
&gt; +

looks like you could put this after the !coreParent check, then you wouldn&apos;t need to check coreParent in this if statement

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:319
&gt; +    unsigned tableChildrenCount = tableChildren.size();

i think this unsigned should be a size_t, along with cellsCount (size vector.size() returns size_t i believe)

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:323
&gt; +    for (unsigned i = 0; i &lt; tableChildrenCount; ++i) {

size_t for the i as well

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:352
&gt; +

size_t change

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:358
&gt; +            if (static_cast&lt;unsigned&gt;(index) &lt; cellsCount + rowChildrenCount)

you could probably static_cast&lt;index&gt; one time before the loop, so it doesn&apos;t have to be done everytime within the loop

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:403
&gt; +    AccessibilityObject* grandParent = parent-&gt;parentObjectUnignored();

you should probably verify parent != 0 before getting gradparent

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:410
&gt; +

size_t

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:418
&gt; +

size_t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426796</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-06-24 02:08:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 98358 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98358&amp;action=review
&gt; 
&gt; r=me with suggested fixes
&gt;
Committed after making those changes:

http://trac.webkit.org/changeset/89660

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97278</attachid>
            <date>2011-06-15 04:57:09 -0700</date>
            <delta_ts>2011-06-23 09:10:59 -0700</delta_ts>
            <desc>Patch proposal + unskipped layout test</desc>
            <filename>0001-2011-06-15-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>4921</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAwZDE1ZGJlOTdlNTRlOTRkNjZlOTBmMzA3NzhhM2QwZWI2ZmViMWJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBXZWQsIDE1IEp1biAyMDExIDEzOjM0OjA5ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wNi0xNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBDb25z
aWRlciByb3dzIGJlaW5nIGlnbm9yZWQgd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gdGFibGVzCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzE4CgogICAg
ICAgIFVzZSBHVEsgc3BlY2lmaWMgY29kZSBmb3IgZml4aW4gdGhpcyBpc3N1ZSBpbiB0aGF0IHBs
YXRmb3JtLCB3aGlsZQogICAgICAgIGtlZXBpbmcgdGhlIGJlaGF2aW91ciBhZGRlZCBpbiByODg4
MzAgZm9yIGFueSBvdGhlciBvbmUuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5QVJJQUdyaWQuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6
OmFkZENoaWxkcmVuKTogRG8gbm90IG5hdmlnYXRlCiAgICAgICAgY2hpbGRyZW4gdGhyb3VnaCB0
aGUgQWNjZXNzaWJpbGl0eSBjaGlsZHJlbiB2ZWN0b3IgdG8gbGV0CiAgICAgICAgYWRkQ2hpbGQo
KSBjaGVjayB0aGUgcmVzdWx0IG9mIGFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKS4KMjAxMS0wNi0x
NSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBDb25zaWRlciByb3dzIGJl
aW5nIGlnbm9yZWQgd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gdGFibGVzCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzE4CgogICAgICAgIFVuc2tpcCBh
Y2Nlc3NpYmlsaXR5IHRlc3QgdGhhdCB3aWxsIGJlIHBhc3NpbmcgZnJvbSBub3cgb24uCgogICAg
ICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6IFVuc2tpcHBlZCBwYXNzaW5nIHRlc3QuCi0tLQog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEx
ICsrKysrKysrKysrCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCAgICAgICAgICAg
ICAgICAgICB8ICAgIDEgLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkLmNwcCAgICAgICAgfCAgICA4ICsrKysrKysrCiA0IGZpbGVzIGNo
YW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhMzYzODgu
LjJhM2Q0YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAxMS0wNi0xNSAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQ29uc2lkZXIgcm93cyBiZWluZyBpZ25vcmVk
IHdoZW4gYWRkaW5nIGNoaWxkcmVuIHRvIHRhYmxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3MTgKKworICAgICAgICBVbnNraXAgYWNjZXNzaWJp
bGl0eSB0ZXN0IHRoYXQgd2lsbCBiZSBwYXNzaW5nIGZyb20gbm93IG9uLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1NraXBwZWQ6IFVuc2tpcHBlZCBwYXNzaW5nIHRlc3QuCisKKzIwMTEtMDYt
MTUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFVucmV2aWV3ZWQsIHNraXBwZWQgYWNjZXNzaWJpbGl0eSB0ZXN0IGZhaWxpbmcgaW4gR1RLLgog
CiAgICAgICAgIEZhaWxpbmcgYWZ0ZXIgcjg4ODMwLCBmaWxlZCBidWcgNjIzMzUgZm9yIGZpeGlu
ZyB0aGlzIGlzc3VlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA4YjYwODYxLi4xOTU5
MWVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNDQxLDcgKzQ0MSw2IEBAIGFjY2Vz
c2liaWxpdHkvYXJpYS1vcHRpb24tcm9sZS5odG1sCiBhY2Nlc3NpYmlsaXR5L2FyaWEtcHJlc2Vu
dGF0aW9uYWwtcm9sZS5odG1sCiBhY2Nlc3NpYmlsaXR5L2FyaWEtcmVhZG9ubHkuaHRtbAogYWNj
ZXNzaWJpbGl0eS9hcmlhLXNjcm9sbGJhci1yb2xlLmh0bWwKLWFjY2Vzc2liaWxpdHkvYXJpYS10
YWJsZXMuaHRtbAogYWNjZXNzaWJpbGl0eS9hcmlhLXRhYi1yb2xlcy5odG1sCiBhY2Nlc3NpYmls
aXR5L2FyaWEtdGV4dC1yb2xlLmh0bWwKIGFjY2Vzc2liaWxpdHkvYXJpYS11c2VkLW9uLWltYWdl
LW1hcHMuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFkYTZlYmIuLjQ2ZThjYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAxMS0wNi0xNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6
QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW0dUS10gQ29uc2lkZXIgcm93cyBiZWluZyBpZ25vcmVkIHdoZW4gYWRkaW5nIGNoaWxk
cmVuIHRvIHRhYmxlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjI3MTgKKworICAgICAgICBVc2UgR1RLIHNwZWNpZmljIGNvZGUgZm9yIGZpeGluIHRo
aXMgaXNzdWUgaW4gdGhhdCBwbGF0Zm9ybSwgd2hpbGUKKyAgICAgICAga2VlcGluZyB0aGUgYmVo
YXZpb3VyIGFkZGVkIGluIHI4ODgzMCBmb3IgYW55IG90aGVyIG9uZS4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlBUklBR3JpZDo6YWRkQ2hpbGRyZW4pOiBEbyBub3QgbmF2aWdhdGUKKyAg
ICAgICAgY2hpbGRyZW4gdGhyb3VnaCB0aGUgQWNjZXNzaWJpbGl0eSBjaGlsZHJlbiB2ZWN0b3Ig
dG8gbGV0CisgICAgICAgIGFkZENoaWxkKCkgY2hlY2sgdGhlIHJlc3VsdCBvZiBhY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkuCisKIDIwMTEtMDYtMTUgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3Jp
ZC5jcHAKaW5kZXggNjQ1YjRjYy4uN2I3OWY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmNwcApAQCAtMTEzLDEyICsx
MTMsMjAgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmFkZENoaWxkcmVuKCkKICAgICAg
ICAgICAgIGlmICghY2hpbGQtPmhhc0NoaWxkcmVuKCkpCiAgICAgICAgICAgICAgICAgY2hpbGQt
PmFkZENoaWxkcmVuKCk7CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgICAgICAgICAvLyBEbyBu
b3QgbmF2aWdhdGUgY2hpbGRyZW4gdGhyb3VnaCB0aGUgQWNjZXNzaWJpbGl0eSBjaGlsZHJlbiB2
ZWN0b3IgdG8gbGV0IGFkZENoaWxkKCkKKyAgICAgICAgICAgIC8vIGNoZWNrIHRoZSByZXN1bHQg
b2YgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGFuZCBtYWtlIHRoZSBwcm9wZXIgZGVjaXNpb24u
CisgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBncmFuZENoaWxkID0gMDsKKyAgICAg
ICAgICAgIGZvciAoZ3JhbmRDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyYW5kQ2hpbGQ7
IGdyYW5kQ2hpbGQgPSBncmFuZENoaWxkLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAg
IGFkZENoaWxkKGdyYW5kQ2hpbGQsIGFwcGVuZGVkUm93cywgY29sdW1uQ291bnQpOworI2Vsc2UK
ICAgICAgICAgICAgIC8vIFRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vbi1yb3cgd2lsbCBjb250YWlu
IGFsbCBub24taWdub3JlZCBlbGVtZW50cyAocmVjdXJzaW5nIHRvIGZpbmQgdGhlbSkuIAogICAg
ICAgICAgICAgLy8gVGhpcyBhbGxvd3MgdGhlIHRhYmxlIHRvIGRpdmUgYXJiaXRyYXJpbHkgZGVl
cCB0byBmaW5kIHRoZSByb3dzLgogICAgICAgICAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIGNoaWxkcmVuID0gY2hpbGQtPmNoaWxkcmVuKCk7CiAgICAgICAgICAgICBzaXplX3QgbGVu
Z3RoID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkKICAgICAgICAgICAgICAgICBhZGRDaGlsZChjaGlsZHJlbltpXS5nZXQo
KSwgYXBwZW5kZWRSb3dzLCBjb2x1bW5Db3VudCk7CisjZW5kaWYKICAgICAgICAgfQogICAgIH0K
ICAgICAKLS0gCjEuNy41LjIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98358</attachid>
            <date>2011-06-23 09:10:59 -0700</date>
            <delta_ts>2011-06-23 09:39:14 -0700</delta_ts>
            <desc>Patch proposal + unskipped layout test</desc>
            <filename>0001-2011-06-23-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>13085</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBmMWI0Y2JhZTlkMWM2NzI3ZDRhOWFhZTI1ZjMyYjdjMzY5NzdlOGMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUaHUsIDIzIEp1biAyMDExIDE2OjQ2OjA0ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wNi0yMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBDb25z
aWRlciByb3dzIGJlaW5nIGlnbm9yZWQgd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gdGFibGVzCiAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzE4CgogICAg
ICAgIEhpZGUgcm93IG9iamVjdHMgaW4gdGFibGVzIGluIEdUSydzIGFjY2Vzc2liaWxpdHkgd3Jh
cHBlci4KCiAgICAgICAgVGhpcyBpcyBhIGRpZmZlcmVudCBhcHByb2FjaCBpbiB0aGUgd2F5IFdl
YkNvcmUncyBhY2Nlc3NpYmxlCiAgICAgICAgcm93cyBhcmUgZXhwb3NlZCB0byBhc3Npc3RpdmUg
dGVjaG5vbG9naWVzIGluIHRoZSBHVEsgcG9ydCwKICAgICAgICBzaW5jZSBmcm9tIG5vdyBvbiB0
aG9zZSBvYmplY3RzIGFyZSBrZXB0IGluIFdlYkNvcmUgKHRoZXkgZG8gbm90CiAgICAgICAgZGVj
bGFyZSB0byBpZ25vcmUgYWNjZXNzaWJpbGl0eSkgYW5kIGp1c3QgYnlwYXNzZWQgaW4gdGhlIG1h
cHBpbmcKICAgICAgICB0byBBVEssIGFsbG93aW5nIHRvIGhpZGUgdGhlbSBpbiB0aGUgQVRLIGhp
ZXJhcmNoeSB3aGlsZSwgYXQgdGhlCiAgICAgICAgc2FtZSB0aW1lLCBrZWVwaW5nIHRoZW0gaW50
ZXJuYWxseSB0byBiZSBhYmxlIHRvIHByb3ZpZGUgZW5vdWdoCiAgICAgICAgaW5mb3JtYXRpb24g
dG8gZGV0ZXJtaW5lIHRhYmxlcyByZWxhdGVkIGluZm9ybWF0aW9uLCBzdWNoIGFzIHJvd3MKICAg
ICAgICBjb3VudGluZyBvciBmaW5kaW5nIGFuIGNlbGwgZm9yIHNwZWNpZmljIGNvb3JkaW5hdGVz
LgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3Bw
OgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxh
dGZvcm1JbmNsdWRlc09iamVjdCk6CiAgICAgICAgRG8gbm90IGlnbm9yZSBhY2Nlc3NpYmlsaXR5
IGZvciB0YWJsZSByb3dzIGhlcmUuCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9n
ZXRfcGFyZW50KTogQnlwYXNzIHJvd3Mgd2hlbiBuZWVkZWQuCiAgICAgICAgKGdldE5DaGlsZHJl
bkZvclRhYmxlKTogTmV3LCBmaW5kIHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gZm9yIGEKICAgICAg
ICB0YWJsZSwgd2hpY2ggd2lsbCBiZSB0aGUgYWRkaXRpb24gb2YgYWxsIGNlbGxzIGZvciBpdHMg
cm93cy4KICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X25fY2hpbGRyZW4pOiBDYWxsIHRv
IGdldE5DaGlsZHJlbkZvclRhYmxlCiAgICAgICAgZm9yIGFjY2Vzc2liaWxpdHkgdGFibGVzIGlm
IG5lZWRlZC4KICAgICAgICAoZ2V0Q2hpbGRGb3JUYWJsZSk6IE5ldywgYnlwYXNzIHJvd3Mgd2hl
biBuZWVkZWQsIHJldHJpZXZpbmcKICAgICAgICBjZWxscyBhcyBpZiB0aGV5IHdlcmUgZGlyZWN0
IGNoaWxkcmVuIGZvciB0YWJsZXMuCiAgICAgICAgKHdlYmtpdF9hY2Nlc3NpYmxlX3JlZl9jaGls
ZCk6IENhbGwgdG8gcmVmQ2hpbGRGb3JUYWJsZSBpZiBuZWVkZWQuCiAgICAgICAgKGdldEluZGV4
SW5QYXJlbnRGb3JDZWxsSW5Sb3cpOiBOZXcsIGdldCB0aGUgaW5kZXggZm9yIGEgZ2l2ZW4KICAg
ICAgICBjZWxsIGluIGl0cyBwYXJlbnQgdGFibGUsIGNvbnNpZGVyaW5nIG90aGVyIHJvd3MnIGNl
bGxzLgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfaW5kZXhfaW5fcGFyZW50KTogQ2Fs
bCB0bwogICAgICAgIGdldEluZGV4SW5QYXJlbnRGb3JDZWxsSW5Sb3cgaWYgbmVlZGVkLgoyMDEx
LTA2LTIzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIENvbnNpZGVyIHJv
d3MgYmVpbmcgaWdub3JlZCB3aGVuIGFkZGluZyBjaGlsZHJlbiB0byB0YWJsZXMKICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3MTgKCiAgICAgICAgVW5z
a2lwIGFjY2Vzc2liaWxpdHkgdGVzdCB0aGF0IHdpbGwgYmUgcGFzc2luZyBmcm9tIG5vdyBvbi4K
CiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwcGVkIHBhc3NpbmcgdGVzdC4K
LS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTEgKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAgICAgICAgICAgICAg
ICAgIHwgICAgMSAtCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMzYgKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAgICB8ICAgIDQgLQogLi4uL2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlckF0ay5jcHAgICAgICAgICAgfCAgMTE4ICsrKysrKysrKysrKysrKysrKystCiA1IGZpbGVz
IGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2Zi
YzIyYy4uNmNlMWIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA2LTIzICBNYXJpbyBT
YW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBDb25zaWRlciByb3dzIGJlaW5nIGln
bm9yZWQgd2hlbiBhZGRpbmcgY2hpbGRyZW4gdG8gdGFibGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjcxOAorCisgICAgICAgIFVuc2tpcCBhY2Nl
c3NpYmlsaXR5IHRlc3QgdGhhdCB3aWxsIGJlIHBhc3NpbmcgZnJvbSBub3cgb24uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogVW5za2lwcGVkIHBhc3NpbmcgdGVzdC4KKwogMjAx
MS0wNi0yMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBmaW5hbCByb3VuZCBvZiBiYXNlbGluZXMgZm9yIHRoZSBuZXcgQ1NT
Mi4xIHRlc3RzIGFkZGVkIGluIHI4ODkxMy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXgg
ZDdhODcyOC4uMWUxODFiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTQwOSw3ICs0
MDksNiBAQCBhY2Nlc3NpYmlsaXR5L2FyaWEtb3B0aW9uLXJvbGUuaHRtbAogYWNjZXNzaWJpbGl0
eS9hcmlhLXByZXNlbnRhdGlvbmFsLXJvbGUuaHRtbAogYWNjZXNzaWJpbGl0eS9hcmlhLXJlYWRv
bmx5Lmh0bWwKIGFjY2Vzc2liaWxpdHkvYXJpYS1zY3JvbGxiYXItcm9sZS5odG1sCi1hY2Nlc3Np
YmlsaXR5L2FyaWEtdGFibGVzLmh0bWwKIGFjY2Vzc2liaWxpdHkvYXJpYS10YWItcm9sZXMuaHRt
bAogYWNjZXNzaWJpbGl0eS9hcmlhLXRleHQtcm9sZS5odG1sCiBhY2Nlc3NpYmlsaXR5L2FyaWEt
dXNlZC1vbi1pbWFnZS1tYXBzLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyN2UyNWUyLi5kZmFmMjg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDYtMjMgIE1hcmlvIFNhbmNoZXogUHJh
ZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtHVEtdIENvbnNpZGVyIHJvd3MgYmVpbmcgaWdub3JlZCB3aGVu
IGFkZGluZyBjaGlsZHJlbiB0byB0YWJsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyNzE4CisKKyAgICAgICAgSGlkZSByb3cgb2JqZWN0cyBpbiB0
YWJsZXMgaW4gR1RLJ3MgYWNjZXNzaWJpbGl0eSB3cmFwcGVyLgorCisgICAgICAgIFRoaXMgaXMg
YSBkaWZmZXJlbnQgYXBwcm9hY2ggaW4gdGhlIHdheSBXZWJDb3JlJ3MgYWNjZXNzaWJsZQorICAg
ICAgICByb3dzIGFyZSBleHBvc2VkIHRvIGFzc2lzdGl2ZSB0ZWNobm9sb2dpZXMgaW4gdGhlIEdU
SyBwb3J0LAorICAgICAgICBzaW5jZSBmcm9tIG5vdyBvbiB0aG9zZSBvYmplY3RzIGFyZSBrZXB0
IGluIFdlYkNvcmUgKHRoZXkgZG8gbm90CisgICAgICAgIGRlY2xhcmUgdG8gaWdub3JlIGFjY2Vz
c2liaWxpdHkpIGFuZCBqdXN0IGJ5cGFzc2VkIGluIHRoZSBtYXBwaW5nCisgICAgICAgIHRvIEFU
SywgYWxsb3dpbmcgdG8gaGlkZSB0aGVtIGluIHRoZSBBVEsgaGllcmFyY2h5IHdoaWxlLCBhdCB0
aGUKKyAgICAgICAgc2FtZSB0aW1lLCBrZWVwaW5nIHRoZW0gaW50ZXJuYWxseSB0byBiZSBhYmxl
IHRvIHByb3ZpZGUgZW5vdWdoCisgICAgICAgIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0YWJs
ZXMgcmVsYXRlZCBpbmZvcm1hdGlvbiwgc3VjaCBhcyByb3dzCisgICAgICAgIGNvdW50aW5nIG9y
IGZpbmRpbmcgYW4gY2VsbCBmb3Igc3BlY2lmaWMgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVz
T2JqZWN0KToKKyAgICAgICAgRG8gbm90IGlnbm9yZSBhY2Nlc3NpYmlsaXR5IGZvciB0YWJsZSBy
b3dzIGhlcmUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcGFyZW50
KTogQnlwYXNzIHJvd3Mgd2hlbiBuZWVkZWQuCisgICAgICAgIChnZXROQ2hpbGRyZW5Gb3JUYWJs
ZSk6IE5ldywgZmluZCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGZvciBhCisgICAgICAgIHRhYmxl
LCB3aGljaCB3aWxsIGJlIHRoZSBhZGRpdGlvbiBvZiBhbGwgY2VsbHMgZm9yIGl0cyByb3dzLgor
ICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X25fY2hpbGRyZW4pOiBDYWxsIHRvIGdldE5D
aGlsZHJlbkZvclRhYmxlCisgICAgICAgIGZvciBhY2Nlc3NpYmlsaXR5IHRhYmxlcyBpZiBuZWVk
ZWQuCisgICAgICAgIChnZXRDaGlsZEZvclRhYmxlKTogTmV3LCBieXBhc3Mgcm93cyB3aGVuIG5l
ZWRlZCwgcmV0cmlldmluZworICAgICAgICBjZWxscyBhcyBpZiB0aGV5IHdlcmUgZGlyZWN0IGNo
aWxkcmVuIGZvciB0YWJsZXMuCisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9yZWZfY2hpbGQp
OiBDYWxsIHRvIHJlZkNoaWxkRm9yVGFibGUgaWYgbmVlZGVkLgorICAgICAgICAoZ2V0SW5kZXhJ
blBhcmVudEZvckNlbGxJblJvdyk6IE5ldywgZ2V0IHRoZSBpbmRleCBmb3IgYSBnaXZlbgorICAg
ICAgICBjZWxsIGluIGl0cyBwYXJlbnQgdGFibGUsIGNvbnNpZGVyaW5nIG90aGVyIHJvd3MnIGNl
bGxzLgorICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X2luZGV4X2luX3BhcmVudCk6IENh
bGwgdG8KKyAgICAgICAgZ2V0SW5kZXhJblBhcmVudEZvckNlbGxJblJvdyBpZiBuZWVkZWQuCisK
IDIwMTEtMDYtMjMgIEplZmZyZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCmluZGV4
IGE5ZmQ1NGIuLjFiN2ZmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwCkBAIC02MSwxMCArNjEs
NiBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzTwogICAgIGlmIChyb2xlID09IENlbGxSb2xlIHx8
IHJvbGUgPT0gVGFibGVSb2xlKQogICAgICAgICByZXR1cm4gSW5jbHVkZU9iamVjdDsKIAotICAg
IC8vIFdlIGF0IHNvbWUgcG9pbnQgbWlnaHQgaGF2ZSBhIG5lZWQgdG8gZXhwb3NlIGEgdGFibGUg
cm93OyBidXQgaXQncyBub3Qgc3RhbmRhcmQgR3RrKy4KLSAgICBpZiAocm9sZSA9PSBSb3dSb2xl
KQotICAgICAgICByZXR1cm4gSWdub3JlT2JqZWN0OwotCiAgICAgLy8gVGhlIG9iamVjdCBjb250
YWluaW5nIHRoZSB0ZXh0IHNob3VsZCBpbXBsZW1lbnQgQXRrVGV4dCBpdHNlbGYuCiAgICAgaWYg
KHJvbGUgPT0gU3RhdGljVGV4dFJvbGUpCiAgICAgICAgIHJldHVybiBJZ25vcmVPYmplY3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggNTY2MzU2Yy4uODMyODM1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtMjkzLDI5ICsyOTMsOTkg
QEAgc3RhdGljIEF0a09iamVjdCogYXRrUGFyZW50T2ZSb290T2JqZWN0KEF0a09iamVjdCogb2Jq
ZWN0KQogc3RhdGljIEF0a09iamVjdCogd2Via2l0X2FjY2Vzc2libGVfZ2V0X3BhcmVudChBdGtP
YmplY3QqIG9iamVjdCkKIHsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0g
Y29yZShvYmplY3QpOworICAgIGlmICghY29yZU9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisK
ICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlUGFyZW50ID0gY29yZU9iamVjdC0+cGFyZW50
T2JqZWN0VW5pZ25vcmVkKCk7CisKICAgICBpZiAoIWNvcmVQYXJlbnQgJiYgaXNSb290T2JqZWN0
KGNvcmVPYmplY3QpKQogICAgICAgICByZXR1cm4gYXRrUGFyZW50T2ZSb290T2JqZWN0KG9iamVj
dCk7CiAKKyAgICAvLyBHVEsgZG9lc24ndCBleHBvc2UgdGFibGUgcm93cyB0byBBc3Npc3RpdmUg
dGVjaG5vbG9naWVzLCBidXQgd2UKKyAgICAvLyBuZWVkIHRvIGhhdmUgdGhlbSBhbnl3YXkgaW4g
dGhlIGhpZXJhcmNoeSBmcm9tIFdlYkNvcmUgdG8KKyAgICAvLyBwcm9wZXJseSBwZXJmb3JtIGNv
b3JkaW5hdGVzIGNhbGN1bGF0aW9ucyB3aGVuIHJlcXVlc3RlZC4KKyAgICBpZiAoY29yZVBhcmVu
dCAmJiBjb3JlUGFyZW50LT5pc1RhYmxlUm93KCkgJiYgY29yZU9iamVjdC0+aXNUYWJsZUNlbGwo
KSkKKyAgICAgICAgY29yZVBhcmVudCA9IGNvcmVQYXJlbnQtPnBhcmVudE9iamVjdFVuaWdub3Jl
ZCgpOworCiAgICAgaWYgKCFjb3JlUGFyZW50KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHJl
dHVybiBjb3JlUGFyZW50LT53cmFwcGVyKCk7CiB9CiAKK3N0YXRpYyBnaW50IGdldE5DaGlsZHJl
bkZvclRhYmxlKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QpCit7CisgICAgQWNjZXNz
aWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHRhYmxlQ2hpbGRyZW4g
PSBjb3JlT2JqZWN0LT5jaGlsZHJlbigpOworICAgIHVuc2lnbmVkIHRhYmxlQ2hpbGRyZW5Db3Vu
dCA9IHRhYmxlQ2hpbGRyZW4uc2l6ZSgpOworICAgIHVuc2lnbmVkIGNlbGxzQ291bnQgPSAwOwor
CisgICAgLy8gTG9vayBmb3IgdGhlIGFjdHVhbCBpbmRleCBvZiB0aGUgY2VsbCBpbnNpZGUgdGhl
IHRhYmxlLgorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZUNoaWxkcmVuQ291bnQ7
ICsraSkgeworICAgICAgICBpZiAodGFibGVDaGlsZHJlbltpXS0+aXNUYWJsZVJvdygpKSB7Cisg
ICAgICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3Igcm93Q2hpbGRyZW4gPSB0YWJsZUNoaWxkcmVuW2ldLT5jaGlsZHJlbigpOworICAgICAgICAg
ICAgY2VsbHNDb3VudCArPSByb3dDaGlsZHJlbi5zaXplKCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgY2VsbHNDb3VudCsrOworICAgIH0KKworICAgIHJldHVybiBjZWxsc0NvdW50Owor
fQorCiBzdGF0aWMgZ2ludCB3ZWJraXRfYWNjZXNzaWJsZV9nZXRfbl9jaGlsZHJlbihBdGtPYmpl
Y3QqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gY29yZShvYmplY3QpLT5jaGlsZHJlbigpLnNpemUo
KTsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZShvYmplY3QpOwor
CisgICAgLy8gVGFibGVzIHNob3VsZCBiZSB0cmVhdGVkIGluIGEgZGlmZmVyZW50IHdheSBiZWNh
dXNlIHJvd3Mgc2hvdWxkCisgICAgLy8gYmUgYnlwYXNzZWQgZm9yIEdUSyB3aGVuIGV4cG9zaW5n
IHRoZSBhY2Nlc3NpYmxlIGhpZXJhcmNoeS4KKyAgICBpZiAoY29yZU9iamVjdC0+aXNBY2Nlc3Np
YmlsaXR5VGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGdldE5DaGlsZHJlbkZvclRhYmxlKGNvcmVP
YmplY3QpOworCisgICAgcmV0dXJuIGNvcmVPYmplY3QtPmNoaWxkcmVuKCkuc2l6ZSgpOworfQor
CitzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZ2V0Q2hpbGRGb3JUYWJsZShBY2Nlc3NpYmls
aXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBnaW50IGluZGV4KQoreworICAgIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciB0YWJsZUNoaWxkcmVuID0gY29yZU9i
amVjdC0+Y2hpbGRyZW4oKTsKKyAgICB1bnNpZ25lZCB0YWJsZUNoaWxkcmVuQ291bnQgPSB0YWJs
ZUNoaWxkcmVuLnNpemUoKTsKKyAgICB1bnNpZ25lZCBjZWxsc0NvdW50ID0gMDsKKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBjb3JlQ2hpbGQgPSAwOworCisgICAgLy8gTG9vayBmb3IgdGhlIGFj
dHVhbCBpbmRleCBvZiB0aGUgY2VsbCBpbnNpZGUgdGhlIHRhYmxlLgorICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCB0YWJsZUNoaWxkcmVuQ291bnQ7ICsraSkgeworICAgICAgICBpZiAodGFi
bGVDaGlsZHJlbltpXS0+aXNUYWJsZVJvdygpKSB7CisgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igcm93Q2hpbGRyZW4gPSB0YWJsZUNo
aWxkcmVuW2ldLT5jaGlsZHJlbigpOworICAgICAgICAgICAgdW5zaWduZWQgcm93Q2hpbGRyZW5D
b3VudCA9IHJvd0NoaWxkcmVuLnNpemUoKTsKKyAgICAgICAgICAgIGlmIChzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oaW5kZXgpIDwgY2VsbHNDb3VudCArIHJvd0NoaWxkcmVuQ291bnQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJvd0NoaWxkcmVuLmF0KGluZGV4IC0gY2VsbHNDb3VudCkuZ2V0KCk7
CisgICAgICAgICAgICBjZWxsc0NvdW50ICs9IHJvd0NoaWxkcmVuQ291bnQ7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2VsbHNDb3VudCA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5kZXgpKQorICAg
ICAgICAgICAgcmV0dXJuIHRhYmxlQ2hpbGRyZW5baV0uZ2V0KCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGNlbGxzQ291bnQrKzsKKyAgICB9CisKKyAgICAvLyBTaG91bGRuJ3QgcmVhY2gg
aWYgdGhlIGNoaWxkIHdhcyBmb3VuZC4KKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIEF0a09i
amVjdCogd2Via2l0X2FjY2Vzc2libGVfcmVmX2NoaWxkKEF0a09iamVjdCogb2JqZWN0LCBnaW50
IGluZGV4KQogewotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKG9i
amVjdCk7Ci0gICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVj
dG9yIGNoaWxkcmVuID0gY29yZU9iamVjdC0+Y2hpbGRyZW4oKTsKLSAgICBpZiAoaW5kZXggPCAw
IHx8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbmRleCkgPj0gY2hpbGRyZW4uc2l6ZSgpKQorICAg
IGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogY29yZUNoaWxkID0gY2hpbGRyZW4uYXQoaW5kZXgpLmdldCgpOworICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKG9iamVjdCk7CisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogY29yZUNoaWxkID0gMDsKKworICAgIC8vIFRhYmxlcyBhcmUgc3BlY2lhbCBjYXNl
cyBpbiBHVEsgYmVjYXVzZSByb3dzIHNob3VsZCBiZQorICAgIC8vIGJ5cGFzc2VkLCBidXQgc3Rp
bGwgdGFraW5nIHRoZWlyIGNlbGxzIGludG8gYWNjb3VudC4KKyAgICBpZiAoY29yZU9iamVjdC0+
aXNBY2Nlc3NpYmlsaXR5VGFibGUoKSkKKyAgICAgICAgY29yZUNoaWxkID0gZ2V0Q2hpbGRGb3JU
YWJsZShjb3JlT2JqZWN0LCBpbmRleCk7CisgICAgZWxzZSB7CisgICAgICAgIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjaGlsZHJlbiA9IGNvcmVPYmpl
Y3QtPmNoaWxkcmVuKCk7CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5kZXgp
ID49IGNoaWxkcmVuLnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjb3Jl
Q2hpbGQgPSBjaGlsZHJlbi5hdChpbmRleCkuZ2V0KCk7CisgICAgfQogCiAgICAgaWYgKCFjb3Jl
Q2hpbGQpCiAgICAgICAgIHJldHVybiAwOwpAQCAtMzI3LDYgKzM5NywzOSBAQCBzdGF0aWMgQXRr
T2JqZWN0KiB3ZWJraXRfYWNjZXNzaWJsZV9yZWZfY2hpbGQoQXRrT2JqZWN0KiBvYmplY3QsIGdp
bnQgaW5kZXgpCiAgICAgcmV0dXJuIGNoaWxkOwogfQogCitzdGF0aWMgZ2ludCBnZXRJbmRleElu
UGFyZW50Rm9yQ2VsbEluUm93KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QpCit7Cisg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50ID0gY29yZU9iamVjdC0+cGFyZW50T2JqZWN0
VW5pZ25vcmVkKCk7CisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogZ3JhbmRQYXJlbnQgPSBwYXJl
bnQtPnBhcmVudE9iamVjdFVuaWdub3JlZCgpOworICAgIGlmICghZ3JhbmRQYXJlbnQpCisgICAg
ICAgIHJldHVybiAtMTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3RvciByb3dzID0gZ3JhbmRQYXJlbnQtPmNoaWxkcmVuKCk7CisgICAgdW5zaWdu
ZWQgcm93c0NvdW50ID0gcm93cy5zaXplKCk7CisgICAgdW5zaWduZWQgcHJldmlvdXNDZWxsc0Nv
dW50ID0gMDsKKworICAgIC8vIExvb2sgZm9yIHRoZSBhY3R1YWwgaW5kZXggb2YgdGhlIGNlbGwg
aW5zaWRlIHRoZSB0YWJsZS4KKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcm93c0NvdW50
OyArK2kpIHsKKyAgICAgICAgaWYgKCFyb3dzW2ldLT5pc1RhYmxlUm93KCkpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3IgY2VsbHMgPSByb3dzW2ldLT5jaGlsZHJlbigpOworICAgICAgICB1bnNp
Z25lZCBjZWxsc0NvdW50ID0gY2VsbHMuc2l6ZSgpOworCisgICAgICAgIGlmIChyb3dzW2ldID09
IHBhcmVudCkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGNlbGxzQ291
bnQ7ICsraikgeworICAgICAgICAgICAgICAgIGlmIChjZWxsc1tqXSA9PSBjb3JlT2JqZWN0KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNDZWxsc0NvdW50ICsgajsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHByZXZpb3VzQ2VsbHNDb3VudCArPSBjZWxs
c0NvdW50OworICAgIH0KKworICAgIHJldHVybiAtMTsKK30KKworCiBzdGF0aWMgZ2ludCB3ZWJr
aXRfYWNjZXNzaWJsZV9nZXRfaW5kZXhfaW5fcGFyZW50KEF0a09iamVjdCogb2JqZWN0KQogewog
ICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QgPSBjb3JlKG9iamVjdCk7CkBAIC0z
NDcsNiArNDUwLDExIEBAIHN0YXRpYyBnaW50IHdlYmtpdF9hY2Nlc3NpYmxlX2dldF9pbmRleF9p
bl9wYXJlbnQoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBO
ZWVkIHRvIGNhbGN1bGF0ZSB0aGUgaW5kZXggb2YgdGhlIGNlbGwgaW4gdGhlIHRhYmxlLCBhcwor
ICAgIC8vIHJvd3Mgd29uJ3QgYmUgZXhwb3NlZCB0byBhc3Npc3RpdmUgdGVjaG5vbG9naWVzIGlu
IEdUSy4KKyAgICBpZiAocGFyZW50ICYmIHBhcmVudC0+aXNUYWJsZVJvdygpICYmIGNvcmVPYmpl
Y3QtPmlzVGFibGVDZWxsKCkpCisgICAgICAgIHJldHVybiBnZXRJbmRleEluUGFyZW50Rm9yQ2Vs
bEluUm93KGNvcmVPYmplY3QpOworCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJp
bGl0eUNoaWxkcmVuVmVjdG9yIGNoaWxkcmVuID0gcGFyZW50LT5jaGlsZHJlbigpOwogICAgIHVu
c2lnbmVkIGNvdW50ID0gY2hpbGRyZW4uc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBjb3VudDsgKytpKSB7Ci0tIAoxLjcuNS4yCgo=
</data>
<flag name="review"
          id="92565"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>